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 |