Jump to: navigation, search

Description

A complete listing (still in progress) of objects, macros, functions, types and keywords defined by the standard library, suitable for input into a script.

Members of each list line are separated by whitespace. Each item is dual-listed. The first list is ordered alphabetically (case-insensitive, ignoring non-alphanumeric characters) based on the identifiers themselves. The second list is first ordered alphabetically by standard header (listing an item only once - by its alphabetically first header - even when declared/defined in multiple headers) and then ordered as for the first list.

Column descriptions

  • Identifier: case-sensitive including underscores
  • Defined-by: a comma-separated alphabetically ordered list of standard headers without whitespace, or "compiler".
  • Metatype uses one of:
    • keyword: e.g. int, char, if, while
    • type: types defined by the standard library
    • filescope-variable: possibly there's no such creature in the Standard that doesn't better fit "macro/lvalue"
    • macro-expr: a macro that expands to an object that is not necessarily writable e.g. stdin
    • macro-const: a macro that expands to a constant expression e.g. NULL, INT_MAX
    • macro/lvalue: can be either a global variable or a macro that expands to an lvalue e.g. errno
    • macro-function: a function-like macro e.g. INT8_C
    • function: a function not allowed to be implemented as a macro e.g.
    • macro/function: a function that could also be implemented as a macro e.g.
  • C89, C94 and C90 use these symbols:
    • @ => the identifier occurs in this version of the Standard
    •  ! => the identifier does not occur in this version of the Standard
    •  ? => the person contributing this listing did not know or check whether the identifier occurs in this version of the Standard
  • Diff89-94 and Diff94-99 use these symbols to indicate how the specifying wording and semantics for this identifier vary between the versions of the Standard indicated by the column name:
    • = => wording and semantics identical
    • ~ => wording not identical but semantics are
    •  ! => different wording and semantics
    •  ? => differences unknown or not yet checked (also used when the identifier's occurrence in either version is unknown)
    • [empty] => no comparison since the identifier is known to not occur in one or both versions

By header

Identifier Metatype Defined-by C89 Diff89-94 C94 Diff94-99 C99
if	keyword	compiler	@ ? @ ? @
NULL	macro-object	locale.h,stddef.h,stdio.h,stdlib.h,string.h,time.h	@ ? @ ? @
strcpy	function	string.h	@ ? @ ? @

By identifier

Identifier Metatype Defined-by C89 Diff89-94 C94 Diff94-99 C99
if	keyword	compiler	@ ? @ ? @
NULL	macro-object	locale.h,stddef.h,stdio.h,stdlib.h,string.h,time.h	@ ? @ ? @
strcpy	function	string.h	@ ? @ ? @

Groupings

This grouping list contains on each line a comma-separated list of identifiers that would be suitable for a single combination article. All identifiers should have the same Defined-by entry above. The first entry in each row is the "primary" article; if it is a new title (i.e. not an existing identifier) it should be preceded by an asterisk without intervening whitespace and spaces in the title should be replaced by underscores.

isctype isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isupper isxdigit
toupper tolower
acos acosf
log log10
floor ceil round
longjmp setjmp
raise abort
*stdarg va_start va_arg va_end va_copy
tmpfile tmpnam
fclose
fopen freopen
setbuf setvbuf
fprintf printf sprintf snprintf vprintf vfprintf vsprintf vsnprintf
fscanf scanf sscanf vscanf vsscanf vfscanf
getc getchar fgetc ungetc
putc putchar fputc
fgets gets
fputs puts
fseek ftell setpos fgetpos rewind
feof ferror clearerr
errno perror strerror
strtol strtoul atoi atol
strtod atof
rand srand
malloc calloc realloc free
exit atexit _Exit
abs labs
div ldiv
*standard_streams: stdin stdout stderr

Completion status

compiler (keywords and compiler defines like __STDC__): todo

assert.h todo
complex.h todo
ctype.h todo
errno.h todo
fenv.h todo
float.h todo
inttypes.h todo
iso646.h todo
locale.h todo
limits.h todo
math.h todo
setjmp.h todo
signal.h todo
stdarg.h todo
stdbool.h todo
stddef.h todo
stdint.h todo
stdio.h todo
stdlib.h todo
string.h todo
tgmath.h todo
time.h todo
wchar.h todo
wctype.h todo
Personal tools