1) [INTRODUCTION. Introduction] This lists documents that were referred to during the preparation of the standard.|bibliography
2) [3.4.1 Terms, definitions, and symbols] An example of this behavior is the propagation of the high-order bit when a signed integer is shifted right.|implementation-defined
3) [3.4.2 Terms, definitions, and symbols] An example of this behavior is whether the islower function returns true for characters other than the 26 lowercase Latin letters.|locale-specific
4) [3.4.3 Terms, definitions, and symbols] An example of this behavior is the behavior on integer overflow.|undefined
5) [3.4.4 Terms, definitions, and symbols] This behavior is the behavior where the standard provides two or more possibilities and imposes no further requirements on which is chosen in any instance.|unspecified
6) [3.4.4 Terms, definitions, and symbols] An example of this behavior is the order in which the arguments to a function are evaluated.|unspecified
7) [3.6 Terms, definitions, and symbols] A byte is composed of a contiguous sequence of these.|bits{The number of bits is implementation-defined.}
8) [3.6 Terms, definitions, and symbols] A byte is composed of a contiguous sequence of bits, the number of which is this.|implementation-defined{Bet you thought it was 8!}
9) [3.6 Terms, definitions, and symbols] The least significant bit is called this.|low-order bit|low-order
10) [3.6 Terms, definitions, and symbols] The most significant bit is called this.|high-order bit|high-order
11) [3.6 Terms, definitions, and symbols] The low-order bit is also known as this.|least significant bit|least significant|lsb{It stands for least significant bit.}
12) [3.6 Terms, definitions, and symbols] The high-order bit is also known as this.|most significant bit|most significant|msb{It stands for most significant bit.}
13) [3.15 Terms, definitions, and symbols] This is a region of data storage in the execution environment, the contents of which can represent values.|object
14) [3.15 Terms, definitions, and symbols] An object is a region of data storage in the execution environment, the contents of which can represent these.|values
15) [4. Conformance] In the standard, ``shall'' is to be interpreted as this on an implementation, or on a program.|requirement{If violated, the behavior is undefined.}
16) [4. Conformance] In the standard, ``shall not'' is to be interpreted as this on an implementation, or on a program.|prohibition{If violated, the behavior is undefined.}
17) [4. Conformance] In the standard, this phrase is to be interpreted as a requirement on an implementation, or on a program.|shall{If violated, the behavior is undefined.}
18) [4. Conformance] In the standard, this phrase is to be interpreted as a prohibition on an implementation, or on a program.|shall not{If violated, the behavior is undefined.}
19) [4. Conformance] If a ``shall'' or ``shall not'' requirement that appears outside of a constraint or runtime-constraint is violated, the behavior is this.|undefined
20) [4. Conformance] A program that is correct, operates on correct data, and possibly containing unspecified behavior, shall be this kind of program.|correct|conforming|proper{I was really looking for "correct" or "conforming", to be honest.}|portable{I was really looking for "correct" or "conforming", to be honest.}
21) [4. Conformance] The implementation shall not successfully translate a preprocessing translation unit containing this preprocessing directive unless it is part of a group skipped by conditional inclusion.|#error
22) [4. Conformance] This kind of program shall use only those features of the language and library specified in this International Standard. It shall not produce output dependent on any unspecified, undefined, or implementation-defined behavior, and shall not exceed any minimum implementation limit.|strictly conforming
23) [4. Conformance] The two forms of conforming implementation are these (name both, separated with "and").|hosted and freestanding|freestanding and hosted
24) [4. Conformance] A conforming hosted implementation shall accept any kind of this program.|strictly conforming
25) [4. Conformance] This kind of conforming implementation shall accept any strictly conforming program in which the use of the library features is confined to the contents of the standard headers <float.h>, <iso646.h>, <limits.h>, <stdalign.h>, <stdarg.h>, <stdbool.h>, <stddef.h>, <stdint.h>, and <stdnoreturn.h>.|freestanding
26) [4. Conformance] A conforming program is one that is acceptable to a conforming this.|implementation|compiler{I was really looking for "implementation", to be honest.}
27) [4. Conformance] A conforming implementation may have these (including additional library functions), provided they do not alter the behavior of any strictly conforming program.|extensions
28) [4. Conformance] An implementation shall be accompanied by this that defines all implementation-defined and locale-specific characteristics and all extensions.|document|documentation
29) [5. Environment] An implementation translates C source files and executes C programs in two data-processing-system environments, which will be called these environments (name both, separated by "and").|translation and execution|execution and translation
30) [5.1.1.1 Program structure] A source file together with all the headers and source files included via this preprocessing directive is known as a preprocessing translation unit.|#include
31) [5.1.1.1 Program structure] A source file together with all the headers and source files included via the preprocessing directive #include is known as this.|preprocessing translation unit
32) [5.1.1.1 Program structure] After this occurs, a preprocessing translation unit is called a translation unit.|preprocessing
33) [5.1.1.1 Program structure] After preprocessing, a preprocessing translation unit is called this.|translation unit
34) [5.1.1.2 Translation phases] A source file that is not empty shall end with this character.|new-line|newline|\n
35) [5.1.1.2 Translation phases] A source file shall not end in a partial this.|preprocessing token{Nor in a partial comment, either.}|comment{Nor in a partial preprocessing token, either.}
36) [5.1.1.2 Translation phases] If a character sequence that matches the syntax of a universal character name is produced by token concatenation, the behavior is this.|undefined
37) [5.1.1.2 Translation phases] Source files, translation units, and translated translation units need not necessarily be stored as this.|files|file
38) [5.1.1.3 Diagnostics] A conforming implementation shall produce at least one of this (identified in an implementation-defined manner) if a preprocessing translation unit or translation unit contains a violation of any syntax rule or constraint, even if the behavior is also explicitly specified as undefined or implementation-defined.|diagnostic message|diagnostic
39) [5.1.1.3 Diagnostics] An implementation shall issue this for the translation unit: char i; int i; because in those cases where wording in this International Standard describes the behavior for a construct as being both a constraint error and resulting in undefined behavior, the constraint error shall be diagnosed.|diagnostic|diagnostic message
40) [5.1.2 Execution environments] Two execution environments are defined: freestanding and hosted. In both cases, program startup occurs when this is called by the execution environment.|designated C function|designated function
41) [5.1.2 Execution environments] All objects with static storage duration shall be this before program startup.|initialized
42) [5.1.2 Execution environments] All objects with this storage duration shall be initialized (set to their initial values) before program startup.|static
43) [5.1.2.2.1 Program startup] In this execution environment, the function called at program startup is named main.|hosted
44) [5.1.2.2.1 Program startup] In a hosted execution environment, the function called at program startup is named this.|main
45) [5.1.2.2.1 Program startup] The main function shall be defined with a return type of this.|int{It can also be defined in some other implementation-defined manner!}
46) [5.1.2.2.1 Program startup] If they are declared, the parameters to the main function shall obey the following constraints: The value of argc shall be this; argv[argc] shall be a null pointer.|nonnegative|>=0
47) [5.1.2.2.1 Program startup] If they are declared, the parameters to the main function shall obey the following constraints: The value of argc shall be nonnegative; argv[argc] shall be this.|null pointer
48) [5.1.2.2.1 Program startup] If the value of argc is this, the array members argv[0] through argv[argc-1] inclusive shall contain pointers to strings, which are given implementation-defined values by the host environment prior to program startup.|greater than zero|greater than 0|>0
49) [5.1.2.2.1 Program startup] If the host environment is not capable of supplying strings with letters in both uppercase and lowercase, the implementation shall ensure that the strings are received in this case.|lowercase|lower
50) [5.1.2.2.1 Program startup] If the value of argc is this, the string pointed to by argv[0] represents the program name.|greater than zero{argv[0][0] shall be the null character if the program name is not available from the host environment.}|>0{argv[0][0] shall be the null character if the program name is not available from the host environment.}|greater than 0{argv[0][0] shall be the null character if the program name is not available from the host environment.}
51) [5.1.2.2.1 Program startup] If the value of argc is greater than zero, the string pointed to by argv[0] represents this.|program name{argv[0][0] shall be the null character if the program name is not available from the host environment.}
52) [5.1.2.2.1 Program startup] If the value of argc is greater than zero, the string pointed to by argv[0] represents the program name; argv[0][0] shall be this if the program name is not available from the host environment.|null character|0|'\0'|null
53) [5.1.2.2.1 Program startup] If the value of argc is this, the strings pointed to by argv[1] through argv[argc-1] represent the program parameters.|greater than one|greater than 1|>1
54) [5.1.2.2.1 Program startup] If the value of argc is greater than one, the strings pointed to by argv[1] through argv[argc-1] represent this.|program parameters|parameters
55) [5.1.2.2.3 Program termination] If the return type of the main function is a type compatible with this, a return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument.|int
56) [5.1.2.2.3 Program termination] If the return type of the main function is a type compatible with int, a return from the initial call to the main function is equivalent to calling this function with the value returned by the main function as its argument.|exit
57) [5.1.2.2.3 Program termination] Reaching the } that terminates the main function returns this value.|0|zero
58) [5.1.2.2.3 Program termination] If the return type is not compatible with int, the termination status returned to the host environment is this.|unspecified
59) [5.1.2.3 Program execution] The semantic descriptions in the standard describe the behavior of this in which issues of optimization are irrelevant.|abstract machine
60) [5.1.2.3 Program execution] The semantic descriptions in the standard describe the behavior of an abstract machine in which issues of this are irrelevant.|optimization
61) [5.1.2.3 Program execution] The semantic descriptions in the standard describe the behavior of an abstract machine in which issues of optimization are this.|irrelevant
62) [5.1.2.3 Program execution] Given any two evaluations A and B, if A is this before B, then the execution of A shall precede the execution of B.|sequenced
63) [5.1.2.3 Program execution] Given any two evaluations A and B, if A is not sequenced before or after B, then A and B are this.|unsequenced
64) [5.1.2.3 Program execution] Given any two evaluations A and B, A and B are this when A is sequenced either before or after B, but it is unspecified which.|indeterminately sequenced
65) [5.1.2.3 Program execution] The presence of this between the evaluation of expressions A and B implies that every value computation and side effect associated with A is sequenced before every value computation and side effect associated with B.|sequence point
66) [5.1.2.3 Program execution] An actual implementation need not evaluate part of an expression if it can deduce that its value is not used and that no needed these are produced.|side effects
67) [5.1.2.3 Program execution] When the processing of the abstract machine is interrupted by receipt of this, the values of objects that are neither lock-free atomic objects nor of type volatile sig_atomic_t are unspecified, as is the state of the floating-point environment.|signal
68) [5.1.2.3 Program execution] When the processing of the abstract machine is interrupted by receipt of a signal, the values of objects that are neither lock-free atomic objects nor of type volatile sig_atomic_t are this, as is the state of the floating-point environment.|unspecified
69) [5.1.2.3 Program execution] At program termination, all data written into files shall be this to the result that execution of the program according to the abstract semantics would have produced.|identical|equal
70) [5.1.2.4 Multi-threaded executions and data races] A synchronization operation on one or more memory locations is either an acquire operation, a release operation, both an acquire and release operation, or this operation.|consume
71) [5.1.2.4 Multi-threaded executions and data races] This kind of operation on one or more memory locations is either an acquire operation, a release operation, both an acquire and release operation, or a consume operation.|synchronization
72) [5.1.2.4 Multi-threaded executions and data races] A synchronization operation without this is a fence and can be either an acquire fence, a release fence, or both an acquire and release fence.|associated memory location
73) [5.1.2.4 Multi-threaded executions and data races] A synchronization operation without an associated memory location is this and can be either an acquire this, a release this, or both an acquire and release this.|fence
74) [5.1.2.4 Multi-threaded executions and data races] Performing this operation on a mutex forces prior side effects on other memory locations to become visible to other threads that later perform an acquire or consume operation on the mutex.|release
75) [5.1.2.4 Multi-threaded executions and data races] Performing a release operation on this forces prior side effects on other memory locations to become visible to other threads that later perform an acquire or consume operation on it.|mutex
76) [5.1.2.4 Multi-threaded executions and data races] A release sequence headed by a release operation A on an atomic object M is a maximal contiguous sub-sequence of side effects in the modification order of M, where the first operation is A and every subsequent operation either is performed by the same thread that performed the release or is this kind of atomic operation.|read-modify-write|RMW{RMW stands for read-modify-write.}
77) [5.1.2.4 Multi-threaded executions and data races] If there is ambiguity about which side effect to a non-atomic object is visible, then this occurs and the behavior is undefined.|data race|race condition|race hazard
78) [5.1.2.4 Multi-threaded executions and data races] The execution of a program contains this if it contains two conflicting actions in different threads, at least one of which is not atomic, and neither happens before the other.|data race{Undefined behavior occurs when this happens.}|race condition{Undefined behavior occurs when this happens.}|race hazard{Undefined behavior occurs when this happens.}
79) [5.2.1 Character sets] Two sets of characters and their associated collating sequences shall be defined: the set in which these are written, and the set interpreted in the execution environment.|source files{It is called the source character set.}
80) [5.2.1 Character sets] Two sets of characters and their associated collating sequences shall be defined: the set in which source files are written, and the set interpreted in this environment.|execution{It is called the execution character set.}
81) [5.2.1 Character sets] In a character constant or string literal, members of the execution character set shall be represented by corresponding members of the source character set or by escape sequences consisting of this character followed by one or more characters.|backslash|\
82) [5.2.1 Character sets] A byte with all bits set to this is called the null character; it shall exist in the basic execution character set.|zero{It is used to terminate a string, for instance.}|0{It is used to terminate a string, for instance.}
83) [5.2.1 Character sets] A byte with all bits set to 0 is called this.|null character{It is used to terminate a string, for instance.}
84) [5.2.1 Character sets] A byte with all bits set to 0, called the null character, is used to terminate this.|string
85) [5.2.1 Character sets] The representation of each member of the source and execution basic character sets shall fit in this.|char|byte
86) [5.2.1 Character sets] In both the source and execution basic character sets, the value of each character after this in the list of decimal digits shall be exactly one greater than the value of the previous.|0|zero
87) [5.2.1 Character sets] In both the source and execution basic character sets, the value of each character after 0 in the list of decimal digits shall be exactly this than the value of the previous.|one greater
88) [5.2.1 Character sets] In source files, there shall be some way of indicating the end of each line of text; the standard treats such an end-of-line indicator as if it were a single one of this character.|new-line|newline|\n
89) [5.2.1 Character sets] In the basic execution character set, there shall be characters representing alert, backspace, carriage return, and new line. These are called this kind of character.|control|control character
90) [5.2.1 Character sets] A letter is an uppercase letter or a lowercase letter as defined in this alphabet; in the standard, the term does not include other characters that are letters in other alphabets.|Latin|Latin alphabet
91) [5.2.1.1 Trigraph sequences] These sequences enable the input of characters that are not defined in the Invariant Code Set as described in ISO/IEC 646, which is a subset of the seven-bit US ASCII code set.|trigraph sequences{Their use is discouraged in modern C.}|trigraphs{Their use is discouraged in modern C.}
92) [5.2.1.1 Trigraph sequences] The following tokens, ??= ??) ??! ??( ??' ??> ??/ ??< and ??-, are known as these.|trigraph sequences{Their use is discouraged in modern C.}|trigraphs{Their use is discouraged in modern C.}
93) [5.2.1.2 Multibyte characters] The source character set and the execution character set may both contain multibyte characters. If so, this character set shall be present and each character shall be encoded as a single byte.|basic character set|basic
94) [5.2.1.2 Multibyte characters] This character shall not occur as part of any other multibyte character.|null character|null|'\0'|0
95) [5.2.1.2 Multibyte characters] An identifier, comment, string literal, character constant, or header name shall consist of a sequence of this kind of valid character.|multibyte
96) [5.2.2 Character display semantics] This position is the location on a display device where the next character output by the fputc function would appear.|active|active position
97) [5.2.2 Character display semantics] The active position is that location on a display device where the next character output by this function would appear.|fputc
98) [5.2.2 Character display semantics] An example of this behavior is the direction of writing characters to the display.|locale-specific
99) [5.2.2 Character display semantics] If the active position is at the final position of a line (if there is one), the behavior of the display device is this.|unspecified
100) [5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. This escape sequence produces an audible or visible alert without changing the active position.|\a{It stands for "alert"!}|alert{It is represented as \a.}
101) [5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. This escape sequence moves the active position to the previous position on the current line.|\b{It stands for "backspace"!}|backspace{It is represented as \b.}
102) [5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. This escape sequence moves the active position to the initial position at the start of the next logical page.|\f{It stands for "form-feed"!}|form-feed{It is represented as \f.}
103) [5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. This escape sequence moves the active position to the initial position of the next line.|\n{It stands for "new-line"!}|new-line{It is represented as \n.}
104) [5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. This escape sequence moves the active position to the initial position of the current line.|\r{It stands for "carriage-return"!}|carriage-return{It is represented as \r.}
105) [5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. This escape sequence moves the active position to the next horizontal tabulation position on the current line.|\t{It stands for "horizontal tab"!}|horizontal tab{It is represented as \t.}
106) [5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. This escape sequence moves the active position to the initial position of the next vertical tabulation position.|\v{It stands for "vertical tab"!}|vertical tab{It is represented as \v.}
107) [5.2.2 Character display semantics] Alphabetic escape sequences representing nongraphic characters in the execution character set are intended to produce actions on display devices. Each of these escape sequences shall produce a unique implementation-defined value which can be stored in a single this.|char|byte
108) [5.2.3 Signals and interrupts] The instructions that compose the executable representation of a function is called this.|function image
109) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels of blocks.|127{That ought to be enough for anybody, right?}
110) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels of conditional inclusion.|63{That ought to be enough for anybody, right?}
111) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many pointer, array, and function declarators (in any combinations) modifying an arithmetic, structure, union, or void type in a declaration.|12{That ought to be enough for anybody, right?}
112) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels of parenthesized declarators within a full declaration.|63{That ought to be enough for anybody, right?}
113) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels of parenthesized expressions within a full expression.|63{That ought to be enough for anybody, right?}
114) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many significant initial characters in an internal identifier or a macro name (each universal character name or extended source character is considered a single character).|63{That ought to be enough for anybody, right?}
115) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many external identifiers in one translation unit.|4095{That ought to be enough for anybody, right?}
116) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many identifiers with block scope declared in one block.|511{That ought to be enough for anybody, right?}
117) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many macro identifiers simultaneously defined in one preprocessing translation unit.|4095{That ought to be enough for anybody, right?}
118) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many parameters in one function definition.|127{That ought to be enough for anybody, right?}
119) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many arguments in one function call.|127{That ought to be enough for anybody, right?}
120) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many parameters in one macro definition.|127{That ought to be enough for anybody, right?}
121) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many arguments in one macro invocation.|127{That ought to be enough for anybody, right?}
122) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many characters in a logical source line.|4095{That ought to be enough for anybody, right?}
123) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many characters in a string literal (after concatenation).|4095{That ought to be enough for anybody, right?}
124) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many bytes in an object (in a hosted environment only).|65535{That ought to be enough for anybody, right?}
125) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many nesting levels for #included files.|15{That ought to be enough for anybody, right?}
126) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many case labels for a switch statement (excluding those for any nested switch statements).|1023{That ought to be enough for anybody, right?}
127) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many members in a single structure or union.|1023{That ought to be enough for anybody, right?}
128) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many enumeration constants in a single enumeration.|1023{That ought to be enough for anybody, right?}
129) [5.2.4.1 Translation limits] The implementation shall be able to translate and execute at least one program that contains at least this many levels of nested structure or union definitions in a single struct-declaration-list.|63{That ought to be enough for anybody, right?}
130) [5.2.4.2 Numerical limits] An implementation is required to document all its numerical limits in these headers (name both, separated by "and").|limits.h and float.h|float.h and limits.h
131) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the number of bits for smallest object that is not a bit-field (byte).|CHAR_BIT
132) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the minimum value for an object of type signed char.|SCHAR_MIN
133) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type signed char.|SCHAR_MAX
134) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type unsigned char.|UCHAR_MAX
135) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the minimum value for an object of type char.|CHAR_MIN
136) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type char.|CHAR_MAX
137) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum number of bytes in a multibyte character, for any supported locale.|MB_LEN_MAX
138) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the minimum value for an object of type short int.|SHRT_MIN
139) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type short int.|SHRT_MAX
140) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type unsigned short int.|USHRT_MAX
141) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the minimum value for an object of type int.|INT_MIN
142) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type int.|INT_MAX
143) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type unsigned int.|UINT_MAX
144) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the minimum value for an object of type long int.|LONG_MIN
145) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type long int.|LONG_MAX
146) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type unsigned long int.|ULONG_MAX
147) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the minimum value for an object of type long long int.|LLONG_MIN
148) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type long long int.|LLONG_MAX
149) [5.2.4.2.1 Sizes of integer types <limits.h>] This macro defines the maximum value for an object of type unsigned long long int.|ULLONG_MAX
150) [5.2.4.2.1 Sizes of integer types <limits.h>] If the value of an object of type char is treated as this when used in an expression, the value of CHAR_MIN shall be the same as that of SCHAR_MIN, and CHAR_MAX shall be the same as that of SCHAR_MAX.|signed|signed integer
151) [5.2.4.2.1 Sizes of integer types <limits.h>] If the value of an object of type char is treated as this when used in an expression, the value of CHAR_MIN shall be 0, and CHAR_MAX shall be the same as that of UCHAR_MAX.|unsigned|unsigned integer
152) [5.2.4.2.1 Sizes of integer types <limits.h>] If the value of an object of type char is treated as an unsigned integer when used in an expression, the value of CHAR_MIN shall be this.|0|zero
153) [5.2.4.2.1 Sizes of integer types <limits.h>] If the value of an object of type char is treated as an unsigned integer when used in an expression, the value of CHAR_MAX shall be the same as that of this macro.|UCHAR_MAX
154) [5.2.4.2.2 Characteristics of floating types <float.h>] This is an encoding signifying Not-a-Number.|NaN
155) [5.2.4.2.2 Characteristics of floating types <float.h>] A NaN is an encoding signifying this.|Not-a-Number|Not a Number
156) [5.2.4.2.2 Characteristics of floating types <float.h>] A quiet NaN propagates through almost every arithmetic operation without raising this kind of exception.|floating-point|floating-point exception
157) [5.2.4.2.2 Characteristics of floating types <float.h>] A signaling NaN generally raises this kind of exception when occurring as an arithmetic operand.|floating-point|floating-point exception
158) [5.2.4.2.2 Characteristics of floating types <float.h>] This kind of NaN propagates through almost every arithmetic operation without raising a floating-point exception.|quiet|quiet NaN
159) [5.2.4.2.2 Characteristics of floating types <float.h>] This kind of NaN generally raises a floating-point exception when occurring as an arithmetic operand.|signaling|signaling NaN
160) [5.2.4.2.2 Characteristics of floating types <float.h>] Wherever floating-point values such as 0, infinity or NaN are unsigned, any requirement to retrieve the sign shall produce this sign.|unspecified
161) [5.2.4.2.2 Characteristics of floating types <float.h>] Wherever floating-point values such as 0, infinity or NaN are unsigned, any requirement to set the sign shall be this.|ignored
162) [5.2.4.2.2 Characteristics of floating types <float.h>] The rounding mode for floating-point addition is characterized by the implementation-defined value of this macro.|FLT_ROUNDS
163) [5.2.4.2.2 Characteristics of floating types <float.h>] The rounding mode for floating-point addition is characterized by the implementation-defined value of FLT_ROUNDS; when it is set to this value, it signifies indeterminable rounding.|-1
164) [5.2.4.2.2 Characteristics of floating types <float.h>] The rounding mode for floating-point addition is characterized by the implementation-defined value of FLT_ROUNDS; when it is set to this value, it signifies rounding toward zero.|0
165) [5.2.4.2.2 Characteristics of floating types <float.h>] The rounding mode for floating-point addition is characterized by the implementation-defined value of FLT_ROUNDS; when it is set to this value, it signifies rounding to nearest.|1
166) [5.2.4.2.2 Characteristics of floating types <float.h>] The rounding mode for floating-point addition is characterized by the implementation-defined value of FLT_ROUNDS; when it is set to this value, it signifies rounding toward positive infinity.|2
167) [5.2.4.2.2 Characteristics of floating types <float.h>] The rounding mode for floating-point addition is characterized by the implementation-defined value of FLT_ROUNDS; when it is set to this value, it signifies rounding toward negative infinity.|3
168) [5.2.4.2.2 Characteristics of floating types <float.h>] Except for assignment and cast, the values yielded by operators with floating operands are evaluated in a format characterized by the implementation-defined value of this macro.|FLT_EVAL_METHOD
169) [5.2.4.2.2 Characteristics of floating types <float.h>] Except for assignment and cast, the values yielded by operators with floating operands are evaluated in a format characterized by the implementation-defined value of FLT_EVAL_METHOD; when it is set to this value, it signifies indeterminable evaluation format.|-1
170) [5.2.4.2.2 Characteristics of floating types <float.h>] Except for assignment and cast, the values yielded by operators with floating operands are evaluated in a format characterized by the implementation-defined value of FLT_EVAL_METHOD; when it is set to this value, it signifies all operations and constants are evaluated just to the range and precision of the type.|0
171) [5.2.4.2.2 Characteristics of floating types <float.h>] Except for assignment and cast, the values yielded by operators with floating operands are evaluated in a format characterized by the implementation-defined value of FLT_EVAL_METHOD; when it is set to this value, it signifies operations and constants of type float and double are evaluated to the range and precision of the double type.|1
172) [5.2.4.2.2 Characteristics of floating types <float.h>] Except for assignment and cast, the values yielded by operators with floating operands are evaluated in a format characterized by the implementation-defined value of FLT_EVAL_METHOD; when it is set to this value, it signifies all operations and constants are evaluated to the range and precision of the long double type.|2
173) [5.2.4.2.2 Characteristics of floating types <float.h>] The presence or absence of floating-point subnormal numbers is characterized by the implementation-defined values of FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, and LDBL_HAS_SUBNORM; when it is set to this value, it signifies that it is indeterminable whether subnormal numbers are present.|-1
174) [5.2.4.2.2 Characteristics of floating types <float.h>] The presence or absence of floating-point subnormal numbers is characterized by the implementation-defined values of FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, and LDBL_HAS_SUBNORM; when it is set to this value, it signifies that subnormal numbers are absent (type does not support subnormal numbers).|0
175) [5.2.4.2.2 Characteristics of floating types <float.h>] The presence or absence of floating-point subnormal numbers is characterized by the implementation-defined values of FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, and LDBL_HAS_SUBNORM; when it is set to this value, it signifies that subnormal numbers are present (type does support subnormal numbers).|1
176) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum value for the radix of exponent representation.|FLT_RADIX
177) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of base-FLT_RADIX digits in the floating-point significand.|FLT_MANT_DIG
178) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of base-FLT_RADIX digits in the double-precision floating-point significand.|DBL_MANT_DIG
179) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of base-FLT_RADIX digits in the long double-precision floating-point significand.|LDBL_MANT_DIG
180) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of decimal digits, n, such that any floating-point number with p radix b digits can be rounded to a floating-point number with n decimal digits and back again without change to the value.|FLT_DECIMAL_DIG
181) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of decimal digits, n, such that any double-precision floating-point number with p radix b digits can be rounded to a floating-point number with n decimal digits and back again without change to the value.|DBL_DECIMAL_DIG
182) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of decimal digits, n, such that any long double-precision floating-point number with p radix b digits can be rounded to a floating-point number with n decimal digits and back again without change to the value.|LDBL_DECIMAL_DIG
183) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of decimal digits, n, such that any floating-point number in the widest supported floating type with pmax radix b digits can be rounded to a floating-point number with n decimal digits and back again without change to the value.|DECIMAL_DIG
184) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of decimal digits, q, such that any floating-point number with q decimal digits can be rounded into a floating-point number with p radix b digits and back again without change to the q decimal digits.|FLT_DIG
185) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number of decimal digits, q, such that any double-precision floating-point number with q decimal digits can be rounded into a floating-point number with p radix b digits and back again without change to the q decimal digits.|DBL_DIG
186) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the number number of decimal digits, q, such that any long double-precision floating-point number with q decimal digits can be rounded into a floating-point number with p radix b digits and back again without change to the q decimal digits.|LDBL_DIG
187) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum negative integer such that FLT_RADIX raised to one less than the power of that value is a normalized floating-point number.|FLT_MIN_EXP
188) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum negative integer such that FLT_RADIX raised to one less than the power of that value is a normalized double-precision floating-point number.|DBL_MIN_EXP
189) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum negative integer such that FLT_RADIX raised to one less than the power of that value is a normalized long double-precision floating-point number.|LDBL_MIN_EXP
190) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum negative integer such that 10 raised to the power of that value is in the range of normalized floating-point numbers.|FLT_MIN_10_EXP
191) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum negative integer such that 10 raised to the power of that value is in the range of normalized double-precision floating-point numbers.|DBL_MIN_10_EXP
192) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum negative integer such that 10 raised to the power of that value is in the range of normalized long double-precision floating-point numbers.|LDBL_MIN_10_EXP
193) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum integer such that FLT_RADIX raised to one less than the power of that value is a representable finite floating-point number.|FLT_MAX_EXP
194) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum integer such that FLT_RADIX raised to one less than the power of that value is a representable finite double-precision floating-point number.|DBL_MAX_EXP
195) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum integer such that FLT_RADIX raised to one less than the power of that value is a representable finite long double-precision floating-point number.|LDBL_MAX_EXP
196) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum integer such that 10 raised to the power of that value is in the range of representable finite floating-point numbers.|FLT_MAX_10_EXP
197) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum integer such that 10 raised to the power of that value is in the range of representable finite double-precision floating-point numbers.|DBL_MAX_10_EXP
198) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum integer such that 10 raised to the power of that value is in the range of representable finite long double-precision floating-point numbers.|LDBL_MAX_10_EXP
199) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum representable finite floating-point number.|FLT_MAX
200) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum representable finite double-precision floating-point number.|DBL_MAX
201) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the maximum representable finite long double-precision floating-point number.|LDBL_MAX
202) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the difference between 1 and the least value greater than 1 that is representable in the given floating point type.|FLT_EPSILON
203) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the difference between 1 and the least value greater than 1 that is representable in the given double-precision floating point type.|DBL_EPSILON
204) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the difference between 1 and the least value greater than 1 that is representable in the given long double-precision floating point type.|LDBL_EPSILON
205) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum normalized positive floating-point number.|FLT_MIN
206) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum normalized positive double-precision floating-point number.|DBL_MIN
207) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum normalized positive long double-precision floating-point number.|LDBL_MIN
208) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum positive floating-point number.|FLT_TRUE_MIN
209) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum positive double-precision floating-point number.|DBL_TRUE_MIN
210) [5.2.4.2.2 Characteristics of floating types <float.h>] Regarding floating types, this macro represents the minimum positive long double-precision floating-point number.|LDBL_TRUE_MIN
211) [5.2.4.2.2 Characteristics of floating types <float.h>] If the presence or absence of these numbers is indeterminable, then the value of the minimum positive floating-point number is intended to be a positive number no greater than the minimum normalized positive number for the type.|subnormal
212) [5.2.4.2.2 Characteristics of floating types <float.h>] If a type wider than double were supported, then DECIMAL_DIG would be greater than this value.|17
213) [5.2.4.2.2 Characteristics of floating types <float.h>] If a type wider than double were supported, then this macro would be greater than 17.|DECIMAL_DIG
214) [6.2.1 Scopes of identifiers] A member of this is called an enumeration constant.|enumeration|enum
215) [6.2.1 Scopes of identifiers] A member of an enumeration is called this.|enumeration constant|enum constant
216) [6.2.1 Scopes of identifiers] This is the only kind of identifier that has function scope.|label name|label
217) [6.2.1 Scopes of identifiers] A label name is the only kind of identifier that has this scope.|function
218) [6.2.1 Scopes of identifiers] If the declarator or type specifier that declares the identifier appears outside of any block or list of parameters, the identifier has this scope.|file{File scope identifiers terminate at the end of the translation unit.}
219) [6.2.1 Scopes of identifiers] If the declarator or type specifier that declares the identifier appears outside of any block or list of parameters, the identifier has file scope, which terminates at the end of this.|translation unit
220) [6.2.1 Scopes of identifiers] If the declarator or type specifier that declares the identifier appears inside a block or within the list of parameter declarations in a function definition, the identifier has this scope.|block{Block scope identifiers terminate at the end of the associated block.}
221) [6.2.1 Scopes of identifiers] If the declarator or type specifier that declares the identifier appears within the list of parameter declarations in a function prototype (not part of a function definition), the identifier has this scope.|function prototype{They terminate at the end of the function declarator.}|function prototype scope{They terminate at the end of the function declarator.}
222) [6.2.1 Scopes of identifiers] If an identifier designates two different entities in the same name space, the scopes might do this.|overlap{The scope of one entity (the inner scope) will end strictly before the scope of the other entity (the outer scope).}
223) [6.2.2 Linkages of identifiers] If the declaration of a file scope identifier for an object or a function contains the storage-class specifier static, the identifier has this linkage.|internal
224) [6.2.2 Linkages of identifiers] If the declaration of a file scope identifier for an object or a function contains this storage-class specifier, the identifier has internal linkage.|static
225) [6.2.2 Linkages of identifiers] A function declaration can contain this storage-class specifier only if it is at file scope.|static
226) [6.2.2 Linkages of identifiers] A function declaration can contain the storage-class specifier static only if it is at this scope.|file
227) [6.2.2 Linkages of identifiers] If no prior declaration is visible, or if the prior declaration specifies no linkage, then the identifier has this linkage.|external
228) [6.2.2 Linkages of identifiers] If the declaration of an identifier for a function has no storage-class specifier, its linkage is determined exactly as if it were declared with this storage-class specifier.|extern
229) [6.2.2 Linkages of identifiers] If the declaration of an identifier for an object has file scope and no storage-class specifier, it has this linkage.|external
230) [6.2.2 Linkages of identifiers] If the declaration of an identifier for an object has this scope and no storage-class specifier, its linkage is external.|file
231) [6.2.2 Linkages of identifiers] If, within a translation unit, the same identifier appears with both internal and external linkage, the behavior is this.|undefined
232) [6.2.3 Name spaces of identifiers] If more than one declaration of a particular identifier is visible at any point in a translation unit, this context disambiguates uses that refer to different entities.|syntactic context|syntactic|syntax
233) [6.2.4 Storage durations of objects] This exists, has a constant address, and retains its last-stored value throughout its lifetime.|object
234) [6.2.4 Storage durations of objects] An object whose identifier is declared without the storage-class specifier _Thread_local, and either with external or internal linkage or with the storage-class specifier static, has this storage duration.|static
235) [6.2.4 Storage durations of objects] An object whose identifier is declared with this storage-class specifier has thread storage duration.|_Thread_local
236) [6.2.4 Storage durations of objects] An object whose identifier is declared with the storage-class specifier _Thread_local has this storage duration.|thread
237) [6.2.4 Storage durations of objects] An object whose identifier is declared with no linkage and without the storage-class specifier static has this storage duration.|automatic|auto
238) [6.2.4 Storage durations of objects] The result of attempting to indirectly access an object with automatic storage duration from a thread other than the one with which the object is associated is this behavior.|implementation-defined
239) [6.2.4 Storage durations of objects] For an object with this storage duration, if a block is entered recursively, a new instance of the object is created each time.|automatic|auto
240) [6.2.4 Storage durations of objects] The initial value of an object with this storage duration is indeterminate.|automatic|auto
241) [6.2.4 Storage durations of objects] The initial value of an object with automatic storage duration is this.|indeterminate
242) [6.2.4 Storage durations of objects] If an initialization is specified for an object with this storage duration, it is performed each time the declaration or compound literal is reached in the execution of a block; otherwise, the value becomes indeterminate each time the declaration is reached.|automatic|auto
243) [6.2.4 Storage durations of objects] If an initialization is specified for an object with automatic storage duration, it is performed each time the declaration or compound literal is reached in the execution of a block; otherwise, the value becomes this each time the declaration is reached.|indeterminate
244) [6.2.5 Types] An object declared as this type is just large enough to store the values 0 and 1.|_Bool
245) [6.2.5 Types] An object declared as this type is just large enough to store any member of the basic execution character set.|char
246) [6.2.5 Types] If a member of the basic execution character set is stored in a char object, its value is guaranteed to be this.|nonnegative
247) [6.2.5 Types] There are these many standard signed integer types.|5{They are designated as signed char, short int, int, long int, and long long int.}|five{They are designated as signed char, short int, int, long int, and long long int.}
248) [6.2.5 Types] A computation involving unsigned operands can never do this.|overflow{This is because a result that cannot be represented by the resulting unsigned integer type is reduced modulo the number that is one greater than the largest value that can be represented by the resulting type.}
249) [6.2.5 Types] The standard and extended signed integer types are collectively called this.|signed integer types
250) [6.2.5 Types] The standard and extended unsigned integer types are collectively called this.|unsigned integer types
251) [6.2.5 Types] The standard signed integer types and standard unsigned integer types are collectively called this.|standard integer types
252) [6.2.5 Types] The extended signed integer types and extended unsigned integer types are collectively called this.|extended integer types
253) [6.2.5 Types] There are this many complex types.|3{They are designated as float _Complex, double _Complex, and long double _Complex.}|three{They are designated as float _Complex, double _Complex, and long double _Complex.}
254) [6.2.5 Types] The real floating and complex types are collectively called this.|floating types
255) [6.2.5 Types] The type char, the signed and unsigned integer types, and the floating types are collectively called this.|basic types
256) [6.2.5 Types] The three types char, signed char, and unsigned char are collectively called this.|character types
257) [6.2.5 Types] The implementation shall define this to have the same range, representation, and behavior as either signed char or unsigned char.|char
258) [6.2.5 Types] This comprises a set of named integer constant values.|enumeration|enum
259) [6.2.5 Types] An enumeration comprises a set of these.|named integer constant values
260) [6.2.5 Types] This type describes a contiguously allocated nonempty set of objects with a particular member object type, called the element type.|array
261) [6.2.5 Types] An array type describes a contiguously allocated nonempty set of objects with a particular member object type, called this type.|element
262) [6.2.5 Types] The element type shall be this whenever the array type is specified.|complete
263) [6.2.5 Types] An array type is said to be derived from its element type, and if its element type is T, the array type is sometimes called this.|array of T
264) [6.2.5 Types] The construction of an array type from an element type is called this.|array type derivation
265) [6.2.5 Types] This type describes a sequentially allocated nonempty set of member objects (and, in certain circumstances, an incomplete array), each of which has an optionally specified name and possibly distinct type.|structure|struct
266) [6.2.5 Types] This type describes an overlapping nonempty set of member objects, each of which has an optionally specified name and possibly distinct type.|union
267) [6.2.5 Types] This type is characterized by its return type and the number and types of its parameters.|function
268) [6.2.5 Types] A function type is said to be derived from its return type, and if its return type is T, the function type is sometimes called this.|function returning T
269) [6.2.5 Types] The construction of a function type from a return type is called this.|function type derivation
270) [6.2.5 Types] This type describes an object whose value provides a reference to an entity of the referenced type.|pointer
271) [6.2.5 Types] A pointer type derived from the referenced type T is sometimes called this.|pointer to T
272) [6.2.5 Types] The construction of a pointer type from a referenced type is called this.|pointer type derivation
273) [6.2.5 Types] This type describes the type designated by the construct _Atomic (type-name).|atomic
274) [6.2.5 Types] An array type of unknown size is this kind of type.|incomplete
275) [6.2.5 Types] A type has known constant size if the type is not incomplete and is not this type of array.|VLA{VLA stands for variable length array.}|variable length|variable length array
276) [6.2.5 Types] A pointer to void shall have the same representation and alignment requirements as a pointer to this type.|char|character
277) [6.2.6.1 General] Values stored in unsigned bit-fields and objects of type unsigned char shall be represented using this notation.|binary|pure binary|pure binary notation
278) [6.2.6.1 General] A value may be copied into an object of type unsigned char [n] (e.g., by memcpy); the resulting set of bytes is called this.|object representation
279) [6.2.6.1 General] Certain object representations need not represent a value of the object type. Such a representation is called this.|trap representation|trap
280) [6.2.6.1 General] When a value is stored in a member of an object of this type, the bytes of the object representation that do not correspond to that member but do correspond to other members take unspecified values.|union
281) [6.2.6.2 Integer types] For unsigned integer types other than unsigned char, the bits of the object representation shall be divided into these two groups of bits (name both, separated by "and").|value and padding{There need not be any padding bits.}|padding and value{There need not be any padding bits.}
282) [6.2.6.2 Integer types] If there are N value bits in an integer type, each bit shall represent a different power of 2 between 1 and 2 to the power of N - 1, so that objects of that type shall be capable of representing values from 0 to 2 to the power of N - 1 using a pure binary representation; this shall be known as this.|value representation
283) [6.2.6.2 Integer types] For signed integer types, the bits of the object representation shall be divided into three groups: value bits, padding bits, and the sign bit. There need not be any padding bits, and this type shall not have any padding bits.|char|signed char
284) [6.2.6.2 Integer types] Signed integer types shall have exactly this many sign bits.|one|1
285) [6.2.6.2 Integer types] It is implementation-defined whether the value with sign bit 1 and all value bits zero (for the first two), or with sign bit and all value bits 1 (for ones' complement), is a trap representation or a normal value. In the case of sign and magnitude and ones' complement, if this representation is a normal value it is called this.|negative zero|-0
286) [6.2.6.2 Integer types] For any integer type, the object representation where all of these are zero shall be a representation of the value zero in that type.|bits
287) [6.2.6.2 Integer types] Of an integer type, this is the number of bits it uses to represent values, excluding any sign and padding bits.|precision
288) [6.2.6.2 Integer types] Of an integer type, this is the number of bits it uses to represent values, including any sign and padding bits.|width
289) [6.2.7 Compatible type and composite type] For two structures to be compatible, corresponding members shall be declared in this.|same order
290) [6.2.7 Compatible type and composite type] For two structures or unions to be compatible, corresponding bit-fields shall have the same this.|width|widths
291) [6.2.7 Compatible type and composite type] For two enumerations to be compatible, corresponding members shall have the same this.|values|value
292) [6.2.7 Compatible type and composite type] This kind of type can be constructed from two types that are compatible; it is a type that is compatible with both of the two types.|composite|composite type
293) [6.2.8 Alignment of objects] This is an implementation-defined integer value representing the number of bytes between successive addresses at which a given object can be allocated.|alignment
294) [6.2.8 Alignment of objects] This kind of alignment is represented by an alignment less than or equal to the greatest alignment supported by the implementation in all contexts, which is equal to _Alignof (max_align_t).|fundamental|fundamental alignment
295) [6.2.8 Alignment of objects] This kind of alignment is represented by an alignment greater than _Alignof (max_align_t).|extended|extended alignment
296) [6.2.8 Alignment of objects] A type having an extended alignment requirement is called this.|over-aligned|over-aligned type
297) [6.2.8 Alignment of objects] Every valid alignment value shall be in this domain.|nonnegative integral power of two|positive integral power of two|integral power of two|power of two|power of 2|nonnegative integral power of 2|positive integral power of 2|integral power of 2
298) [6.2.8 Alignment of objects] This type shall have the weakest alignment requirement.|char{In any of its variants: plain, unsigned or signed.}
299) [6.2.8 Alignment of objects] When an alignment is compared as this to another it represents a stricter alignment.|larger|bigger|greater
300) [6.3.1.1 Boolean, characters, and integers] The rank of a signed integer type shall compare as this to the rank of any signed integer type with less precision.|greater|larger|bigger
301) [6.3.1.1 Boolean, characters, and integers] The rank of this type shall be less than the rank of all other standard integer types.|_Bool
302) [6.3.1.1 Boolean, characters, and integers] If an int can represent all values of the original integer type (as restricted by the width, for a bit-field), the value is converted to an int; otherwise, it is converted to an unsigned int. This conversion is called this.|integer promotions|integer promotion
303) [6.3.1.2 Boolean type] When any scalar value is converted to _Bool, the result is 0 if the value compares equal to 0; otherwise, the result is this.|1{That was an easy one.}|one{That was an easy one.}
304) [6.3.1.3 Signed and unsigned integers] When a value with integer type is converted to another integer type other than _Bool, if the value can be represented by the new type, it is unchanged. Otherwise, if the new type is this, the value is converted by repeatedly adding or subtracting one more than the maximum value that can be represented in the new type until the value is in its range.|unsigned
305) [6.3.1.4 Real floating and integer] When a finite value of real floating type is converted to an integer type other than _Bool, this part of the value is discarded.|fractional
306) [6.3.1.4 Real floating and integer] If the value of integer type being converted to a real floating type is in the range of values that can be represented but cannot be represented exactly, the result is either the nearest higher or nearest lower representable value, chosen in this manner.|implementation-defined
307) [6.3.1.7 Real and complex] When a value of complex type is converted to a real type, this part of the complex value is discarded.|imaginary
308) [6.3.2.1 Lvalues, arrays, and function designators] This is an expression (with an object type other than void) that designates an object.|lvalue
309) [6.3.2.1 Lvalues, arrays, and function designators] This is an lvalue that does not have array type, does not have an incomplete type, does not have a const-qualified type, and if it is a structure or union, does not have any member (including, recursively, any member or element of all contained aggregates or unions) with a const-qualified type.|modifiable lvalue
310) [6.3.2.1 Lvalues, arrays, and function designators] An obvious example of this is an identifier of an object.|lvalue
311) [6.3.2.1 Lvalues, arrays, and function designators] Except when it is the operand of the sizeof operator, the _Alignof operator, the unary & operator, the ++ operator, the -- operator, or the left operand of the . operator or an assignment operator, an lvalue that does not have array type is converted to the value stored in the designated object; this conversion is called this.|lvalue conversion
312) [6.3.2.1 Lvalues, arrays, and function designators] Except when it is the operand of the sizeof operator, the _Alignof operator, or the unary & operator, or is a string literal used to initialize an array, an expression that has type ``array of type'' is converted to an expression with this type.|pointer to type|pointer
313) [6.3.2.2 void] If an expression is evaluated as a void expression, this is discarded.|value{A void expression is evaluated for its side effects.}|its value{A void expression is evaluated for its side effects.}
314) [6.3.2.2 void] A void expression is evaluated for this.|side effects|its side effects
315) [6.3.2.2 void] This kind of expression is evaluated solely for its side effects.|void|void expression
316) [6.3.2.3 Pointers] A pointer to any object type may be converted to this and back again; the result shall compare equal to the original pointer.|pointer to void|void *|void*
317) [6.3.2.3 Pointers] An integer constant expression with the value 0, or such an expression cast to type void *, is called this.|null pointer constant
318) [6.3.2.3 Pointers] If a null pointer constant is converted to a pointer type, the resulting pointer is called this.|null pointer
319) [6.3.2.3 Pointers] If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare as this to a pointer to any object or function.|unequal|not equal|!=
320) [6.3.2.3 Pointers] The mapping functions for converting a pointer to an integer or an integer to a pointer are intended to be consistent with this of the execution environment.|addressing structure
321) [6.3.2.3 Pointers] An integer may be converted to any pointer type. The result for an integer other than zero is this kind of behavior, might not be correctly aligned, might not point to an entity of the referenced type, and might be a trap representation.|implementation defined
322) [6.3.2.3 Pointers] When a pointer to an object is converted to a pointer to a character type, the result points to this addressed byte of the object.|lowest|first
323) [6.3.2.3 Pointers] If a pointer type to A is correctly aligned for a pointer to type B, which in turn is correctly aligned for a pointer to type C, then a pointer to type A is correctly aligned for a pointer to this type.|C
324) [6.3.2.3 Pointers] A pointer to a function of one type may be converted to a pointer to a function of another type and back again; the result shall compare as this to the original pointer.|equal
325) [6.3.2.3 Pointers] If a converted pointer is used to call a function whose type is not compatible with the referenced type, the behavior is this.|undefined
326) [6.4 Lexical elements] This is the minimal lexical element of the language in translation phases 7 and 8.|token
327) [6.4 Lexical elements] This is the minimal lexical element of the language in translation phases 3 through 6.|preprocessing token
328) [6.4.2.1 General] This is a sequence of nondigit characters (including the underscore _, the lowercase and uppercase Latin letters, and other characters) and digits, which designates one or more entities.|identifier
329) [6.4.2.1 General] An implementation may allow multibyte characters that are not part of the basic source character set to appear in these.|identifiers
330) [6.4.2.1 General] When preprocessing tokens are converted to tokens during translation phase 7, if a preprocessing token could be converted to either a keyword or an identifier, it is converted to this.|keyword
331) [6.4.2.2 Predefined identifiers] This identifier shall be implicitly declared by the translator as if, immediately following the opening brace of each function definition, the declaration static const char this[] = "function-name"; appeared, where function-name is the name of the lexically-enclosing function.|__func__
332) [6.4.3 Universal character names] This kind of character name shall not specify a character whose short identifier is less than 00A0 other than 0024 ($), 0040 (@), or 0060 (`), nor one in the range D800 through DFFF inclusive.|universal
333) [6.4.4.1 Integer constants] This kind of constant begins with a nonzero digit and consists of a sequence of decimal digits.|decimal
334) [6.4.4.1 Integer constants] This kind of constant consists of the prefix 0 optionally followed by a sequence of the digits 0 through 7 only.|octal
335) [6.4.4.1 Integer constants] This kind of constant consists of the prefix 0x or 0X followed by a sequence of the decimal digits and the letters a (or A) through f (or F) with values 10 through 15 respectively.|hexadecimal
336) [6.4.4.2 Floating constants] If a floating constant is suffixed by the letter f or F, it has this type.|float
337) [6.4.4.2 Floating constants] If a floating constant is suffixed by the letter l or L, it has this type.|long double
338) [6.4.4.2 Floating constants] The conversion of this kind of constant shall not raise an exceptional condition or a floating-point exception at execution time.|floating
339) [6.4.4.3 Enumeration constants] An identifier declared as an enumeration constant has this type.|int
340) [6.4.4.4 Character constants] This kind of constant is a sequence of one or more multibyte characters enclosed in single-quotes.|integer character constant|integer character
341) [6.4.4.4 Character constants] This kind of constant is a sequence of one or more multibyte characters enclosed in single-quotes and prefixed by the letter L, u, or U.|wide character constant|wide character
342) [6.4.4.4 Character constants] The value of an octal or hexadecimal escape sequence in a character constant shall be in the range of representable values for this type if not prefixed.|unsigned char
343) [6.4.4.4 Character constants] The value of an octal or hexadecimal escape sequence in a character constant shall be in the range of representable values for the unsigned type corresponding to this type if prefixed with L.|wchar_t
344) [6.4.4.4 Character constants] The value of an octal or hexadecimal escape sequence in a character constant shall be in the range of representable values for this type if prefixed with u.|char16_t
345) [6.4.4.4 Character constants] The value of an octal or hexadecimal escape sequence in a character constant shall be in the range of representable values for this type if prefixed with U.|char32_t
346) [6.4.4.4 Character constants] If an integer character constant contains a single character or escape sequence, its value is the one that results when an object with type char whose value is that of the single character or escape sequence is converted to this type.|int
347) [6.4.5 String literals] A sequence of these string literal tokens shall not include both a wide string literal and a UTF-8 string literal.|adjacent
348) [6.4.5 String literals] This kind of string literal is a sequence of zero or more multibyte characters enclosed in double-quotes.|character|character string literal
349) [6.4.5 String literals] This kind of string literal is a sequence of zero or more multibyte characters enclosed in double-quotes and prefixed by u8.|UTF8|UTF-8|UTF-8 string literal
350) [6.4.5 String literals] This kind of string literal is a sequence of zero or more multibyte characters enclosed in double-quotes and  prefixed by the letter L, u, or U.|wide|wide string literal
351) [6.4.5 String literals] In this translation phase, the multibyte character sequences specified by any sequence of adjacent character and identically-prefixed string literal tokens are concatenated into a single multibyte character sequence.|6|six
352) [6.4.5 String literals] In translation phase 6, the multibyte character sequences specified by any sequence of adjacent character and identically-prefixed string literal tokens are this into a single multibyte character sequence.|concatenated
353) [6.4.5 String literals] When adjacent string literals are concatenated together in translation phase 6, if any of the tokens has an encoding prefix, the resulting multibyte character sequence is treated as having the same prefix; otherwise, it is treated as this kind of string literal.|character|character string literal
354) [6.4.5 String literals] If the program attempts to do this to a string literal, the behavior is undefined.|modify
355) [6.4.6 Punctuators] A punctuator may specify an operation to be performed (which in turn may yield a value or a function designator, produce a side effect, or some combination thereof) in which case it is known as this.|operator
356) [6.4.6 Punctuators] This is an entity on which an operator acts.|operand
357) [6.4.6 Punctuators] The following tokens, <: :> <% %> %: and %:%:, are known as these.|digraphs
358) [6.4.7 Header names] If the characters ', \, ", //, or /* occur in the sequence between the < and > delimiters of this preprocessing directive, the behavior is undefined.|#include
359) [6.5 Expressions] A sequence of operators and operands that specifies computation of a value, or that designates an object or a function, or that generates side effects, or that performs a combination thereof, is called this.|expression
360) [6.5 Expressions] If a side effect on a scalar object is this relative to either a different side effect on the same scalar object or a value computation using the value of the same scalar object, the behavior is undefined.|unsequenced
361) [6.5 Expressions] If a side effect on a scalar object is unsequenced relative to either a different side effect on the same scalar object or a value computation using the value of the same scalar object, the behavior is this.|undefined
362) [6.5 Expressions] If there are multiple allowable orderings of the subexpressions of an expression, the behavior is undefined if this occurs in any of the orderings.|unsequenced side effect
363) [6.5 Expressions] This is specified by the syntax of the grouping of operators and operands in the evaluation of an expression.|precedence|precedence of operators
364) [6.5 Expressions] The unary operator ~, and the binary operators <<, >>, &, ^, and \| are collectively described as this.|bitwise operators
365) [6.5 Expressions] The result of this operator is the bitwise complement of its operand.|unary ~|~
366) [6.5 Expressions] The result of this operator is its left operand shifted the number of bit positions left designated by its right operand.|binary <<|<<
367) [6.5 Expressions] The result of this operator is its left operand shifted the number of bit positions right designated by its right operand.|binary >>|>>
368) [6.5 Expressions] The result of this operator is the bitwise-AND of its operands.|binary &|&
369) [6.5 Expressions] The result of this operator is the exclusive-OR of its operands.|binary ^|^
370) [6.5 Expressions] The result of this operator is the bitwise-OR of its operands.|binary \||\|
371) [6.5 Expressions] The bitwise operators are required to have operands that have this kind of type.|integer
372) [6.5 Expressions] If the result of the evaluation of an expression is not mathematically defined or not in the range of representable values for its type, this kind of condition occurs.|exceptional|exceptional condition
373) [6.5 Expressions] If an exceptional condition occurs during the evaluation of an expression (that is, if the result is not mathematically defined or not in the range of representable values for its type), the behavior is this.|undefined
374) [6.5 Expressions] If a value is stored into an object having no declared type through an lvalue having a type that is not a character type, then the type of the lvalue becomes this type of the object for that access and for subsequent accesses that do not modify the stored value.|effective|effective type
375) [6.5 Expressions] When a floating expression is evaluated as though it were a single operation, thereby omitting rounding errors implied by the source code and the expression evaluation method, it is called this.|contracted expression|contracted
376) [6.5 Expressions] This pragma in <math.h> provides a way to disallow contracted expressions.|FP_CONTRACT
377) [6.5.1.1 Generic selection] A generic selection shall have no more than this many default generic associations.|one|1
378) [6.5.1.1 Generic selection] The type name in a generic association shall specify a complete object type other than this kind of type.|variably modified type|variably modified
379) [6.5.1.1 Generic selection] No two generic associations in the same generic selection shall specify this kind of types.|compatible
380) [6.5.1.1 Generic selection] If a generic selection does not have one of this, its controlling expression shall have type compatible with exactly one of the types named in its generic association list.|default generic association|default association
381) [6.5.2.1 Array subscripting] One of the expressions of an array subscript shall have type ``pointer to complete object type'', the other expression shall have this type, and the result has type ``type''.|integer
382) [6.5.2.1 Array subscripting] A postfix expression followed by an expression in these is a subscripted designation of an element of an array object.|square brackets|[]|brackets
383) [6.5.2.1 Array subscripting] Regarding array subscripting, the expression x[i] is equivalent to this (no spaces).|(*((x)+(i)))|*((x)+(i))
384) [6.5.2.1 Array subscripting] Regarding array subscripting, this expression is equivalent to (*((x)+(i))).|x[i]
385) [6.5.2.2 Function calls] If the expression that denotes the called function has a type that includes this, the number of arguments shall agree with the number of parameters.|prototype
386) [6.5.2.2 Function calls] A postfix expression followed by parentheses () containing a possibly empty, comma-separated list of expressions is called this.|function call
387) [6.5.2.2 Function calls] If the expression that denotes the called function has a type that does not include a prototype, the integer promotions are performed on each argument, and arguments that have type float are promoted to double. These are called this.|default argument promotions
388) [6.5.2.2 Function calls] If the expression that denotes the called function has a type that does not include this, the integer promotions are performed on each argument, and arguments that have type float are promoted to double. These are called the default argument promotions.|prototype
389) [6.5.2.2 Function calls] If the expression that denotes the called function has a type that does include this, the arguments are implicitly converted, as if by assignment, to the types of the corresponding parameters, taking the type of each parameter to be the unqualified version of its declared type.|prototype
390) [6.5.2.2 Function calls] If the expression that denotes the called function has a type that does include a prototype, the arguments are implicitly converted, as if by this, to the types of the corresponding parameters, taking the type of each parameter to be the unqualified version of its declared type.|assignment
391) [6.5.2.2 Function calls] This kind of function call shall be permitted, both directly and indirectly through any chain of other functions.|recursive
392) [6.5.2.2 Function calls] In the function call (*pf[f1()]) (f2(), f3() + f4()) the functions f1, f2, f3, and f4 may be called in any order. However, all of these must be completed before the function pointed to by pf[f1()] is called.|side effects
393) [6.5.2.3 Structure and union members] The first operand of this operator shall have an atomic, qualified, or unqualified structure or union type, and the second operand shall name a member of that type.|.
394) [6.5.2.3 Structure and union members] The first operand of this operator shall have type ``pointer to atomic, qualified, or unqualified structure'' or ``pointer to atomic, qualified, or unqualified union'', and the second operand shall name a member of the type pointed to.|->
395) [6.5.2.3 Structure and union members] If the member used to read the contents of this kind of object is not the same as the member last used to store a value in the object, the appropriate part of the object representation of the value is reinterpreted as an object representation in the new type.|union{This process is sometimes called ``type punning''.}
396) [6.5.2.3 Structure and union members] If the member used to read the contents of a union object is not the same as the member last used to store a value in the object, the appropriate part of the object representation of the value is reinterpreted as an object representation in the new type. This process is sometimes called this.|type punning
397) [6.5.2.4 Postfix increment and decrement operators] The result of this operator is the value of the operand. As a side effect, the value of the operand object is incremented.|postfix ++
398) [6.5.2.4 Postfix increment and decrement operators] The result of this operator is the value of the operand. As a side effect, the value of the operand object is decremented.|postfix --
399) [6.5.2.5 Compound literals] The type name of a compound literal shall specify a complete object type or an array of unknown size, but not this type.|VLA{VLA stands for variable length array.}|variable length array
400) [6.5.2.5 Compound literals] A postfix expression that consists of a parenthesized type name followed by a brace-enclosed list of initializers is called this.|compound literal
401) [6.5.2.5 Compound literals] If the type name specifies an array of unknown size, the size is determined by this, and the type of the compound literal is that of the completed array type.|initializer list
402) [6.5.2.5 Compound literals] If a compound literal occurs outside the body of a function, the object has this storage duration.|static
403) [6.5.3.1 Prefix increment and decrement operators] The value of the operand of this operator is incremented. The result is the new value of the operand after incrementation.|prefix ++
404) [6.5.3.1 Prefix increment and decrement operators] The value of the operand of this operator is decremented. The result is the new value of the operand after decrementation.|prefix --
405) [6.5.3.2 Address and indirection operators] The operand of this operator shall be either a function designator, the result of a [] or unary * operator, or an lvalue that designates an object that is not a bit-field and is not declared with the register storage-class specifier.|unary &|&
406) [6.5.3.2 Address and indirection operators] The operand of the unary * operator shall have this kind of type.|pointer
407) [6.5.3.2 Address and indirection operators] This operator yields the address of its operand.|unary &|&
408) [6.5.3.2 Address and indirection operators] The unary & operator yields this of its operand.|address
409) [6.5.3.2 Address and indirection operators] If the operand of the unary & operator has type ``type'', the result has this type.|pointer to type|pointer
410) [6.5.3.2 Address and indirection operators] If the operand of the unary & operator is the result of this operator, neither that operator nor the & operator is evaluated and the result is as if both were omitted, except that the constraints on the operators still apply and the result is not an lvalue.|unary *|*
411) [6.5.3.2 Address and indirection operators] The result of this operator is a pointer to the object or function designated by its operand.|unary &|&
412) [6.5.3.2 Address and indirection operators] This operator denotes indirection.|unary *|*
413) [6.5.3.2 Address and indirection operators] This is denoted by the unary * operator.|indirection
414) [6.5.3.2 Address and indirection operators] If the operand of the unary * operator has type ``pointer to type'', the result has this type.|type
415) [6.5.3.3 Unary arithmetic operators] The operand of the unary + or - operator shall have this kind of type.|arithmetic
416) [6.5.3.3 Unary arithmetic operators] The operand of the unary ~ operator shall have this kind of type.|integer
417) [6.5.3.3 Unary arithmetic operators] The operand of the unary ! operator shall have this kind of type.|scalar
418) [6.5.3.3 Unary arithmetic operators] If the type of the ~ operator is this kind of type, the expression ~E is equivalent to the maximum value representable in that type minus E.|unsigned
419) [6.5.3.4 The sizeof and _Alignof operators] This operator shall not be applied to an expression that has function type or an incomplete type, to the parenthesized name of such a type, or to an expression that designates a bit-field member.|sizeof|_Alignof
420) [6.5.3.4 The sizeof and _Alignof operators] If the type of the operand of sizeof is this kind of type, the operand is evaluated; otherwise, the operand is not evaluated and the result is an integer constant.|variable length array|VLA{VLA stands for variable length array.}
421) [6.5.3.4 The sizeof and _Alignof operators] If the type of the operand of sizeof is a variable length array type, the operand is evaluated; otherwise, the operand is not evaluated and the result is this.|integer constant
422) [6.5.3.4 The sizeof and _Alignof operators] When this operator is applied to an array type, the result is the alignment requirement of the element type.|_Alignof
423) [6.5.3.4 The sizeof and _Alignof operators] When the sizeof operator is applied to an operand that has type char, unsigned char, or signed char, (or a qualified version thereof) the result is this.|1|one
424) [6.5.3.4 The sizeof and _Alignof operators] When this operator is applied to an operand that has type char, unsigned char, or signed char, (or a qualified version thereof) the result is 1.|sizeof
425) [6.5.3.4 The sizeof and _Alignof operators] When this operator is applied to an operand that has array type, the result is the total number of bytes in the array. When applied to an operand that has structure or union type, the result is the total number of bytes in such an object, including internal and trailing padding.|sizeof
426) [6.5.3.4 The sizeof and _Alignof operators] When applied to a parameter declared to have array or function type, the sizeof operator yields the size of this type.|pointer
427) [6.5.3.4 The sizeof and _Alignof operators] When applied to a parameter declared to have array or function type, this operator yields the size of the adjusted (pointer) type.|sizeof
428) [6.5.3.4 The sizeof and _Alignof operators] When applied to a parameter declared to have this type, the sizeof operator yields the size of the adjusted (pointer) type.|array{Or function type, as well.}|function{Or array type, as well.}
429) [6.5.4 Cast operators] Conversions that involve pointers, except where permitted by the constraints of simple assignment, shall be specified by means of this kind of cast.|explicit
430) [6.5.4 Cast operators] A pointer type shall not be converted (as by cast) to this kind of type.|floating
431) [6.5.4 Cast operators] A floating type shall not be converted (as by cast) to this kind of type.|pointer
432) [6.5.4 Cast operators] Preceding an expression by a parenthesized type name converts the value of the expression to the named type. This construction is called this.|cast
433) [6.5.5 Multiplicative operators] Each of the operands of multiplicative operators shall have this kind of type.|arithmetic
434) [6.5.5 Multiplicative operators] The operands of the % operator shall have this kind of type.|integer
435) [6.5.5 Multiplicative operators] The result of this operator is the product of the operands.|binary *|*
436) [6.5.5 Multiplicative operators] The result of this operator is the quotient from the division of the first operand by the second.|binary /|/
437) [6.5.5 Multiplicative operators] The result of the / operator is this from the division of the first operand by the second.|quotient
438) [6.5.5 Multiplicative operators] The result of the % operator is this from the division of the first operand by the second.|remainder
439) [6.5.5 Multiplicative operators] The result of this operator is the remainder from the division of the first operand by the second.|binary %|%
440) [6.5.5 Multiplicative operators] When integers are divided, the result of the / operator is the algebraic quotient with this part discarded.|fractional{This is called ``truncation towards zero``.}
441) [6.5.6 Additive operators] For addition, either both operands shall have this type, or one operand shall be a pointer to a complete object type and the other shall have integer type.|arithmetic
442) [6.5.6 Additive operators] For addition, either both operands shall have arithmetic type, or one operand shall be a pointer to a complete object type and the other shall have this type.|integer
443) [6.5.6 Additive operators] When an expression that has integer type is added to or subtracted from a pointer, the result has the type of this operand.|pointer
444) [6.5.6 Additive operators] When this happens to two pointers, both shall point to elements of the same array object, or one past the last element of the array object; the result is the difference of the subscripts of the two array elements.|subtracted|subtraction
445) [6.5.7 Bitwise shift operators] Each of the operands for the bitwise shift operators shall have this kind of type.|integer
446) [6.5.7 Bitwise shift operators] If the value of the right operand of a bitwise shift operator is this or is greater than or equal to the width of the promoted left operand, the behavior is undefined.|negative
447) [6.5.7 Bitwise shift operators] The result of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are filled with these.|zeros|zero|0
448) [6.5.7 Bitwise shift operators] The result of E1 << E2 is E1 left-shifted E2 bit positions. If E1 has a signed type and a negative value, the resulting value is this.|implementation-defined
449) [6.5.8 Relational operators] When two pointers are compared, the result depends on the relative locations in this of the objects pointed to.|address space
450) [6.5.8 Relational operators] If two pointers to object types both point to the same object, or both point one past the last element of the same array object, they compare as this.|equal
451) [6.5.8 Relational operators] If the expression P points to an element of an array object and the expression Q points to the last element of the same array object, the pointer expression Q+1 compares as this to P.|greater than|>|greater
452) [6.5.8 Relational operators] Each of the operators < (less than), > (greater than), <= (less than or equal to), and >= (greater than or equal to) shall yield 1 if the specified relation is true and 0 if it is false. The result has this type.|int
453) [6.5.9 Equality operators] Two pointers compare as this if one is a pointer to one past the end of one array object and the other is a pointer to the start of a different array object that happens to immediately follow the first array object in the address space.|equal
454) [6.5.13 Logical AND operator] Each of the operands of the && operator shall have this kind of type.|scalar
455) [6.5.13 Logical AND operator] The && operator shall yield 1 if both of its operands compare as this to 0; otherwise, it yields 0.|unequal|not equal|!=
456) [6.5.13 Logical AND operator] If the first operand of the && operator compares as this to 0, the second operand is not evaluated.|equal
457) [6.5.13 Logical AND operator] If the first operand of this operator compares as equal to 0, the second operand is not evaluated.|&&
458) [6.5.14 Logical OR operator] Each of the operands of the \|\| operator shall have this type.|scalar
459) [6.5.14 Logical OR operator] The \|\| operator shall yield 1 if either of its operands compare as this to 0; otherwise, it yields 0.|unequal|not equal|!=
460) [6.5.14 Logical OR operator] If the first operand of the \|\| operator compares as this to 0, the second operand is not evaluated.|unequal|not equal|!=
461) [6.5.14 Logical OR operator] If the first operand of this operator compares unequal to 0, the second operand is not evaluated.|\|\|
462) [6.5.15 Conditional operator] The first operand of the ?: operator shall have this kind of type.|scalar
463) [6.5.15 Conditional operator] The ?: operator is called this.|conditional operator|conditional
464) [6.5.15 Conditional operator] If both the second and third operands of the ?: operator have this type, the result has void type.|void
465) [6.5.16 Assignment operators] An assignment operator shall have this as its left operand.|modifiable lvalue
466) [6.5.16 Assignment operators] An assignment expression has the value of the left operand after the assignment, but is not this.|lvalue
467) [6.5.16.2 Compound assignment] An assignment of the form E1 op = E2 is equivalent to the simple assignment expression E1 = E1 op (E2) and is called this.|compound assignment
468) [6.6 Constant expressions] This kind of expression shall not contain assignment, increment, decrement, function-call, or comma operators, except when they are contained within a subexpression that is not evaluated.|constant expression|constant
469) [6.6 Constant expressions] This kind of expression shall have integer type and shall only have operands that are integer constants, enumeration constants, character constants, sizeof expressions whose results are integer constants, _Alignof expressions, and floating constants that are the immediate operands of casts.|integer constant expression{Sometimes referred to as ICE.}|integer constant|ICE{ICE stands for integer constant expression.}
470) [6.6 Constant expressions] Cast operators in this kind of expression shall only convert arithmetic types to integer types, except as part of an operand to the sizeof or _Alignof operator.|integer constant expression{Sometimes referred to as ICE.}|integer constant|ICE{ICE stands for integer constant expression.}
471) [6.6 Constant expressions] This kind of expression is required in a number of contexts such as the size of a bit-field member of a structure, the value of an enumeration constant, and the size of a non-variable length array.|integer constant expression{Sometimes referred to as ICE.}|integer constant|ICE{ICE stands for integer constant expression.}
472) [6.6 Constant expressions] This kind of expression shall have arithmetic type and shall only have operands that are integer constants, floating constants, enumeration constants, character constants, sizeof expressions whose results are integer constants, and _Alignof expressions.|arithmetic constant expression{Sometimes referred to as ACE.}|arithmetic constant|ACE{ACE stands for arithmetic constant expression.}
473) [6.6 Constant expressions] Cast operators in this kind of expression shall only convert arithmetic types to arithmetic types, except as part of an operand to a sizeof or _Alignof operator.|arithmetic constant expression{Sometimes referred to as ACE.}|arithmetic constant|ACE{ACE stands for arithmetic constant expression.}
474) [6.6 Constant expressions] This kind of constant is a null pointer, a pointer to an lvalue designating an object of static storage duration, or a pointer to a function designator.|address constant|address
475) [6.7 Declarations] A declaration other than this kind of declaration shall declare at least a declarator (other than the parameters of a function or the members of a structure or union), a tag, or the members of an enumeration.|static_assert
476) [6.7 Declarations] All declarations in the same scope that refer to the same object or function shall specify this kind of type.|compatible
477) [6.7 Declarations] This is a declaration for an identifier that: for an object, causes storage to be reserved for that object; for a function, includes the function body; for an enumeration constant, is the (only) declaration of the identifier; for a typedef name, is the first (or only) declaration of the identifier.|definition
478) [6.7 Declarations] If an identifier for an object is declared with this linkage, the type for the object shall be complete by the end of its declarator, or by the end of its init-declarator if it has an initializer; in the case of function parameters (including in prototypes), it is the adjusted type that is required to be complete.|no linkage|none
479) [6.7.1 Storage-class specifiers] In the declaration of an object with block scope, if the declaration specifiers include this storage-class specifier, they shall also include either static or extern.|_Thread_local
480) [6.7.1 Storage-class specifiers] If this storage-class specifier appears in any declaration of an object, it shall be present in every declaration of that object.|_Thread_local
481) [6.7.1 Storage-class specifiers] This storage-class specifier shall not appear in the declaration specifiers of a function declaration.|_Thread_local
482) [6.7.1 Storage-class specifiers] This specifier is called a ``storage-class specifier'' for syntactic convenience only.|typedef
483) [6.7.1 Storage-class specifiers] A declaration of an identifier for an object with this storage-class specifier suggests that access to the object be as fast as possible.|register
484) [6.7.1 Storage-class specifiers] The declaration of an identifier for a function that has block scope shall have no explicit storage-class specifier other than this.|extern
485) [6.7.1 Storage-class specifiers] If an aggregate or union object is declared with a storage-class specifier other than this, the properties resulting from the storage-class specifier, except with respect to linkage, also apply to the members of the object, and so on recursively for any aggregate or union member objects.|typedef{Trick question! typedef is called a storage-class specifier for syntactic convenience only.}
486) [6.7.2 Type specifiers] This type specifier shall not be used if the implementation does not support complex types.|_Complex
487) [6.7.2.1 Structure and union specifiers] A struct-declaration that does not declare an anonymous structure or anonymous union shall contain this.|named member
488) [6.7.2.1 Structure and union specifiers] The last member of a structure with more than one named member may have incomplete array type; it is called this.|flexible array member{Sometimes also called a FAM.}|FAM{FAM stands for flexible array member.}
489) [6.7.2.1 Structure and union specifiers] A structure containing this shall not be a member of a structure or an element of an array.|flexible array member{Sometimes also called a FAM.}|FAM{FAM stands for flexible array member.}
490) [6.7.2.1 Structure and union specifiers] The expression that specifies the width of a bit-field shall be this kind of expression.|integer constant expression{Sometimes referred to as ICE.}|integer constant|ICE{ICE stands for integer constant expression.}
491) [6.7.2.1 Structure and union specifiers] A structure or union may have a member declared to consist of a specified number of bits. Such a member is called this.|bit-field
492) [6.7.2.1 Structure and union specifiers] If enough space remains, a bit-field that immediately follows another bit-field in a structure shall be packed into adjacent bits of this.|same unit
493) [6.7.2.1 Structure and union specifiers] If insufficient space remains, whether a bit-field that does not fit is put into the next unit or overlaps adjacent units is this.|implementation-defined
494) [6.7.2.1 Structure and union specifiers] This structure member is useful for padding to conform to externally imposed layouts.|unnamed bit-field
495) [6.7.2.1 Structure and union specifiers] An unnamed bit-field structure member is useful for this to conform to externally imposed layouts.|padding
496) [6.7.2.1 Structure and union specifiers] An unnamed member whose type specifier is a structure specifier with no tag is called this.|anonymous structure
497) [6.7.2.1 Structure and union specifiers] An unnamed member whose type specifier is a union specifier with no tag is called this.|anonymous union
498) [6.7.2.1 Structure and union specifiers] A pointer to this object, suitably converted, points to its initial member (or if that member is a bit-field, then to the unit in which it resides), and vice versa.|structure|struct
499) [6.7.2.1 Structure and union specifiers] A pointer to this object, suitably converted, points to each of its members (or if a member is a bit-field, then to the unit in which it resides), and vice versa.|union
500) [6.7.2.1 Structure and union specifiers] There may be unnamed padding within a structure object, but not at this location.|beginning
501) [6.7.2.1 Structure and union specifiers] If this member of a structure would have no elements, it behaves as if it had one element but the behavior is undefined if any attempt is made to access that element or to generate a pointer one past it.|flexible array member{Sometimes also called a FAM.}|FAM{FAM stands for flexible array member.}
502) [6.7.2.2 Enumeration specifiers] The expression that defines the value of an enumeration constant shall be an integer constant expression that has a value representable as this type.|int
503) [6.7.2.2 Enumeration specifiers] The expression that defines the value of an enumeration constant shall be this kind of expression that has a value representable as an int.|integer constant expression{Sometimes referred to as ICE.}|integer constant|ICE{ICE stands for integer constant expression.}
504) [6.7.2.2 Enumeration specifiers] If the first enumerator has no =, the value of its enumeration constant is this value.|zero|0
505) [6.7.2.3 Tags] This kind of type may only by used when the size of an object of that type is not needed.|incomplete
506) [6.7.2.4 Atomic type specifiers] Atomic type specifiers shall not be used if the implementation does not support this kind of types.|atomic{That was kind of obvious, wasn't it?}
507) [6.7.2.4 Atomic type specifiers] If the _Atomic keyword is immediately followed by this, it is interpreted as a type specifier (with a type name), not as a type qualifier.|left parenthesis
508) [6.7.3 Type qualifiers] Types other than pointer types whose referenced type is an object type shall not be qualified with this type qualifier.|restrict
509) [6.7.3 Type qualifiers] The type modified by this type qualifier shall not be an array type or a function type.|_Atomic
510) [6.7.3 Type qualifiers] If the same qualifier appears more than once in the same specifier-qualifier-list, either directly or via one or more typedefs, the behavior is the same as if it appeared this many times.|1|one|once
511) [6.7.3 Type qualifiers] If other qualifiers appear along with this qualifier in a specifier-qualifier-list, the resulting type is the so-qualified atomic type.|_Atomic
512) [6.7.3 Type qualifiers] If an attempt is made to modify an object defined with a const-qualified type through use of an lvalue with non-const-qualified type, the behavior is this.|undefined
513) [6.7.3 Type qualifiers] If an attempt is made to refer to an object defined with a volatile-qualified type through use of an lvalue with non-volatile-qualified type, the behavior is this.|undefined
514) [6.7.3 Type qualifiers] What constitutes an access to an object that has volatile-qualified type is this.|implementation-defined
515) [6.7.3 Type qualifiers] What constitutes an access to an object that has this qualified type is implementation-defined.|volatile
516) [6.7.3 Type qualifiers] Actions on objects declared with this type qualifier shall not be ``optimized out'' by an implementation or reordered except as permitted by the rules for evaluating expressions.|volatile
517) [6.7.3 Type qualifiers] An object that is accessed through a pointer qualified with this type qualifier has a special association with that pointer. This association requires that all accesses to that object use, directly or indirectly, the value of that particular pointer.|restrict{The intended use of the restrict qualifier is to promote optimization.}
518) [6.7.3 Type qualifiers] If the specification of an array type includes any type qualifiers, this type is so-qualified, not the array type.|element type|element
519) [6.7.3 Type qualifiers] If the specification of a function type includes any type qualifiers, the behavior is this.|undefined
520) [6.7.3.1 Formal definition of restrict] A translator is free to ignore any or all aliasing implications of uses of this type qualifier.|restrict
521) [6.7.4 Function specifiers] Function specifiers shall be used only in the declaration of an identifier for this.|function{That was kind of obvious, wasn't it?}
522) [6.7.4 Function specifiers] In a hosted environment, no function specifier(s) shall appear in a declaration of this function.|main
523) [6.7.4 Function specifiers] A function specifier may appear more than once; the behavior is the same as if it appeared this many times.|1|one|once
524) [6.7.4 Function specifiers] A function declared with this function specifier is an inline function.|inline{That was kind of obvious, wasn't it?}
525) [6.7.4 Function specifiers] If a function with external linkage is declared with this function specifier, then it shall also be defined in the same translation unit.|inline
526) [6.7.4 Function specifiers] A function declared with this function specifier shall not return to its caller.|_Noreturn
527) [6.7.5 Alignment specifier] This attribute shall not be specified in a declaration of a typedef, or a bit-field, or a function, or a parameter, or an object declared with the register storage-class specifier.|alignment
528) [6.7.5 Alignment specifier] The constant expression to the _Alignas specifier shall be this kind of expression.|integer constant expression{Sometimes referred to as ICE.}|integer constant|ICE{ICE stands for integer constant expression.}
529) [6.7.5 Alignment specifier] The expression to the _Alignas specifier shall evaluate to a valid fundamental alignment, or to a valid extended alignment supported by the implementation in the context in which it appears, or to this.|0|zero
530) [6.7.5 Alignment specifier] When multiple alignment specifiers occur in a declaration, the effective alignment requirement is this specified alignment.|strictest
531) [6.7.5 Alignment specifier] If the definition of an object has an alignment specifier, any other declaration of that object shall either specify this kind of alignment or have no alignment specifier.|equivalent
532) [6.7.5 Alignment specifier] If declarations of an object in different translation units have different alignment specifiers, the behavior is this.|undefined
533) [6.7.6 Declarators] This is a declarator that is not part of another declarator.|full declarator|full
534) [6.7.6 Declarators] If, in the nested sequence of declarators in a full declarator, there is a declarator specifying a variable length array type, the type specified by the full declarator is said to be this.|variably modified
535) [6.7.6.1 Pointer declarators] For two pointer types to be this, both shall be identically qualified and both shall be pointers to compatible types.|compatible
536) [6.7.6.2 Array declarators] The element type of an array shall not be this type.|function type|function
537) [6.7.6.2 Array declarators] If an identifier is declared to be an object with static or thread storage duration, it shall not have this kind of type.|variable length array|VLA{VLA stands for variable length array.}
538) [6.7.6.2 Array declarators] When several ``array of'' specifications are adjacent, this kind of array is declared.|multidimensional
539) [6.7.6.2 Array declarators] If the size is not present, the array type is this kind of type.|incomplete type|incomplete
540) [6.7.6.2 Array declarators] If the size is this instead of being an expression, the array type is a variable length array type of unspecified size, which can only be used in declarations or type names with function prototype scope; such arrays are nonetheless complete types.|*
541) [6.7.6.2 Array declarators] If the size of an array is not an integer constant expression and the element type does not have a known constant size, but is not incomplete, the array type is this kind of type.|variable length array|VLA{VLA stands for variable length array.}
542) [6.7.6.2 Array declarators] For two array types to be this, both shall have compatible element types, and if both size specifiers are present, and are integer constant expressions, then both size specifiers shall have the same constant value.|compatible
543) [6.7.6.2 Array declarators] If the two array types are used in a context which requires them to be compatible, it is undefined behavior if the two size specifiers evaluate to compare as this.|unequal|not equal|!=
544) [6.7.6.3 Function declarators (including prototypes)] A function declarator shall not specify a return type that is this kind of type.|function type{Also, array type.}|array type{Also, function type.}|function{Also, array type.}|array{Also, function type.}
545) [6.7.6.3 Function declarators (including prototypes)] The only storage-class specifier that shall occur in a parameter declaration is this.|register
546) [6.7.6.3 Function declarators (including prototypes)] An identifier list in a function declarator that is not part of a definition of that function shall be this.|empty
547) [6.7.6.3 Function declarators (including prototypes)] This specifies the types of, and may declare identifiers for, the parameters of the function.|parameter type list{Also known as a prototype.}|prototype{Also known as a parameter type list.}
548) [6.7.6.3 Function declarators (including prototypes)] A declaration of a parameter as ``array of type'' shall be adjusted to ``qualified pointer to type'', where the type qualifiers (if any) are those specified within these of the array type derivation.|square brackets|brackets|[]
549) [6.7.6.3 Function declarators (including prototypes)] If this keyword appears within the [ and ] of the array type derivation, then for each call to the function, the value of the corresponding actual argument shall provide access to the first element of an array with at least as many elements as specified by the size expression.|static
550) [6.7.6.3 Function declarators (including prototypes)] A declaration of a parameter as ``function returning type'' shall be adjusted to this type.|pointer to function returning type|pointer to function|function pointer
551) [6.7.6.3 Function declarators (including prototypes)] If the parameter type list terminates with this, no information about the number or types of the parameters after the comma is supplied.|ellipsis{These parameters are known as variable arguments.}|...{These parameters are known as variable arguments.}
552) [6.7.6.3 Function declarators (including prototypes)] The macros defined in the <stdarg.h> header may be used to access arguments that correspond to this in a parameter type list.|ellipsis|...
553) [6.7.6.3 Function declarators (including prototypes)] The macros defined in this header may be used to access arguments that correspond to the ellipsis in a parameter type list.|stdarg.h
554) [6.7.6.3 Function declarators (including prototypes)] If, in a parameter declaration, an identifier can be treated either as a typedef name or as a parameter name, it shall be taken as this.|typedef|typedef name
555) [6.7.6.3 Function declarators (including prototypes)] If the function declarator is not part of a definition of that function, parameters may have incomplete type and may use this notation in their sequences of declarator specifiers to specify variable length array types.|[*]
556) [6.7.6.3 Function declarators (including prototypes)] This declares only the identifiers of the parameters of the function.|identifier list
557) [6.7.6.3 Function declarators (including prototypes)] An empty list in a function declarator that is part of a definition of that function specifies that the function has none of these.|parameters
558) [6.7.6.3 Function declarators (including prototypes)] For two function types to be this, both shall specify compatible return types. Moreover, the parameter type lists, if both are present, shall agree in the number of parameters and in use of the ellipsis terminator; corresponding parameters shall have compatible types.|compatible
559) [6.7.6.3 Function declarators (including prototypes)] For two of these types to be compatible, both shall specify compatible return types. Moreover, the parameter type lists, if both are present, shall agree in the number of parameters and in use of the ellipsis terminator; corresponding parameters shall have compatible types.|function
560) [6.7.6.3 Function declarators (including prototypes)] If one function type has this and the other type is specified by a function definition that contains a (possibly empty) identifier list, both shall agree in the number of parameters.|parameter type list{Also known as a prototype.}|prototype{Also known as a parameter type list.}
561) [6.7.6.3 Function declarators (including prototypes)] When determining the compatability of two function types, if both function types are this, parameter types are not compared.|old style{Also known as K&R style.}|K&R style{Also known as old style.}
562) [6.7.8 Type definitions] If a typedef name specifies a variably modified type then it shall have this scope.|block
563) [6.7.9 Initialization] No initializer shall attempt to provide this for an object not contained within the entity being initialized.|value
564) [6.7.9 Initialization] All the expressions in an initializer for an object that has static or thread storage duration shall be these.|constant expressions{It could also be a string literal.}|string literals{It could also be a constant expression.}
565) [6.7.9 Initialization] If the declaration of an identifier has this scope, and the identifier has external or internal linkage, the declaration shall have no initializer for the identifier.|block
566) [6.7.9 Initialization] If a designated initializer has the form [ constant-expression ] then the current object shall have this kind of type.|array
567) [6.7.9 Initialization] If a designated initializer has the form . identifer then the current object shall have this kind of type.|structure{It could also have union type.}|struct{It could also have union type.}|union{It could also have structure type.}
568) [6.7.9 Initialization] If an object that has automatic storage duration is not initialized explicitly, its value is this.|indeterminate
569) [6.7.9 Initialization] If an object that has this storage duration is not initialized explicitly, then: if it has pointer type, it is initialized to a null pointer; if it has arithmetic type, it is initialized to zero; if it is an aggregate, every member is initialized according to the aforementioned rules; if it is a union, the first named member is initialized according to the aforementioned rules.|static{Thread storage duration is also applicable.}|thread{Static storage duration is also applicable.}
570) [6.7.9 Initialization] The initializer for a scalar shall be a single expression, optionally enclosed in these.|braces
571) [6.7.9 Initialization] When none of these are present, subobjects are initialized in order according to the type of the current object: array elements in increasing subscript order, structure members in declaration order, and the first named member of a union.|designations
572) [6.7.9 Initialization] The initialization shall occur in this order, each initializer provided for a particular subobject overriding any previously listed initializer for the same subobject.|initializer list order|initializer list
573) [6.7.9 Initialization] The initialization shall occur in initializer list order, each initializer provided for a particular subobject overriding any previously listed initializer for the same subobject; all subobjects that are not initialized explicitly shall be initialized implicitly the same as objects that have this storage duration.|static
574) [6.7.9 Initialization] If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate, or fewer characters in a string literal used to initialize an array of known size than there are elements in the array, the remainder of the aggregate shall be initialized implicitly the same as objects that have this storage duration.|static
575) [6.7.9 Initialization] If an array of unknown size is initialized, its size is determined by the largest indexed element with this.|explicit initializer|initializer
576) [6.7.10 Static assertions] If the value of the constant expression of a static assertion compares as this to 0, the declaration has no effect.|unequal|not equal|!=
577) [6.8 Statements and blocks] This specifies an action to be performed.|statement
578) [6.8 Statements and blocks] This allows a set of declarations and statements to be grouped into one syntactic unit.|block
579) [6.8 Statements and blocks] This is an expression that is not part of another expression or of a declarator.|full expression|full
580) [6.8.1 Labeled statements] A case or default label shall appear only in this statement.|switch
581) [6.8.1 Labeled statements] Label names shall be unique within this.|function
582) [6.8.2 Compound statement] A block is also known as this.|compound statement
583) [6.8.2 Compound statement] A compound statement is also known as this.|block
584) [6.8.3 Expression and null statements] The expression in an expression statement is evaluated as this kind of expression for its side effect.|void expression|void
585) [6.8.3 Expression and null statements] The expression in an expression statement is evaluated as a void expression for this.|side effect
586) [6.8.3 Expression and null statements] A statement consisting of just a semicolon performs no operations; it is known as this.|null statement
587) [6.8.3 Expression and null statements] If a function call is evaluated as an expression statement for only this, the discarding of its value may be made explicit by converting the expression to a void expression by means of a cast.|side effect
588) [6.8.3 Expression and null statements] If a function call is evaluated as an expression statement for its side effects only, the discarding of its value may be made explicit by converting the expression to this kind of expression by means of a cast.|void expression|void
589) [6.8.4 Selection statements] This kind of statement selects among a set of statements depending on the value of a controlling expression (e.g., if and switch).|selection statement|selection
590) [6.8.4.1 The if statement] The controlling expression of an if statement shall have this type.|scalar
591) [6.8.4.1 The if statement] If the first substatement of an if statement is reached via this, the second substatement is not executed.|label
592) [6.8.4.2 The switch statement] The controlling expression of a switch statement shall have this type.|integer
593) [6.8.4.2 The switch statement] The expression of each case label shall be this kind of expression and no two of the case constant expressions in the same switch statement shall have the same value after conversion.|integer constant expression{Sometimes referred to as ICE.}|integer constant|ICE{ICE stands for integer constant expression.}
594) [6.8.4.2 The switch statement] This statement causes control to jump to, into, or past the statement that is its body, depending on the value of a controlling expression, and on the presence of a default label and the values of any case labels on or in its body.|switch
595) [6.8.4.2 The switch statement] If a value matches that of the promoted controlling expression of a switch statement, control jumps to the statement following the matched this.|case label|case
596) [6.8.4.2 The switch statement] If no case constant expression matches its controlling expression and there is no default label, then this part of the switch body is executed.|none
597) [6.8.5 Iteration statements] A statement that causes a statement, called the loop body, to be executed repeatedly until the controlling expression compares equal to 0 is called this (e.g., for and while).|iteration statement|iteration
598) [6.8.5 Iteration statements] The controlling expression of an iteration statement shall have this type.|scalar
599) [6.8.5 Iteration statements] An omitted optional controlling expression for an iteration statement is replaced by this.|nonzero constant
600) [6.8.6.1 The goto statement] The identifier in a goto statement shall refer to this located somewhere in the enclosing function.|label
601) [6.8.6.1 The goto statement] A goto statement shall not jump from outside the scope of an identifier having this kind of type to inside the scope of that identifier.|variably modified
602) [6.8.6.1 The goto statement] A goto statement is not allowed to jump past any declarations of objects with this kind of type. A jump within the scope, however, is permitted.|variably modified
603) [6.8.6.2 The continue statement] This statement shall appear only in or as a loop body.|continue
604) [6.8.6.2 The continue statement] A continue statement shall appear only in or as this kind of body.|loop
605) [6.8.6.2 The continue statement] This statement causes a jump to the loop-continuation portion of the smallest enclosing iteration statement; that is, to the end of the loop body.|continue
606) [6.8.6.3 The break statement] This statement shall appear only in or as a switch body or loop body.|break
607) [6.8.6.4 The return statement] A return statement with an expression shall only appear in a function whose return type is this.|not void
608) [6.8.6.4 The return statement] A return statement without an expression shall only appear in a function whose return type is this.|void
609) [6.8.6.4 The return statement] If the expression of the return statement has a type different from the return type of the function in which it appears, the value is converted as if by this to an object having the return type of the function.|assignment
610) [6.9 External definitions] There shall be no more than this many external definitions for each identifier declared with internal linkage in a translation unit.|one|1
611) [6.9 External definitions] This is an external declaration that is also a definition of a function (other than an inline definition) or an object.|external definition
612) [6.9.1 Function definitions] If the declarator of a function includes this, the declaration of each parameter shall include an identifier, except for the special case of a parameter list consisting of a single parameter of type void, in which case there shall not be an identifier.|parameter type list{Also known as a prototype.}|prototype{Also known as a parameter type list.}
613) [6.9.1 Function definitions] If the declarator of a function includes a parameter type list, the declaration of each parameter shall include an identifier, except for the special case of a parameter list consisting of this single parameter, in which case there shall not be an identifier.|void
614) [6.9.1 Function definitions] If the declarator of a function includes a parameter type list, the list also specifies the types of all the parameters; such a declarator also serves as this for later calls to the same function in the same translation unit.|function prototype|prototype
615) [6.9.1 Function definitions] If a function declarator includes this, the types of the parameters shall be declared in a following declaration list.|identifier list{Such a function declaration is also known as K&R style or old style.}
616) [6.9.1 Function definitions] If a function that accepts a variable number of arguments is defined without a parameter type list that ends with this, the behavior is undefined.|ellipsis|...
617) [6.9.1 Function definitions] If the } that terminates a function is reached, and the value of the function call is used by the caller, the behavior is this.|undefined
618) [6.9.2 External object definitions] If the declaration of an identifier for an object has this scope and an initializer, the declaration is an external definition for the identifier.|file
619) [6.9.2 External object definitions] If at the end of the translation unit containing int i[]; at file scope, the array i still has incomplete type, the implicit initializer causes it to have one element, which is set to this on program startup.|zero|0
620) [6.10 Preprocessing directives] A sequence of preprocessing tokens whose first token in the sequence is a # preprocessing token that is either the first character in the source file (optionally after white space containing no new-line characters) or that follows white space containing at least one new-line character is called this.|preprocessing directive
621) [6.10 Preprocessing directives] This character ends the preprocessing directive even if it occurs within what would otherwise be an invocation of a function-like macro.|new-line|newline|\n
622) [6.10 Preprocessing directives] The only white-space characters that shall appear between preprocessing tokens within a preprocessing directive (from just after the introducing # preprocessing token through just before the terminating new-line character) are these (name both, separated by "and").|space and horizontal-tab|horizontal-tab and space
623) [6.10 Preprocessing directives] The implementation can process and skip sections of source files conditionally, include other source files, and replace macros. These capabilities are called this, because conceptually they occur before translation of the resulting translation unit.|preprocessing
624) [6.10.1 Conditional inclusion] Prior to evaluation, macro invocations in the list of preprocessing tokens that will become the controlling constant expression has this happen to them, except for those macro names modified by the defined unary operator), just as in normal text.|replaced|replacement
625) [6.10.1 Conditional inclusion] If a conditional inclusion's condition evaluates to false (zero), the group that it controls has this happen to it.|skipped|ignored
626) [6.10.1 Conditional inclusion] If none of the conditions of a conditional inclusion evaluates to true, and there is this preprocessing directive, the group controlled by that directive is processed.|#else
627) [6.10.1 Conditional inclusion] As indicated by the syntax, a preprocessing token shall not follow a #else or #endif directive before this character which terminates the directive.|new-line|newline|\n
628) [6.10.2 Source file inclusion] This preprocessing directive shall identify a header or source file that can be processed by the implementation.|#include
629) [6.10.2 Source file inclusion] The method by which a sequence of preprocessing tokens between a < and a > preprocessing token pair or a pair of " characters is combined into a single header name preprocessing token is this kind of behavior.|implementation-defined
630) [6.10.3 Macro replacement] An identifier currently defined as this kind of macro shall not be redefined by another #define preprocessing directive unless the second definition is also this kind of macro definition and the two replacement lists are identical.|object-like macro|object-like
631) [6.10.3 Macro replacement] Likewise, an identifier currently defined as this kind of macro shall not be redefined by another #define preprocessing directive unless the second definition is also this kind of macro definition that has the same number and spelling of parameters, and the two replacement lists are identical.|function-like macro|function-like
632) [6.10.3 Macro replacement] This shall be between the identifier and the replacement list in the definition of an object-like macro.|white-space|whitespace
633) [6.10.3 Macro replacement] If the identifier-list in a macro definition does not end with this, the number of arguments in an invocation of a function-like macro shall equal the number of parameters in the macro definition. Otherwise, there shall be more arguments in the invocation than there are parameters in the macro definition.|ellipsis|...
634) [6.10.3 Macro replacement] This identifier shall occur only in the replacement-list of a function-like macro that uses the ellipsis notation in the parameters.|__VA_ARGS__
635) [6.10.3 Macro replacement] The identifier __VA_ARGS__ shall occur only in the replacement-list of a function-like macro that uses this notation in the parameters.|ellipsis|...
636) [6.10.3 Macro replacement] A parameter identifier in this kind of macro shall be uniquely declared within its scope.|function-like macro|function-like
637) [6.10.3 Macro replacement] The identifier immediately following the #define directive is called this.|macro|macro name
638) [6.10.3 Macro replacement] If a # preprocessing token, followed by an identifier, occurs lexically at the point at which a preprocessing directive could begin, the identifier is not subject to this.|macro replacement|replacement|macro expansion|expansion
639) [6.10.3 Macro replacement] A preprocessing directive of the form `# define identifier replacement-list new-line` defines this kind of macro that causes each subsequent instance of the macro name to be replaced by the replacement list of preprocessing tokens that constitute the remainder of the directive.|object-like macro|object-like
640) [6.10.3 Macro replacement] A preprocessing directive of the form `# define identifier lparen identifier-listopt ) replacement-list new-line` defines this kind of macro with parameters, who use is similar syntactically to a function call.|function-like macro|function-like
641) [6.10.3 Macro replacement] If this is in the identifier-list in a macro definition, then the trailing arguments, including any separating comma preprocessing tokens, are merged to form a single item: the variable arguments.|...|ellipsis
642) [6.10.3 Macro replacement] If there is a ... in the identifier-list in a macro definition, then the trailing arguments, including any separating comma preprocessing tokens, are merged to form a single item called this.|variable arguments
643) [6.10.3.1 Argument substitution] If this identifier occurs in the macro replacement list it shall be treated as if it were a parameter, and the variable arguments shall form the preprocessing tokens used to replace it.|__VA_ARGS__
644) [6.10.3.2 The # operator] If the replacement that results from a # stringification is not a valid this, the behavior is undefined.|character string literal|string literal
645) [6.10.3.3 The ## operator] If, in the replacement list of a function-like macro, an argument consists of no preprocessing tokens, the parameter is replaced by this preprocessing token.|placemarker{Placemarker preprocessing tokens do not appear in the syntax because they are temporary entities that exist only within translation phase 4.}
646) [6.10.3.3 The ## operator] These preprocessing tokens do not appear in the syntax because they are temporary entities that exist only within translation phase 4.|placemarker
647) [6.10.3.3 The ## operator] Placemarker preprocessing tokens do not appear in the syntax because they are temporary entities that exist only within this translation phase.|4|four
648) [6.10.3.5 Scope of macro definitions] A macro definition lasts (independent of block structure) until this preprocessing directive that corresponds to it is encountered or (if none is encountered) until the end of the preprocessing translation unit.|#undef
649) [6.10.3.5 Scope of macro definitions] A macro definition lasts (independent of block structure) until a corresponding #undef directive is encountered or (if none is encountered) until the end of this.|preprocessing translation unit
650) [6.10.4 Line control] The string literal of a #line directive, if present, shall be this kind of string literal.|character string literal|character
651) [6.10.4 Line control] The digit sequence of a #line directive shall not specify zero, nor a number greater than this.|2147483647
652) [6.10.6 Pragma directive] An implementation is not required to perform this in pragmas, but it is permitted except for in standard pragmas (where STDC immediately follows pragma).|macro replacement|replacement
653) [6.10.6 Pragma directive] If this preprocessing token does immediately follow pragma in the directive (prior to any macro replacement), then no macro replacement is performed on the directive.|STDC
654) [6.10.8 Predefined macro names] None of these macro names, nor the identifier defined, shall be the subject of a #define or a #undef preprocessing directive.|predefined macro names|predefined macros|predefined
655) [6.10.8 Predefined macro names] Any predefined macro names shall begin with this character followed by an uppercase letter or a second such character.|underscore|_
656) [6.10.8 Predefined macro names] The implementation shall not predefine this macro, nor shall it define it in any standard header.|__cplusplus
657) [6.10.8.1 Mandatory macros] This predefined macro is the date of translation of the preprocessing translation unit.|__DATE__{If the date of translation is not available, an implementation-defined valid date shall be supplied.}
658) [6.10.8.1 Mandatory macros] This predefined macro is the presumed name of the current source file (a character string literal).|__FILE__
659) [6.10.8.1 Mandatory macros] This predefined macro is the presumed line number (within the current source file) of the current source line (an integer constant).|__LINE__
660) [6.10.8.1 Mandatory macros] This predefined macro is the integer constant 1, intended to indicate a conforming implementation.|__STDC__
661) [6.10.8.1 Mandatory macros] This predefined macro is the integer constant 1 if the implementation is a hosted implementation or the integer constant 0 if it is not.|__STDC_HOSTED__
662) [6.10.8.1 Mandatory macros] This predefined macro is an integer constant of type long that is increased with each revision of this International Standard.|__STDC_VERSION__
663) [6.10.8.1 Mandatory macros] This predefined macro is the time of translation of the preprocessing translation unit.|__TIME__{If the time of translation is not available, an implementation-defined valid time shall be supplied.}
664) [6.10.8.2 Environment macros] If this predefined macro is defined, then every character in the Unicode required set, when stored in an object of type wchar_t, has the same value as the short identifier of that character.|__STDC_ISO_10646__
665) [6.10.8.2 Environment macros] This conditionally predefined macro is the integer constant 1 if, in the encoding for wchar_t, a member of the basic character set need not have a code value equal to its value when used as the lone character in an integer character constant.|__STDC_MB_MIGHT_NEQ_WC__
666) [6.10.8.2 Environment macros] This conditionally predefined macro is the integer constant 1, intended to indicate that values of type char16_t are UTF-16 encoded. If some other encoding is used, the macro shall not be defined and the actual encoding used is implementation-defined.|__STDC_UTF_16__
667) [6.10.8.2 Environment macros] This conditionally predefined macro is the integer constant 1, intended to indicate that values of type char32_t are UTF-32 encoded. If some other encoding is used, the macro shall not be defined and the actual encoding used is implementation-defined.|__STDC_UTF_32__
668) [6.10.8.3 Conditional feature macros] This conditionally predefined macro is the integer constant 1, intended to indicate conformance to the specifications in annex L (Analyzability).|__STDC_ANALYZABLE__
669) [6.10.8.3 Conditional feature macros] This conditionally predefined macro is the integer constant 1, intended to indicate conformance to the specifications in annex F (IEC 60559 floating-point arithmetic).|__STDC_IEC_559__
670) [6.10.8.3 Conditional feature macros] This conditionally predefined macro is the integer constant 1, intended to indicate adherence to the specifications in annex G (IEC 60559 compatible complex arithmetic).|__STDC_IEC_559_COMPLEX__
671) [6.10.8.3 Conditional feature macros] This conditionally predefined macro is the integer constant 201ymmL, intended to indicate support for the extensions defined in annex K (Bounds-checking interfaces).|__STDC_LIB_EXT1__
672) [6.10.8.3 Conditional feature macros] This conditionally predefined macro is the integer constant 1, intended to indicate that the implementation does not support atomic types (including the _Atomic type qualifier) and the <stdatomic.h> header.|__STDC_NO_ATOMICS__
673) [6.10.8.3 Conditional feature macros] This conditionally predefined macro is the integer constant 1, intended to indicate that the implementation does not support complex types or the <complex.h> header.|__STDC_NO_COMPLEX__
674) [6.10.8.3 Conditional feature macros] This conditionally predefined macro is the integer constant 1, intended to indicate that the implementation does not support the <threads.h> header.|__STDC_NO_THREADS__
675) [6.10.8.3 Conditional feature macros] This conditionally predefined macro is the integer constant 1, intended to indicate that the implementation does not support variable length arrays or variably modified types.|__STDC_NO_VLA__
676) [7.1.1 Definitions of terms] A contiguous sequence of characters terminated by and including the first null character is called this.|string
677) [7.1.1 Definitions of terms] A wide character with code value zero is called this.|null wide character
678) [7.1.1 Definitions of terms] A contiguous sequence of wide characters terminated by and including the first null wide character is called this.|wide string
679) [7.1.1 Definitions of terms] A contiguous sequence of bytes within a multibyte string that (potentially) causes a change in shift state is called this.|shift sequence
680) [7.1.2 Standard headers] If a file with the same name as one of the above < and > delimited sequences, not provided as part of the implementation, is placed in any of the standard places that are searched for included source files, the behavior is this.|undefined
681) [7.1.2 Standard headers] The program shall not have any macros with names lexically identical to these currently defined prior to the inclusion of the header or when any macro defined in the header is expanded.|keywords
682) [7.1.2 Standard headers] Any definition of an object-like macro in a standard header shall expand to code that is fully protected by these where necessary, so that it groups in an arbitrary expression as if it were a single identifier.|parentheses
683) [7.1.2 Standard headers] Any declaration of a library function shall have this linkage.|external
684) [7.1.3 Reserved identifiers] All identifiers that begin with an underscore and either this or another underscore are always reserved for any use.|uppercase letter
685) [7.1.4 Use of library functions] Implementations may share their own internal objects between threads if the objects are not visible to users and are protected against this.|data race|race condition|race hazard
686) [7.2 Diagnostics <assert.h>] If this macro is defined as a macro name at the point in the source file where <assert.h> is included, the assert macro is defined simply as #define assert(ignore) ((void)0).|NDEBUG
687) [7.2.1.1 The assert macro] When it is executed, if expression is false, the assert macro writes information about the particular call that failed on this stream in an implementation-defined format.|standard error|error|stderr
688) [7.2.1.1 The assert macro] When it is executed, if expression is false, the assert macro writes information about the particular call that failed. It then calls this function.|abort
689) [7.3.2 Conventions] Values of complex arithmetic are not interpreted as degrees, but as this.|radians|radian
690) [7.3.5.1 The cacos functions] This function computes the complex arc cosine of z, with branch cuts outside the interval [-1, +1] along the real axis and return the complex arc cosine value, in the range of a strip mathematically unbounded along the imaginary axis and in the interval [0, pi] along the real axis.|cacos
691) [7.3.5.2 The casin functions] This function computes the complex arc sine of z, with branch cuts outside the interval [-1, +1] along the real axis and return the complex arc sine value, in the range of a strip mathematically unbounded along the imaginary axis and in the interval [-pi/2, +pi/2] along the real axis.|casin
692) [7.3.5.3 The catan functions] This function computes the complex arc tangent of z, with branch cuts outside the interval [-i, +i] along the imaginary axis and return the complex arc tangent value, in the range of a strip mathematically unbounded along the imaginary axis and in the interval [-pi/2, +pi/2] along the real axis.|catan
693) [7.3.5.4 The ccos functions] This function computes the complex cosine of z.|ccos
694) [7.3.5.5 The csin functions] This function computes the complex sine of z.|csin
695) [7.3.5.6 The ctan functions] This function computes the complex tangent of z.|ctan
696) [7.3.6.1 The cacosh functions] This function computes the complex arc hyperbolic cosine of z, with a branch cut at values less than 1 along the real axis and return the complex arc hyperbolic cosine value, in the range of a half-strip of nonnegative values along the real axis and in the interval [-ipi, +ipi] along the imaginary axis.|cacosh
697) [7.3.6.2 The casinh functions] This function computes the complex arc hyperbolic sine of z, with branch cuts outside the interval [-i, +i] along the imaginary axis and return the complex arc hyperbolic sine value, in the range of a strip mathematically unbounded along the real axis and in the interval [-ipi/2, +ipi/2] along the imaginary axis.|casinh
698) [7.3.6.3 The catanh functions] This function computes the complex arc hyperbolic tangent of z, with branch cuts outside the interval [-1, +1] along the real axis and return the complex arc hyperbolic tangent value, in the range of a strip mathematically unbounded along the real axis and in the interval [-ipi/2, +ipi/2] along the imaginary axis.|catanh
699) [7.3.6.4 The ccosh functions] This function computes the complex hyperbolic cosine of z.|ccosh
700) [7.3.6.5 The csinh functions] This function computes the complex hyperbolic sine of z.|csinh
701) [7.3.6.6 The ctanh functions] This function computes the complex hyperbolic tangent of z.|ctanh
702) [7.3.7.1 The cexp functions] This function computes the complex base-e exponential of z.|cexp
703) [7.3.7.2 The clog functions] This function computes the complex natural (base-e) logarithm of z, with a branch cut along the negative real axis and return the complex natural logarithm value, in the range of a strip mathematically unbounded along the real axis and in the interval [-ipi, +ipi] along the imaginary axis.|clog
704) [7.3.8.1 The cabs functions] This function computes the complex absolute value (also called norm, modulus, or magnitude) of z.|cabs
705) [7.3.8.2 The cpow functions] This function computes the complex power function xy, with a branch cut for the first parameter along the negative real axis.|cpow
706) [7.3.8.3 The csqrt functions] This function computes the complex square root of z, with a branch cut along the negative real axis and return the complex square root value, in the range of the right half-plane (including the imaginary axis).|csqrt
707) [7.3.9.1 The carg functions] This function computes the argument (also called phase angle) of z, with a branch cut along the negative real axis and return the value of the argument in the interval [-pi, +pi].|carg
708) [7.3.9.2 The cimag functions] This function computes the imaginary part of z.|cimag
709) [7.3.9.4 The conj functions] This function computes the complex conjugate of z, by reversing the sign of its imaginary part.|conj
710) [7.3.9.5 The cproj functions] This function computes a projection of z onto the Riemann sphere: z projects to z except that all complex infinities (even those with one infinite part and one NaN part) project to positive infinity on the real axis.|cproj
711) [7.3.9.6 The creal functions] This function computes the real part of z.|creal
712) [7.4 Character handling <ctype.h>] This header declares several functions useful for classifying and mapping characters.|ctype.h
713) [7.4.1.1 The isalnum function] This function tests for any character for which isalpha or isdigit is true.|isalnum
714) [7.4.1.2 The isalpha function] This function tests for any character for which isupper or islower is true, or any character that is one of a locale-specific set of alphabetic characters for which none of iscntrl, isdigit, ispunct, or isspace is true.|isalpha
715) [7.4.1.3 The isblank function] This function tests for any character that is a standard blank character or is one of a locale-specific set of characters for which isspace is true and that is used to separate words within a line of text.|isblank
716) [7.4.1.4 The iscntrl function] This function tests for any control character.|iscntrl
717) [7.4.1.5 The isdigit function] This function tests for any decimal-digit character.|isdigit
718) [7.4.1.6 The isgraph function] This function tests for any printing character except space (' ').|isgraph
719) [7.4.1.7 The islower function] This function tests for any character that is a lowercase letter or is one of a locale-specific set of characters for which none of iscntrl, isdigit, ispunct, or isspace is true.|islower
720) [7.4.1.8 The isprint function] This function tests for any printing character including space (' ').|isprint
721) [7.4.1.9 The ispunct function] This function tests for any printing character that is one of a locale-specific set of punctuation characters for which neither isspace nor isalnum is true.|ispunct
722) [7.4.1.10 The isspace function] This function tests for any character that is a standard white-space character or is one of a locale-specific set of characters for which isalnum is false.|isspace
723) [7.4.1.11 The isupper function] This function tests for any character that is an uppercase letter or is one of a locale-specific set of characters for which none of iscntrl, isdigit, ispunct, or isspace is true.|isupper
724) [7.4.1.12 The isxdigit function] This function tests for any hexadecimal-digit character.|isxdigit
725) [7.4.2.1 The tolower function] This function converts an uppercase letter to a corresponding lowercase letter.|tolower
726) [7.4.2.2 The toupper function] This function converts a lowercase letter to a corresponding uppercase letter.|toupper
727) [7.6 Floating-point environment <fenv.h>] The floating-point environment provides a system variable whose value is set (but never cleared) when a floating-point exception is raised, which occurs as a side effect of exceptional floating-point arithmetic to provide auxiliary information. It is called this.|floating-point status flag|status flag
728) [7.6 Floating-point environment <fenv.h>] The floating-point environment provides a system variable whose value may be set by the user to affect the subsequent behavior of floating-point arithmetic. A floating-point status flag is not an object and can be set more than once within an expression. It is called this.|floating-point control mode|control mode
729) [7.6.1 The FENV_ACCESS pragma] This pragma provides a means to inform the implementation when a program might access the floating-point environment to test floating-point status flags or run under non-default floating-point control modes.|FENV_ACCESS
730) [7.6.2.1 The feclearexcept function] This function attempts to clear the supported floating-point exceptions represented by its argument.|feclearexcept
731) [7.6.2.2 The fegetexceptflag function] This function attempts to store an implementation-defined representation of the states of the floating-point status flags indicated by the argument excepts in the object pointed to by the argument flagp.|fegetexceptflag
732) [7.6.2.3 The feraiseexcept function] This function attempts to raise the supported floating-point exceptions represented by its argument.|feraiseexcept
733) [7.6.2.4 The fesetexceptflag function] This function attempts to set the floating-point status flags indicated by the argument excepts to the states stored in the object pointed to by flagp.|fesetexceptflag
734) [7.6.2.5 The fetestexcept function] This function determines which of a specified subset of the floating-point exception flags are currently set.|fetestexcept
735) [7.6.3.1 The fegetround function] This function gets the current rounding direction.|fegetround
736) [7.6.3.1 The fegetround function] The fegetround function returns the value of the rounding direction macro representing the current rounding direction or this value if there is no such rounding direction macro or the current rounding direction is not determinable.|negative
737) [7.6.3.2 The fesetround function] This function establishes the rounding direction represented by its argument round.|fesetround
738) [7.6.4.1 The fegetenv function] This function attempts to store the current floating-point environment in the object pointed to by envp.|fegetenv
739) [7.6.4.2 The feholdexcept function] This function saves the current floating-point environment in the object pointed to by envp, clears the floating-point status flags, and then installs a non-stop (continue on floating-point exceptions) mode, if available, for all floating-point exceptions.|feholdexcept
740) [7.6.4.3 The fesetenv function] This function attempts to establish the floating-point environment represented by the object pointed to by envp.|fesetenv
741) [7.6.4.4 The feupdateenv function] This function attempts to save the currently raised floating-point exceptions in its automatic storage, install the floating-point environment represented by the object pointed to by envp, and then raise the saved floating-point exceptions.|feupdateenv
742) [7.8 Format conversion of integer types <inttypes.h>] This header includes the header <stdint.h> and extends it with additional facilities provided by the hosted implementation.|inttypes.h
743) [7.8 Format conversion of integer types <inttypes.h>] The header <inttypes.h> includes this header and extends it with additional facilities provided by the hosted implementation.|stdint.h
744) [7.8.2.1 The imaxabs function] This function computes the absolute value of an integer.|imaxabs
745) [7.8.2.2 The imaxdiv function] This function computes numer / denom and numer % denom in a single operation.|imaxdiv
746) [7.8.2.2 The imaxdiv function] This function returns a structure of type imaxdiv_t comprising both the quotient and the remainder.|imaxdiv
747) [7.8.2.2 The imaxdiv function] This structure shall contain (in either order) the members quot (the quotient) and rem (the remainder), each of which has type intmax_t.|imaxdiv_t
748) [7.11.1.1 The setlocale function] This function may be used to change or query the program's entire current locale or portions thereof.|setlocale
749) [7.11.1.1 The setlocale function] This value for the locale argument causes the setlocale function to return a pointer to the string associated with the category for the program's current locale; the program's locale is not changed.|null pointer|NULL|0
750) [7.11.1.1 The setlocale function] The implementation shall arrange to encode in a string the various categories due to a heterogeneous locale when the category argument to the setlocale function has this value.|LC_ALL
751) [7.11.2.1 The localeconv function] This function sets the components of an object with type struct lconv with values appropriate for the formatting of numeric quantities (monetary and otherwise) according to the rules of the current locale.|localeconv
752) [7.12 Mathematics <math.h>] If FLT_EVAL_METHOD is set to this, float_t and double_t are float and double, respectively.|0
753) [7.12 Mathematics <math.h>] If FLT_EVAL_METHOD is set to this, float_t and double_t are both double.|1
754) [7.12 Mathematics <math.h>] If FLT_EVAL_METHOD is set to this, float_t and double_t are both long double.|2
755) [7.12 Mathematics <math.h>] If this macro is defined, it indicates that the fma function generally executes about as fast as, or faster than, a multiply and an add of double operands.|FP_FAST_FMA
756) [7.12 Mathematics <math.h>] If the expression math_errhandling & MATH_ERREXCEPT can be nonzero, the implementation shall define the macros FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW in this header.|fenv.h
757) [7.12.1 Treatment of error conditions] This error occurs if an input argument is outside the domain over which the mathematical function is defined.|domain
758) [7.12.1 Treatment of error conditions] This error (also known as a singularity or infinitary) occurs if the mathematical function has an exact infinite result as the finite input argument(s) are approached in the limit (for example, log(0.0)).|pole
759) [7.12.1 Treatment of error conditions] This error occurs if the mathematical result of the function cannot be represented in an object of the specified type, due to extreme magnitude.|range
760) [7.12.1 Treatment of error conditions] A floating result does this if the magnitude of the mathematical result is finite but so large that the mathematical result cannot be represented without extraordinary roundoff error in an object of the specified type.|overflows|overflow
761) [7.12.1 Treatment of error conditions] If a floating result does this and default rounding is in effect, then the function returns the value of the macro HUGE_VAL, HUGE_VALF, or HUGE_VALL according to the return type, with the same sign as the correct value of the function.|overflows|overflow
762) [7.12.1 Treatment of error conditions] If a floating result overflows and if the integer expression math_errhandling & MATH_ERRNO is nonzero, the integer expression errno acquires this value.|ERANGE
763) [7.12.1 Treatment of error conditions] If a floating result overflows and if the integer expression math_errhandling & MATH_ERREXCEPT is nonzero, this floating-point exception is raised.|overflow
764) [7.12.1 Treatment of error conditions] If a domain, pole, or range error occurs and the integer expression math_errhandling & MATH_ERRNO is this value, then errno shall either be set to the value corresponding to the error or left unmodified.|zero|0
765) [7.12.4.1 The acos functions] This function computes the principal value of the arc cosine of x and return arc cosine x in the interval [0,pi] radians.|acos
766) [7.12.4.2 The asin functions] This function computes the principal value of the arc sine of x and return arc sine x in the interval [-pi/2, +pi/2] radians.|asin
767) [7.12.4.3 The atan functions] This function computes the principal value of the arc tangent of x and return arc tangent x in the interval [-pi/2, +pi/2] radians.|atan
768) [7.12.4.4 The atan2 functions] This function computes the value of the arc tangent of y/x, using the signs of both arguments to determine the quadrant of the return value and return arc tangent y/x in the interval [-pi, +pi] radians.|atan2
769) [7.12.4.5 The cos functions] This function computes the cosine of x (measured in radians).|cos
770) [7.12.4.6 The sin functions] This function computes the sine of x (measured in radians).|sin
771) [7.12.4.7 The tan functions] This function returns the tangent of x (measured in radians).|tan
772) [7.12.5.1 The acosh functions] This function computes the (nonnegative) arc hyperbolic cosine of x and return a value in the interval [0, +pi].|acosh
773) [7.12.5.2 The asinh functions] This function computes the arc hyperbolic sine of x.|asinh
774) [7.12.5.3 The atanh functions] This function computes the arc hyperbolic tangent of x.|atanh
775) [7.12.5.4 The cosh functions] This function computes the hyperbolic cosine of x.|cosh
776) [7.12.5.5 The sinh functions] This function computes the hyperbolic sine of x.|sinh
777) [7.12.5.6 The tanh functions] This function computes the hyperbolic tangent of x.|tanh
778) [7.12.6.1 The exp functions] This function computes the base-e exponential of x.|exp
779) [7.12.6.2 The exp2 functions] This function computes the base-2 exponential of x.|exp2
780) [7.12.6.3 The expm1 functions] This function computes the base-e exponential of the argument, minus 1.|expm1
781) [7.12.6.4 The frexp functions] This function breaks a floating-point number into a normalized fraction and an integral power of 2.|frexp
782) [7.12.6.5 The ilogb functions] This function extracts the exponent of x as a signed int value.|ilogb
783) [7.12.6.5 The ilogb functions] If the argument of the ilogb functions is zero they compute this value.|FP_ILOGB0
784) [7.12.6.5 The ilogb functions] If the argument of the ilogb functions is infinite they compute this value.|INT_MAX
785) [7.12.6.5 The ilogb functions] If the argument of the ilogb functions is a NaN they compute this value.|FP_ILOGBNAN
786) [7.12.6.5 The ilogb functions] This function returns the exponent of x as a signed int value.|ilogb
787) [7.12.6.6 The ldexp functions] This function multiplies a floating-point number by an integral power of 2.|ldexp
788) [7.12.6.7 The log functions] This function computes the base-e (natural) logarithm of x.|log
789) [7.12.6.8 The log10 functions] This function computes the base-10 (common) logarithm of x.|log10
790) [7.12.6.9 The log1p functions] This function computes the base-e (natural) logarithm of 1 plus the argument.|log1p
791) [7.12.6.10 The log2 functions] This function computes the base-2 logarithm of x.|log2
792) [7.12.6.11 The logb functions] This function extracts the exponent of x, as a signed integer value in floating-point format.|logb
793) [7.12.6.12 The modf functions] This function breaks the argument value into integral and fractional parts, each of which has the same type and sign as the argument.|modf
794) [7.12.7.1 The cbrt functions] This function computes the real cube root of x.|cbrt
795) [7.12.7.2 The fabs functions] This function computes the absolute value of a floating-point number x.|fabs
796) [7.12.7.3 The hypot functions] This function computes the square root of the sum of the squares of x and y, without undue overflow or underflow.|hypot
797) [7.12.7.4 The pow functions] This function computes x raised to the power y.|pow
798) [7.12.7.5 The sqrt functions] This function computes the nonnegative square root of x.|sqrt
799) [7.12.8.1 The erf functions] This function computes the error function of x.|erf
800) [7.12.8.2 The erfc functions] This function computes the complementary error function of x.|erfc
801) [7.12.8.3 The lgamma functions] This function computes the natural logarithm of the absolute value of gamma of x.|lgamma
802) [7.12.8.4 The tgamma functions] This function computes the gamma function of x.|tgamma
803) [7.12.9.1 The ceil functions] This function computes the smallest integer value not less than x.|ceil
804) [7.12.9.2 The floor functions] This function computes the largest integer value not greater than x.|floor
805) [7.12.9.3 The nearbyint functions] This function rounds its argument to an integer value in floating-point format, using the current rounding direction and without raising the ``inexact'' floating-point exception.|nearbyint
806) [7.12.9.3 The nearbyint functions] This function rounds its argument to an integer value in floating-point format, using the current rounding direction and raises the ``inexact'' floating-point exception if the result differs in value from the argument.|rint
807) [7.12.9.6 The round functions] This function rounds its argument to the nearest integer value in floating-point format, rounding halfway cases away from zero, regardless of the current rounding direction.|round
808) [7.12.9.8 The trunc functions] This function rounds its argument to the integer value, in floating format, nearest to but no larger in magnitude than the argument.|trunc
809) [7.12.10.1 The fmod functions] This function computes the floating-point remainder of x/y.|fmod
810) [7.12.10.2 The remainder functions] This function computes the remainder x REM y as required by IEC 60559.|remainder
811) [7.12.11.1 The copysign functions] This function produces a value with the magnitude of x and the sign of y.|copysign
812) [7.12.11.2 The nan functions] This function returns a quiet NaN, if available, with content indicated through its argument. If the implementation does not support quiet NaNs, the functions return zero.|nan
813) [7.12.11.3 The nextafter functions] This function determines the next representable value, in the type of the function, after x in the direction of y, where x and y are first converted to the type of the function.|nextafter
814) [7.12.11.4 The nexttoward functions] This function is equivalent to the nextafter function except that the second parameter has type long double and the function returns y converted to the type of the function if x equals y.|nexttoward
815) [7.12.12.1 The fdim functions] This function determines the positive difference between its arguments.|fdim
816) [7.12.12.2 The fmax functions] This function determines the maximum numeric value of its arguments|fmax
817) [7.12.12.3 The fmin functions] This function determines the minimum numeric value of its arguments.|fmin
818) [7.12.13.1 The fma functions] This function computes (x * y) + z, rounded as one ternary operation.|fma
819) [7.13 Nonlocal jumps <setjmp.h>] This header defines the macro setjmp, and declares one function and one type, for bypassing the normal function call and return discipline.|setjmp.h
820) [7.13 Nonlocal jumps <setjmp.h>] This type is an array type suitable for holding the information needed to restore a calling setjmp environment.|jmp_buf
821) [7.13.1.1 The setjmp macro] This macro saves its calling environment in its jmp_buf argument for later use by the longjmp function.|setjmp
822) [7.13.1.1 The setjmp macro] The setjmp macro saves its calling environment in its jmp_buf argument for later use by this function.|longjmp
823) [7.13.2.1 The longjmp function] This function restores the environment saved by the most recent invocation of the setjmp macro in the same invocation of the program with the corresponding jmp_buf argument.|longjmp
824) [7.13.2.1 The longjmp function] If longjmp is called without a prior invocation of this macro the behavior is undefined.|setjmp
825) [7.13.2.1 The longjmp function] The longjmp function that returns control back to the point of the setjmp invocation might cause this to happen to memory associated with a variable length array object.|squandered|wasted|lost
826) [7.14 Signal handling <signal.h>] This header declares a type and two functions and defines several macros, for handling various signals (conditions that may be reported during program execution).|signal.h
827) [7.14 Signal handling <signal.h>] This is the (possibly volatile-qualified) integer type of an object that can be accessed as an atomic entity, even in the presence of asynchronous interrupts.|sig_atomic_t
828) [7.14 Signal handling <signal.h>] This macro is a signal number denoting abnormal termination, such as is initiated by the abort function.|SIGABRT
829) [7.14 Signal handling <signal.h>] This macro is a signal number denoting an erroneous arithmetic operation, such as zero divide or an operation resulting in overflow.|SIGFPE
830) [7.14 Signal handling <signal.h>] This macro is a signal number denoting the detection of an invalid function image, such as an invalid instruction.|SIGILL
831) [7.14 Signal handling <signal.h>] This macro is a signal number denoting the receipt of an interactive attention signal.|SIGINT
832) [7.14 Signal handling <signal.h>] This macro is a signal number denoting an invalid access to storage.|SIGSEGV
833) [7.14 Signal handling <signal.h>] This macro is a signal number denoting a termination request sent to the program.|SIGTERM
834) [7.14 Signal handling <signal.h>] The complete set of signals, their semantics, and their default handling is implementation-defined; all signal numbers shall be this kind value.|nonnegative
835) [7.14.1.1 The signal function] If the value of the function passed to signal() is this, default handling for that signal will occur.|SIG_DFL
836) [7.14.1.1 The signal function] If the value of the function passed to signal() is this, the signal will be ignored.|SIG_IGN
837) [7.14.1.1 The signal function] An invocation of a function because of a signal, or (recursively) of any further functions called by that invocation (other than functions in the standard library), is called this.|signal handler
838) [7.14.1.1 The signal function] If the signal occurs as the result of calling the abort or raise function, the signal handler shall not call this function.|raise
839) [7.14.1.1 The signal function] If any signal is generated by this kind of signal handler, the behavior is undefined.|asynchronous
840) [7.14.2.1 The raise function] This function causes the handler for the signal specified by its argument to be invoked.|raise
841) [7.14.2.1 The raise function] If a signal handler is called, this function shall not return until after the signal handler does.|raise
842) [7.16 Variable arguments <stdarg.h>] This type is a complete object type suitable for holding information needed by the macros va_start, va_arg, va_end, and va_copy.|va_list
843) [7.16 Variable arguments <stdarg.h>] If access to the varying arguments is desired, the called function shall declare an object having this type.|va_list
844) [7.16.1 Variable argument list access macros] Each invocation of the va_start and va_copy macros shall be matched by a corresponding invocation of this macro in the same function.|va_end
845) [7.16.1.3 The va_end macro] If there is no corresponding invocation of the va_start or va_copy macro, or if the va_end macro is not invoked before the return, the behavior is this.|undefined
846) [7.16.1.4 The va_start macro] This  macro initializes a unique va_list for subsequent use by the va_arg and va_end macros.|va_start
847) [7.16.1.4 The va_start macro] Neither the va_start nor va_copy macro shall be invoked to reinitialize a va_list without an intervening invocation of this macro for the same va_list.|va_end
848) [7.17.1 Introduction] This header defines several macros and declares several types and functions for performing atomic operations on data shared between threads.|stdatomic.h
849) [7.17.1 Introduction] This type is an enumerated type whose enumerators identify memory ordering constraints.|memory_order
850) [7.17.1 Introduction] This type is a structure type representing a lock-free, primitive atomic flag.|atomic_flag
851) [7.17.2.1 The ATOMIC_VAR_INIT macro] An atomic object with automatic storage duration that is not explicitly initialized using this macro is initially in an indeterminate state; however, the default (zero) initialization for objects with static or thread-local storage duration is guaranteed to produce a valid state.|ATOMIC_VAR_INIT
852) [7.17.3 Order and consistency] These Atomic operations shall always read the last value (in the modification order) stored before the write associated with such an operation.|read-modify-write{Sometimes known simply as RMW.}|RMW{RMW stands for read-modify-write.}
853) [7.17.3 Order and consistency] This shall only store a value that has been computed from constants and program input values by a finite sequence of program evaluations, such that each evaluation observes the values of variables as computed by the last prior assignment in the sequence.|atomic store
854) [7.17.4 Fences] A fence with acquire semantics is called this.|acquire fence{That was kind of obvious, wasn't it?}
855) [7.17.4 Fences] A fence with release semantics is called this.|release fence{That was kind of obvious, wasn't it?}
856) [7.17.4.2 The atomic_signal_fence function] This function can be used to specify the order in which actions performed by the thread become visible to the signal handler.|atomic_signal_fence
857) [7.17.5 Lock-free property] This value for the atomic lock-free macros indicates that the integer or address atomic type is never lock-free.|0|zero
858) [7.17.5 Lock-free property] This value for the atomic lock-free macros indicates that the integer or address atomic type is sometimes lock-free.|1|one
859) [7.17.5 Lock-free property] This value for the atomic lock-free macros indicates that the integer or address atomic type is always lock-free.|2|two
860) [7.17.5.1 The atomic_is_lock_free generic function] This generic function indicates whether or not the object pointed to by obj is lock-free.|atomic_is_lock_free
861) [7.17.8 Atomic flag type and operations] This type provides the classic test-and-set functionality. It has two states, set and clear.|atomic_flag
862) [7.17.8 Atomic flag type and operations] Operations on an object of this type shall be lock-free and address-free.|atomic_flag
863) [7.17.8 Atomic flag type and operations] An atomic_flag that is not explicitly initialized with this macro is initially in an indeterminate state.|ATOMIC_FLAG_INIT
864) [7.18 Boolean type and values <stdbool.h>] The <stdbool.h> macro bool expands to this.|_Bool
865) [7.18 Boolean type and values <stdbool.h>] This <stdbool.h> macro expands to the integer constant 1.|true
866) [7.18 Boolean type and values <stdbool.h>] This <stdbool.h> macro expands to the integer constant 0.|false
867) [7.19 Common definitions <stddef.h>] This type is the signed integer type of the result of subtracting two pointers.|ptrdiff_t
868) [7.19 Common definitions <stddef.h>] This type is the unsigned integer type of the result of the sizeof operator.|size_t
869) [7.19 Common definitions <stddef.h>] This type is an object type whose alignment is as great as is supported by the implementation in all contexts.|max_align_t
870) [7.19 Common definitions <stddef.h> ] This type is an integer type whose range of values can represent distinct codes for all members of the largest extended character set specified among the supported locales.|wchar_t
871) [7.19 Common definitions <stddef.h>] This macro expands to an implementation-defined null pointer constant.|NULL
872) [7.19 Common definitions <stddef.h>] This macro expands to an integer constant expression that has type size_t, the value of which is the offset in bytes, to a structure member from the beginning of its structure.|offsetof
873) [7.20 Integer types <stdint.h>] This header declares sets of integer types having specified widths, and defines corresponding sets of macros. It also defines macros that specify limits of integer types corresponding to types defined in other standard headers.|stdint.h
874) [7.20.1.4 Integer types capable of holding object pointers] This type designates a signed integer type with the property that any valid pointer to void can be converted to this type, then converted back to pointer to void, and the result will compare equal to the original pointer.|intptr_t
875) [7.20.1.4 Integer types capable of holding object pointers] This type designates an unsigned integer type with the property that any valid pointer to void can be converted to this type, then converted back to pointer to void, and the result will compare equal to the original pointer.|uintptr_t
876) [7.20.1.5 Greatest-width integer types] This type designates a signed integer type capable of representing any value of any signed integer type.|intmax_t
877) [7.20.1.5 Greatest-width integer types] This type designates an unsigned integer type capable of representing any value of any unsigned integer type.|uintmax_t
878) [7.20.3 Limits of other integer types] This macro is the minimum limit of ptrdiff_t.|PTRDIFF_MIN
879) [7.20.3 Limits of other integer types] This macro is the maximum limit of ptrdiff_t.|PTRDIFF_MAX
880) [7.20.3 Limits of other integer types] This macro is the minimum limit of sig_atomic_t.|SIG_ATOMIC_MIN
881) [7.20.3 Limits of other integer types] This macro is the maximum limit of sig_atomic_t.|SIG_ATOMIC_MAX
882) [7.20.3 Limits of other integer types] This macro is the maximum limit of size_t.|SIZE_MAX
883) [7.20.3 Limits of other integer types] This macro is the minimum limit of wchar_t.|WCHAR_MIN
884) [7.20.3 Limits of other integer types] This macro is the maximum limit of wchar_t.|WCHAR_MAX
885) [7.20.3 Limits of other integer types] This macro is the minimum limit of wint_t.|WINT_MIN
886) [7.20.3 Limits of other integer types] This macro is the maximum limit of wint_t.|WINT_MAX
887) [7.21.1 Introduction] This header defines several macros, and declares three types and many functions for performing input and output.|stdio.h
888) [7.21.1 Introduction] This type is an object type capable of recording all the information needed to control a stream.|FILE
889) [7.21.1 Introduction] This macro expands to an integer constant expression that is the size of the buffer used by the setbuf function;|BUFSIZ
890) [7.21.1 Introduction] This macro expands to an integer constant expression, with type int and a negative value, that is returned by several functions to indicate end-of-file, that is, no more input from a stream.|EOF
891) [7.21.1 Introduction] This macro expands to an integer constant expression that is the minimum number of files that the implementation guarantees can be open simultaneously.|FOPEN_MAX
892) [7.21.1 Introduction] This macro expands to an integer constant expression that is the size needed for an array of char large enough to hold the longest file name string that the implementation guarantees can be opened.|FILENAME_MAX
893) [7.21.1 Introduction] This macro expands to an integer constant expression that is the size needed for an array of char large enough to hold a temporary file name string generated by the tmpnam function.|L_tmpnam
894) [7.21.1 Introduction] The macros SEEK_CUR, SEEK_END, and SEEK_SET expand to integer constant expressions with distinct values, suitable for use as the third argument to this function.|fseek
895) [7.21.1 Introduction] This macro expands to an integer constant expression that is the minimum number of unique file names that can be generated by the tmpnam function.|TMP_MAX
896) [7.21.1 Introduction] This symbol is an expression of type ``pointer to FILE'' that points to the FILE object associated with the standard error stream.|stderr
897) [7.21.1 Introduction] This symbol is an expression of type ``pointer to FILE'' that points to the FILE object associated with the standard output stream.|stdout
898) [7.21.1 Introduction] This symbol is an expression of type ``pointer to FILE'' that points to the FILE object associated with the standard input stream.|stdin
899) [7.21.1 Introduction] If the implementation imposes no practical limit on the length of file name strings, the value of this macro should instead be the recommended size of an array intended to hold a file name string.|FILENAME_MAX
900) [7.21.2 Streams] This kind of stream is an ordered sequence of characters composed into lines, each line consisting of zero or more characters plus a terminating new-line character.|text
901) [7.21.2 Streams] This kind of stream is an ordered sequence of characters that can transparently record internal data.|binary
902) [7.21.2 Streams] An implementation shall support text files with lines containing at least this many characters, including the terminating new-line character.|254
903) [7.21.2 Streams] The value of the macro BUFSIZ shall be at least this.|256
904) [7.21.3 Files] This is associated with an external file (which may be a physical device) by opening a file, which may involve creating a new file.|stream
905) [7.21.3 Files] If a file can support positioning requests (such as a disk file, as opposed to a terminal), then a file position indicator associated with the stream is positioned at the start of the file, unless the file is opened with this mode in which case it is implementation-defined whether the file position indicator is initially positioned at the beginning or the end of the file.|append
906) [7.21.3 Files] When a stream has this kind of buffering, characters are intended to appear from the source or at the destination as soon as possible.|unbuffered|none|no
907) [7.21.3 Files] When a stream has this kind of buffering, characters are intended to be transmitted to or from the host environment as a block when a buffer is filled.|fully buffered|fully|full
908) [7.21.3 Files] When a stream has this kind of buffering, characters are intended to be transmitted to or from the host environment as a block when a new-line character is encountered.|line buffered|line
909) [7.21.3 Files] A file may be disassociated from a controlling stream by doing this to the file.|closing|close
910) [7.21.3 Files] If the main function returns to its original caller, or if this function is called, all open files are closed (hence all output streams are flushed) before program termination.|exit
911) [7.21.3 Files] Functions that open nontemporary files require this, which is a string.|file name|filename
912) [7.21.3 Files] The value of FOPEN_MAX shall be at least this, including the three standard text streams.|8|eight
913) [7.21.4.1 The remove function] This function causes the file whose name is the string pointed to by filename to be no longer accessible by that name unless it is created anew.|remove
914) [7.21.4.1 The remove function] If the file is open, the behavior of the remove function is this.|implementation-defined
915) [7.21.4.2 The rename function] This function causes the file whose name is the string pointed to by its first argument to be henceforth known by the name given by the string pointed to by its second argument.|rename
916) [7.21.4.2 The rename function] If a file named by the string pointed to by new exists prior to the call to the rename function, the behavior is this.|implementation-defined
917) [7.21.4.3 The tmpfile function] This function creates a temporary binary file that is different from any other existing file and that will automatically be removed when it is closed or at program termination.|tmpfile
918) [7.21.4.3 The tmpfile function] If the program terminates abnormally, whether an open temporary file is removed is this.|implementation-defined
919) [7.21.4.4 The tmpnam function] This function generates a string that is a valid file name and that is not the same as the name of an existing file. The function is potentially capable of generating at least TMP_MAX different strings, but any or all of them may already be in use by existing files and thus not be suitable return values.|tmpnam
920) [7.21.4.4 The tmpnam function] The value of the macro TMP_MAX shall be at least this.|25|twenty-five
921) [7.21.5.1 The fclose function] A successful call to this function causes the stream pointed to by its stream argument to be flushed and the associated file to be closed.|fclose
922) [7.21.5.1 The fclose function] The fclose function returns zero if the stream was successfully closed, or this value if any errors were detected.|EOF
923) [7.21.5.2 The fflush function] If its stream argument points to an output stream or an update stream in which the most recent operation was not input, this function causes any unwritten data for that stream to be delivered to the host environment to be written to the file.|fflush
924) [7.21.5.2 The fflush function] If its argument is this value, the fflush function performs the flushing action on all applicable streams.|null pointer|NULL|0
925) [7.21.5.3 The fopen function] This function opens the file whose name is the string pointed to by filename, and associates a stream with it.|fopen
926) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is opened as a text file for reading.|"r"|r
927) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is created as a text file for writing and truncated to zero length if it already exists.|"w"|w
928) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is created as a text file for writing or an error is returned if it already exists.|"wx"|wx
929) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is opened for appending; that is, opened or created as a text file for writing at end-of-file.|"a"|a
930) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is opened as binary file for reading|"rb"|rb
931) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is created as a binary file for writing and truncated to zero length if it already exists.|"wb"|wb
932) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is created as a binary file for writing or an error is returned if it already exists.|"wbx"|wbx
933) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is opened as a binary file for appending; that is, opened or created as a binary file for writing at end-of-file.|"ab"|ab
934) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is opened as a text file for updating (reading and writing).|"r+"|r+
935) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is created as a text file for updating (reading and writing) and truncated to zero length if it already exists.|"w+"|w+
936) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is created as a text file for updating (reading and writing) or an error is returned if it already exists.|"w+x"|w+x
937) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is opened or created as a text file for updating (reading and writing), writing at end-of-file.|"a+"|a+
938) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is opened as a binary file for updating (reading and writing).|"r+b"|"rb+"|r+b|rb+
939) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is created as a binary file for updating (reading and writing) and truncated to zero length if it already exists.|"w+b"|"wb+"|w+b|wb+
940) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is created as a binary file for updating (reading and write) or an error is returned if it already exists.|"w+bx"|"wb+x"|w+bx|wb+x
941) [7.21.5.3 The fopen function] If fopen's mode string is this, the file is opened or created as a binary file for updating (reading and writing), writing at end-of-file.|"a+b"|"ab+"|a+b|ab+
942) [7.21.5.3 The fopen function] When a file is opened with this kind of mode, both input and output may be performed on the associated stream.|update
943) [7.21.5.3 The fopen function] When a file is opened in this kind of mode, output shall not be directly followed by input without an intervening call to the fflush function or to a file positioning function (fseek, fsetpos, or rewind), and input shall not be directly followed by output without an intervening call to a file positioning function, unless the input operation encounters end-of-file.|update
944) [7.21.5.3 The fopen function] When opened, a stream is fully buffered if and only if it can be determined not to refer to this kind of device.|interactive
945) [7.21.5.4 The freopen function] This function opens the file whose name is the string pointed to by a filename as its first argument and associates its stream to the stream pointed to by its third argument.|freopen
946) [7.21.5.4 The freopen function] If the filename argument is this value, the freopen function attempts to change the mode of the stream to that specified by mode, as if the name of the file currently associated with the stream had been used.|NULL|0|null pointer
947) [7.21.5.6 The setvbuf function] This function changes how a stream is buffered.|setvbuf|setbuf
948) [7.21.6.1 The fprintf function] This function writes output to the stream pointed to by its stream argument, under control of the string pointed to by its format argument that specifies how subsequent arguments are converted for output.|fprintf
949) [7.21.6.1 The fprintf function] This fprintf length modifier specifies that a following conversion specifier applies to a signed char or unsigned char argument.|hh
950) [7.21.6.1 The fprintf function] This fprintf length modifier specifies that a following conversion specifier applies to a short int or unsigned short int argument.|h
951) [7.21.6.1 The fprintf function] This fprintf length modifier specifies that a following conversion specifier applies to a long int or unsigned long int argument|l
952) [7.21.6.1 The fprintf function] This fprintf length modifier specifies that a following conversion specifier applies to a long long int or unsigned long long int argument.|ll
953) [7.21.6.1 The fprintf function] This fprintf length modifier specifies that a following conversion specifier applies to an intmax_t or uintmax_t argument.|j
954) [7.21.6.1 The fprintf function] This fprintf length modifier specifies that a following conversion specifier applies to a size_t or the corresponding signed integer type argument.|z
955) [7.21.6.1 The fprintf function] This fprintf length modifier specifies that a following conversion specifier applies to a ptrdiff_t or the corresponding unsigned integer type argument.|t
956) [7.21.6.1 The fprintf function] This fprintf length modifier specifies that a following conversion specifier applies to a long double argument.|L
957) [7.21.6.2 The fscanf function] This function reads input from the stream pointed to by its stream argument, under control of the string pointed to by its format argument that specifies the admissible input sequences and how they are to be converted for assignment, using subsequent arguments as pointers to the objects to receive the converted input.|fscanf
958) [7.21.6.2 The fscanf function] A fscanf directive composed of this kind of character(s) is executed by reading input up to the first non-white-space character (which remains unread), or until no more characters can be read.|white-space|whitespace
959) [7.21.6.2 The fscanf function] If the fscanf input item is not a matching sequence, the execution of the fscanf directive fails: this condition is called this.|matching failure
960) [7.21.6.2 The fscanf function] If an encoding error or a read error prevented handling of an input item from a fscanf stream, the execution of the fscanf directive fails: this condition is called this.|input failure
961) [7.21.6.2 The fscanf function] The fscanf function returns this value if an input failure occurs before the first conversion (if any) has completed.|EOF
962) [7.21.6.3 The printf function] This function is equivalent to fprintf with the argument stdout interposed before its arguments.|printf
963) [7.21.6.4 The scanf function] This function is equivalent to fscanf with the argument stdin interposed before its arguments.|scanf
964) [7.21.6.5 The snprintf function] This function is equivalent to fprintf, except that the output is written into an array (up to a specified length limit) rather than to a stream.|snprintf
965) [7.21.6.6 The sprintf function] This function is equivalent to fprintf, except that the output is written into an array (without an length limit) rather than to a stream.|sprintf
966) [7.21.6.7 The sscanf function] This function is equivalent to fscanf, except that input is obtained from a string rather than from a stream.|sscanf
967) [7.21.6.8 The vfprintf function] This function is equivalent to fprintf, with a variable argument list.|vfprintf
968) [7.21.6.9 The vfscanf function] This function is equivalent to fscanf, with a variable argument list.|vfscanf
969) [7.21.6.10 The vprintf function] This function is equivalent to printf, with a variable argument list.|vprintf
970) [7.21.6.11 The vscanf function] This function is equivalent to scanf, with a variable argument list.|vscanf
971) [7.21.6.12 The vsnprintf function] This function is equivalent to snprintf, with a variable argument list.|vsnprintf
972) [7.21.6.13 The vsprintf function] This function is equivalent to sprintf, with a variable argument list.|vsprintf
973) [7.21.6.14 The vsscanf function] This function is equivalent to sscanf, with a variable argument list.|vsscanf
974) [7.21.7.1 The fgetc function] If the end-of-file indicator for the input stream pointed to by stream is not set and a next character is present, this function obtains that character as an unsigned char converted to an int and advances the associated file position indicator for the stream (if defined).|fgetc
975) [7.21.7.1 The fgetc function] An end-of-file and a read error can be distinguished by use of these functions (name both, separated by "and").|feof and ferror|ferror and feof
976) [7.21.7.2 The fgets function] This function reads at most one less than the number of characters specified by its n argument from the stream pointed to by its stream argument into the array pointed to by its s argument.|fgets
977) [7.21.7.2 The fgets function] This character is written immediately after the last character read into the array by the fgets function.|null character|0|'\0'
978) [7.21.7.2 The fgets function] If end-of-file is encountered by fgets and no characters have been read into the array, this value is returned.|NULL|null pointer|0
979) [7.21.7.2 The fgets function] If end-of-file is encountered by fgets and no characters have been read into the array, the contents of the array are this.|unchanged
980) [7.21.7.2 The fgets function] If a read error occurs during the fgets operation, the array contents are this.|indeterminate
981) [7.21.7.3 The fputc function] This function writes the character specified by its argument (converted to an unsigned char) to the output stream pointed to by its stream argument, at the position indicated by the associated file position indicator for the stream (if defined), and advances the indicator appropriately.|fputc
982) [7.21.7.3 The fputc function] If the file cannot support positioning requests, or if the stream was opened with this kind of mode, the character is written to the end of output stream.|append
983) [7.21.7.4 The fputs function] This function writes the string pointed to by its argument to the stream pointed to by its stream argument.|fputs
984) [7.21.7.5 The getc function] This function is equivalent to fgetc, except that if it is implemented as a macro, it may evaluate stream more than once, so the argument should never be an expression with side effects.|getc
985) [7.21.7.6 The getchar function] This function is equivalent to getc with the argument stdin.|getchar
986) [7.21.7.6 The getchar function] This function returns the next character from the input stream pointed to by stdin.|getchar
987) [7.21.7.7 The putc function] This function is equivalent to fputc, except that if it is implemented as a macro, it may evaluate stream more than once, so that argument should never be an expression with side effects.|putc
988) [7.21.7.8 The putchar function] This function is equivalent to putc with the second argument stdout.|putchar
989) [7.21.7.9 The puts function] This function writes the string pointed to by its argument to the stream pointed to by stdout, and appends a new-line character to the output.|puts
990) [7.21.7.10 The ungetc function] This function pushes the character specified by its argument (converted to an unsigned char) back onto the input stream pointed to by its stream argument.|ungetc
991) [7.21.7.10 The ungetc function] If the ungetc function is called too many times on the same stream without an intervening read or file positioning operation on that stream, the operation may do this.|fail
992) [7.21.8.1 The fread function] This function reads, into the array pointed to by ptr, up to nmemb elements whose size is specified by size, from the stream pointed to by stream.|fread
993) [7.21.8.1 The fread function] If a partial element is read by fread, its value is this.|indeterminate
994) [7.21.8.2 The fwrite function] This function writes, from the array pointed to by ptr, up to nmemb elements whose size is specified by size, to the stream pointed to by stream.|fwrite
995) [7.21.9.1 The fgetpos function] This function stores the current values of the parse state (if any) and file position indicator for the stream pointed to by stream in the object pointed to by pos.|fgetpos
996) [7.21.9.1 The fgetpos function] If successful, the fgetpos function returns zero; on failure, the fgetpos function returns nonzero and stores an implementation-defined positive value in this object.|errno
997) [7.21.9.2 The fseek function] This function sets the file position indicator for the stream pointed to by its stream argument.|fseek
998) [7.21.9.2 The fseek function] For a text stream, offset argument shall be either zero or a value returned by an earlier successful call to the ftell function on a stream associated with the same file and its whence argument shall be this.|SEEK_SET
999) [7.21.9.2 The fseek function] The fseek function returns this value for a request that cannot be satisfied.|nonzero|!0
1000) [7.21.9.3 The fsetpos function] This function sets the mbstate_t object (if any) and file position indicator for the stream pointed to by stream according to the value of the object pointed to by pos.|fsetpos
1001) [7.21.9.3 The fsetpos function] The fsetpos function sets the mbstate_t object (if any) and file position indicator for the stream pointed to by stream according to the value of the object pointed to by pos, which shall be a value obtained from an earlier successful call to this function on a stream associated with the same file.|fgetpos
1002) [7.21.9.4 The ftell function] This function obtains the current value of the file position indicator for the stream pointed to by stream.|ftell
1003) [7.21.9.5 The rewind function] This function sets the file position indicator for the stream pointed to by stream to the beginning of the file.|rewind
1004) [7.21.10.1 The clearerr function] This function clears the end-of-file and error indicators for the stream pointed to by stream.|clearerr
1005) [7.21.10.2 The feof function] This function tests the end-of-file indicator for the stream pointed to by stream.|feof
1006) [7.21.10.3 The ferror function] This function tests the error indicator for the stream pointed to by stream.|ferror
1007) [7.21.10.4 The perror function] This function maps the error number in the integer expression errno to an error message.|perror
1008) [7.22 General utilities <stdlib.h>] This macro expands to a integer constant expressions that can be used as the argument to the exit function to return unsuccessful termination status to the host environment.|EXIT_FAILURE
1009) [7.22 General utilities <stdlib.h>] This macro expands to a integer constant expressions that can be used as the argument to the exit function to return successful termination status to the host environment.|EXIT_SUCCESS
1010) [7.22 General utilities <stdlib.h>] This macro expands to an integer constant expression that is the maximum value returned by the rand function.|RAND_MAX
1011) [7.22 General utilities <stdlib.h>] This macro expands to a positive integer expression with type size_t that is the maximum number of bytes in a multibyte character for the extended character set specified by the current locale (category LC_CTYPE).|MB_CUR_MAX
1012) [7.22.1.1 The atof function] This function converts the initial portion of the string pointed to by its argument to double representation.|atof
1013) [7.22.2.1 The rand function] This function computes a sequence of pseudo-random integers in the range 0 to RAND_MAX.|rand
1014) [7.22.2.1 The rand function] The value of the RAND_MAX macro shall be at least this.|32767
1015) [7.22.2.2 The srand function] This function uses the argument as a seed for a new sequence of pseudo-random numbers to be returned by subsequent calls to rand.|srand
1016) [7.22.2.2 The srand function] If srand is then called with the same seed value, the sequence of pseudo-random numbers shall be this.|repeated|identical
1017) [7.22.2.2 The srand function] If rand is called before any calls to srand have been made, the same sequence shall be generated as when srand is first called with this seed value.|1|one
1018) [7.22.3.1 The aligned_alloc function] This function allocates space for an object whose alignment is specified by alignment, whose size is specified by size, and whose value is indeterminate.|aligned_alloc
1019) [7.22.3.2 The calloc function] This function allocates space for an array of nmemb objects, each of whose size is specified by the size argument.|calloc
1020) [7.22.3.3 The free function] This function causes the space pointed to by the ptr argument to be deallocated, that is, made available for further allocation.|free
1021) [7.22.3.3 The free function] If the ptr argument of the free function is this, no action occurs.|null pointer|0|NULL
1022) [7.22.3.4 The malloc function] This function allocates space for an object whose size is specified by the size argument and whose value is indeterminate.|malloc
1023) [7.22.3.5 The realloc function] This function deallocates the old object pointed to by the ptr argument and returns a pointer to a new object that has the size specified by the size argument.|realloc
1024) [7.22.3.5 The realloc function] If the ptr argument is a null pointer, the realloc function behaves like this function for the specified size.|malloc
1025) [7.22.3.5 The realloc function] If the ptr argument is this value, the realloc function behaves like the malloc function for the specified size.|null pointer|0|NULL
1026) [7.22.4.1 The abort function] This function causes abnormal program termination to occur.|abort{That is, unless the signal SIGABRT is being caught and the signal handler does not return.}
1027) [7.22.4.1 The abort function] An implementation-defined form of this kind of termination is returned to the host environment by means of the function call raise(SIGABRT).|unsuccessful
1028) [7.22.4.2 The atexit function] This function registers the function pointed to by func, to be called without arguments at normal program termination.|atexit
1029) [7.22.4.2 The atexit function] The implementation shall support the atexit registration of at least this many functions.|32|thirty-two
1030) [7.22.4.3 The at_quick_exit function] This function registers the function pointed to by func, to be called without arguments should quick_exit be called.|at_quick_exit
1031) [7.22.4.4 The exit function] This function causes normal program termination to occur.|exit
1032) [7.22.4.4 The exit function] No functions registered by this function are called if exit is called.|at_quick_exit
1033) [7.22.4.4 The exit function] If, during the call to any function registered by atexit, a call to this function is made that would terminate the call to the registered function, the behavior is undefined.|longjmp
1034) [7.22.4.4 The exit function] If the value of the argument to the exit function is this, an implementation-defined form of the status successful termination is returned.|0|zero|EXIT_SUCCESS
1035) [7.22.4.4 The exit function] If the value of the argument to the exit function is this, an implementation-defined form of the status unsuccessful termination is returned.|EXIT_FAILURE|nonzero
1036) [7.22.4.5 The _Exit function] This function causes normal program termination to occur and control to be returned to the host environment. No functions registered by the atexit function, the at_quick_exit function, or signal handlers registered by the signal function are called.|_Exit
1037) [7.22.4.6 The getenv function] This function searches an environment list, provided by the host environment, for a string that matches the string pointed to by name.|getenv
1038) [7.22.4.7 The quick_exit function] This function causes normal program termination to occur. No functions registered by the atexit function or signal handlers registered by the signal function are called.|quick_exit
1039) [7.22.4.7 The quick_exit function] If a signal is raised while the quick_exit function is executing, the behavior is this.|undefined
1040) [7.22.4.8 The system function] If the argument of the system function is this, the system function determines whether the host environment has a command processor and returns nonzero if so.|null pointer|NULL|0
1041) [7.22.4.8 The system function] If the argument of the system function is a null pointer, the system function determines whether the host environment has this and returns nonzero if so.|command processor
1042) [7.22.4.8 The system function] If the argument is not a null pointer, this function passes the string pointed to by its argument to the host environment's command processor to be executed in a manner which the implementation shall document.|system
1043) [7.22.5.1 The bsearch function] This function searches an array of nmemb objects, the initial element of which is pointed to by base, for an element that matches the object pointed to by key.|bsearch
1044) [7.22.5.2 The qsort function] This function sorts an array of nmemb objects, the initial element of which is pointed to by base. The contents of the array are sorted into ascending order according to a comparison function pointed to by compar, which is called with two arguments that point to the objects being compared.|qsort
1045) [7.22.7.1 The mblen function] This function determines the number of bytes contained in the multibyte character.|mblen
1046) [7.22.7.2 The mbtowc function] This function converts a multibyte character into a wide character.|mbtowc
1047) [7.22.7.3 The wctomb function] This function converts a wide character into a multibyte character.|wctomb
1048) [7.22.8.1 The mbstowcs function] This function converts a sequence of multibyte characters that begins in the initial shift state from the array pointed to by its argument into a sequence of corresponding wide characters.|mbstowcs
1049) [7.22.8.2 The wcstombs function] This function converts a sequence of wide characters from the array pointed to by its argument into a sequence of corresponding multibyte characters that begins in the initial shift state.|wcstombs
1050) [7.23 _Noreturn <stdnoreturn.h>] This header defines the macro noreturn which expands to _Noreturn.|stdnoreturn.h
1051) [7.23 _Noreturn <stdnoreturn.h>] The header <stdnoreturn.h> defines the macro noreturn which expands to this.|_Noreturn
1052) [7.24.2.1 The memcpy function] This function copies n characters from the object pointed to by s2 into the object pointed to by s1, including any null characters.|memcpy
1053) [7.24.2.2 The memmove function] This function copies n characters from the object pointed to by s2 into the object pointed to by s1. Copying takes place as if the n characters from the object pointed to by s2 are first copied into a temporary array of n characters that does not overlap the objects pointed to by s1 and s2.|memmove
1054) [7.24.2.3 The strcpy function] This function copies the string pointed to by s2 (including the terminating null character) into the array pointed to by s1.|strcpy
1055) [7.24.2.4 The strncpy function] This function copies not more than n characters (characters that follow a null character are not copied) from the array pointed to by s2 to the array pointed to by s1.|strncpy
1056) [7.24.3.1 The strcat function] This function appends a copy of the string pointed to by s2 (including the terminating null character) to the end of the string pointed to by s1.|strcat
1057) [7.24.3.2 The strncat function] This function appends not more than n characters (a null character and characters that follow it are not appended) from the array pointed to by s2 to the end of the string pointed to by s1. A terminating null character is always appended to the result.|strncat
1058) [7.24.4.1 The memcmp function] This function compares the first n characters of the object pointed to by s1 to the first n characters of the object pointed to by s2, and does not stop comparing if a null character is encountered.|memcmp
1059) [7.24.4.2 The strcmp function] This function compares the string pointed to by s1 to the string pointed to by s2.|strcmp
1060) [7.24.4.3 The strcoll function] This function compares the string pointed to by s1 to the string pointed to by s2, both interpreted as appropriate to the LC_COLLATE category of the current locale.|strcoll
1061) [7.24.4.3 The strcoll function] The strcoll function compares the string pointed to by s1 to the string pointed to by s2, both interpreted as appropriate to this category of the current locale.|LC_COLLATE
1062) [7.24.4.4 The strncmp function] This function compares not more than n characters (characters that follow a null character are not compared) from the array pointed to by s1 to the array pointed to by s2.|strncmp
1063) [7.24.4.5 The strxfrm function] This function transforms the string pointed to by s2 and places the resulting string into the array pointed to by s1.|strxfrm
1064) [7.24.5.1 The memchr function] This function locates the first occurrence of c (converted to an unsigned char) in the initial n characters (each interpreted as unsigned char) of the object pointed to by s, and does not stop searching if a null character is encountered.|memchr
1065) [7.24.5.2 The strchr function] This function locates the first occurrence of c (converted to a char) in the string pointed to by s.|strchr
1066) [7.24.5.3 The strcspn function] This function computes the length of the maximum initial segment of the string pointed to by s1 which consists entirely of characters not from the string pointed to by s2.|strcspn
1067) [7.24.5.4 The strpbrk function] This function locates the first occurrence in the string pointed to by s1 of any character from the string pointed to by s2.|strpbrk
1068) [7.24.5.5 The strrchr function] This function locates the last occurrence of c (converted to a char) in the string pointed to by s.|strrchr
1069) [7.24.5.6 The strspn function] This function computes the length of the maximum initial segment of the string pointed to by s1 which consists entirely of characters from the string pointed to by s2.|strspn
1070) [7.24.5.7 The strstr function] This function locates the first occurrence in the string pointed to by s1 of the sequence of characters (excluding the terminating null character) in the string pointed to by s2.|strstr
1071) [7.24.5.8 The strtok function] A sequence of calls to this function breaks the string pointed to by s1 into a sequence of tokens, each of which is delimited by a character from the string pointed to by s2.|strtok
1072) [7.24.5.8 The strtok function] The strtok function is not required to avoid data races with other calls to the strtok function. This function can be used instead to avoid data races.|strtok_s{Also, strtok_r is provided by POSIX, but is not standard C.}|strtok_r{This, however, is a POSIX function -- standard C does provide strtok_s for this purpose.}
1073) [7.24.6.1 The memset function] This function copies the value of c (converted to an unsigned char) into each of the first n characters of the object pointed to by s.|memset
1074) [7.24.6.2 The strerror function] This function maps the number in errnum to a message string.|strerror
1075) [7.24.6.2 The strerror function] Typically, the values for errnum come from this object, but strerror shall map any value of type int to a message.|errno
1076) [7.24.6.2 The strerror function] The strerror function is not required to avoid data races with other calls to the strerror function. This function can be used instead to avoid data races.|strerror_s
1077) [7.24.6.3 The strlen function] This function computes the length of the string pointed to by its argument.|strlen
1078) [7.26.1 Introduction] This macro expands to an integer constant expression representing the maximum number of times that destructors will be called when a thread terminates.|TSS_DTOR_ITERATIONS
1079) [7.26.1 Introduction] This type is a complete object type that holds an identifier for a condition variable.|cnd_t
1080) [7.26.1 Introduction] This type is a complete object type that holds an identifier for a thread.|thrd_t
1081) [7.26.1 Introduction] This type is a complete object type that holds an identifier for a thread-specific storage pointer.|tss_t
1082) [7.26.1 Introduction] This type is a complete object type that holds an identifier for a mutex.|mtx_t
1083) [7.26.1 Introduction] This type is the function pointer type void (*)(void*), used for a destructor for a thread-specific storage pointer.|tss_dtor_t
1084) [7.26.1 Introduction] This type is the function pointer type int (*)(void*) that is passed to thrd_create to create a new thread.|thrd_start_t
1085) [7.26.1 Introduction] This type is a complete object type that holds a flag for use by call_once.|once_flag
1086) [7.26.1 Introduction] This enumeration constant is passed to mtx_init to create a mutex object that supports neither timeout nor test and return.|mtx_plain
1087) [7.26.1 Introduction] This enumeration constant is passed to mtx_init to create a mutex object that supports recursive locking.|mtx_recursive
1088) [7.26.1 Introduction] This enumeration constant is passed to mtx_init to create a mutex object that supports timeout.|mtx_timed
1089) [7.26.1 Introduction] This enumeration constant is returned by a timed wait threads.h function to indicate that the time specified in the call was reached without acquiring the requested resource.|thrd_timedout
1090) [7.26.1 Introduction] This enumeration constant is returned by a threads.h function to indicate that the requested operation succeeded.|thrd_success
1091) [7.26.1 Introduction] This enumeration constant is returned by a threads.h function to indicate that the requested operation failed because a resource requested by a test and return function is already in use.|thrd_busy
1092) [7.26.1 Introduction] This enumeration constant is returned by a threads.h function to indicate that the requested operation failed.|thrd_error
1093) [7.26.1 Introduction] This enumeration constant is returned by a threads.h function to indicate that the requested operation failed because it was unable to allocate memory.|thrd_nomem
1094) [7.26.2.1 The call_once function] This function uses the once_flag pointed to by flag to ensure that func is called exactly once.|call_once
1095) [7.26.3.1 The cnd_broadcast function] This function unblocks all of the threads that are blocked on the condition variable pointed to by cond at the time of the call.|cnd_broadcast
1096) [7.26.3.1 The cnd_broadcast function] The cnd_broadcast function returns this value on success.|thrd_success
1097) [7.26.3.1 The cnd_broadcast function] The cnd_broadcast function returns this value if the request could not be honored.|thrd_error
1098) [7.26.3.2 The cnd_destroy function] This function releases all resources used by the condition variable pointed to by cond.|cnd_destroy
1099) [7.26.3.3 The cnd_init function] This function creates a condition variable.|cnd_init
1100) [7.26.3.4 The cnd_signal function] This function unblocks one of the threads that are blocked on the condition variable pointed to by cond at the time of the call.|cnd_signal
1101) [7.26.3.5 The cnd_timedwait function] This function atomically unlocks the mutex pointed to by mtx and endeavors to block until the condition variable pointed to by cond is signaled by a call to cnd_signal or to cnd_broadcast, or until after the TIME_UTC-based calendar time pointed to by its ts argument.|cnd_timedwait
1102) [7.26.3.6 The cnd_wait function] This function atomically unlocks the mutex pointed to by mtx and endeavors to block until the condition variable pointed to by cond is signaled by a call to cnd_signal or to cnd_broadcast.|cnd_wait
1103) [7.26.4.1 The mtx_destroy function] This function releases any resources used by the mutex pointed to by mtx.|mtx_destroy
1104) [7.26.4.2 The mtx_init function] This function creates a mutex object with properties indicated by type, which must have one of the six values: mtx_plain for a simple non-recursive mutex, mtx_timed for a non-recursive mutex that supports timeout, mtx_plain \| mtx_recursive for a simple recursive mutex, or mtx_timed \| mtx_recursive for a recursive mutex that supports timeout.|mtx_init
1105) [7.26.4.3 The mtx_lock function] This function blocks until it locks the mutex pointed to by mtx.|mtx_lock
1106) [7.26.4.4 The mtx_timedlock function] This function endeavors to block until it locks the mutex pointed to by mtx or until after the TIME_UTC-based calendar time pointed to by its ts argument.|mtx_timedlock
1107) [7.26.4.5 The mtx_trylock function] This function endeavors to lock the mutex pointed to by mtx.|mtx_trylock
1108) [7.26.4.6 The mtx_unlock function] This function unlocks the mutex pointed to by mtx.|mtx_unlock
1109) [7.26.5.1 The thrd_create function] This function creates a new thread executing func(arg).|thrd_create
1110) [7.26.5.2 The thrd_current function] This function identifies the thread that called it.|thrd_current
1111) [7.26.5.3 The thrd_detach function] This function tells the operating system to dispose of any resources allocated to the thread identified by thr when that thread terminates.|thrd_detach
1112) [7.26.5.4 The thrd_equal function] This function will determine whether the thread identified by thr0 refers to the thread identified by thr1.|thrd_equal
1113) [7.26.5.5 The thrd_exit function] This function terminates execution of the calling thread and sets its result code to res.|thrd_exit
1114) [7.26.5.6 The thrd_join function] This function joins the thread identified by thr with the current thread by blocking until the other thread has terminated.|thrd_join
1115) [7.26.5.7 The thrd_sleep function] This function suspends execution of the calling thread until either the interval specified by duration has elapsed or a signal which is not being ignored is received.|thrd_sleep
1116) [7.26.5.8 The thrd_yield function] This function endeavors to permit other threads to run, even if the current thread would ordinarily continue to run.|thrd_yield
1117) [7.26.6.1 The tss_create function] This function creates a thread-specific storage pointer with destructor dtor, which may be null.|tss_create
1118) [7.26.6.2 The tss_delete function] This function releases any resources used by the thread-specific storage identified by key.|tss_delete
1119) [7.26.6.3 The tss_get function] This function returns the value for the current thread held in the thread-specific storage identified by key.|tss_get
1120) [7.26.6.4 The tss_set function] This function sets the value for the current thread held in the thread-specific storage identified by key to val.|tss_set
1121) [7.27.1 Components of time] This structure holds an interval specified in seconds and nanoseconds (which may represent a calendar time based on a particular epoch).|timespec
1122) [7.27.1 Components of time] This macro expands to an expression with type clock_t that is the number per second of the value returned by the clock function.|CLOCKS_PER_SEC
1123) [7.27.1 Components of time] This macro expands to an integer constant greater than 0 that designates the UTC time base.|TIME_UTC
1124) [7.27.1 Components of time] This structure shall contain at least the following members, in any order: time_t tv_sec; long tv_nsec.|timespec
1125) [7.27.2.1 The clock function] This function determines the processor time used.|clock
1126) [7.27.2.1 The clock function] This function returns the implementation's best approximation to the processor time used by the program since the beginning of an implementation-defined era related only to the program invocation.|clock
1127) [7.27.2.2 The difftime function] This function computes the difference between two calendar times: time1 -time0.|difftime
1128) [7.27.2.2 The difftime function] This function returns the difference of time expressed in seconds as a double.|difftime
1129) [7.27.2.3 The mktime function] This function converts the broken-down time, expressed as local time, in the structure pointed to by timeptr into a calendar time value with the same encoding as that of the values returned by the time function.|mktime
1130) [7.27.2.3 The mktime function] This value causes the mktime function to attempt to determine whether Daylight Saving Time is in effect for the specified time.|negative
1131) [7.27.2.3 The mktime function] The mktime function returns the specified calendar time encoded as a value of this type.|time_t
1132) [7.27.2.4 The time function] This function determines the current calendar time.|time
1133) [7.27.2.4 The time function] This function returns the implementation's best approximation to the current calendar time.|time
1134) [7.27.2.5 The timespec_get function] This function sets the interval pointed to by ts to hold the current calendar time based on the specified time base.|timespec_get
1135) [7.27.3.1 The asctime function] This function converts the broken-down time in the structure pointed to by timeptr into a string in the form Sun Sep 16 01:03:52 1973\n\0.|asctime
1136) [7.27.3.2 The ctime function] This function converts the calendar time pointed to by timer to local time in the form of a string. It is equivalent to asctime(localtime(timer)).|ctime
1137) [7.27.3.3 The gmtime function] This function converts the calendar time pointed to by timer into a broken-down time, expressed as UTC.|gmtime
1138) [7.27.3.4 The localtime function] This function converts the calendar time pointed to by timer into a broken-down time, expressed as local time.|localtime
1139) [7.27.3.5 The strftime function] This function formats the broken-down time tm according to the format specification format and places the result in the character array s of size max.|strftime
1140) [7.28 Unicode utilities <uchar.h>] This type is an unsigned integer type used for 16-bit Unicode characters.|char16_t
1141) [7.28 Unicode utilities <uchar.h>] This type is an unsigned integer type used for 32-bit Unicode characters.|char32_t
1142) [7.29.1 Introduction] This type is a complete object type other than an array type that can hold the conversion state information necessary to convert between sequences of multibyte characters and wide characters.|mbstate_t
1143) [7.29.1 Introduction] This type is an integer type unchanged by default argument promotions that can hold any value corresponding to members of the extended character set, as well as at least one value that does not correspond to any member of the extended character set.|wint_t
1144) [7.29.1 Introduction] This type is a struct type that holds the components of a calendar time, called the broken-down time.|tm|struct tm
1145) [7.29.1 Introduction] This macro expands to a constant expression of type wint_t whose value does not correspond to any member of the extended character set. It is accepted (and returned) by several wide string functions to indicate end-of-file, that is, no more input from a stream.|WEOF
1146) [7.29.2.1 The fwprintf function] This function writes output to the stream pointed to by stream, under control of the wide string pointed to by format that specifies how subsequent arguments are converted for output.|fwprintf
1147) [7.29.2.2 The fwscanf function] This function reads input from the stream pointed to by stream, under control of the wide string pointed to by format that specifies the admissible input sequences and how they are to be converted for assignment, using subsequent arguments as pointers to the objects to receive the converted input.|fwscanf
1148) [7.29.2.3 The swprintf function] This function is equivalent to fwprintf, except that the argument s specifies an array of wide characters into which the generated output is to be written, rather than written to a stream.|swprintf
1149) [7.29.2.4 The swscanf function] This function is equivalent to fwscanf, except that the argument s specifies a wide string from which the input is to be obtained, rather than from a stream.|swscanf
1150) [7.29.2.5 The vfwprintf function] This function is equivalent to fwprintf, with a variable argument list.|vfwprintf
1151) [7.29.2.6 The vfwscanf function] This function is equivalent to fwscanf, with a variable argument list.|vfwscanf
1152) [7.29.2.7 The vswprintf function] This function is equivalent to swprintf, with a variable argument list.|vswprintf
1153) [7.29.2.8 The vswscanf function] This function is equivalent to swscanf, with a variable argument list.|vswscanf
1154) [7.29.2.9 The vwprintf function] This function is equivalent to wprintf, with a variable argument list.|vwprintf
1155) [7.29.2.10 The vwscanf function] This function is equivalent to wscanf, with a variable argument list.|vwscanf
1156) [7.29.2.11 The wprintf function] This function is equivalent to fwprintf with the argument stdout interposed before its arguments.|wprintf
1157) [7.29.2.12 The wscanf function] This function is equivalent to fwscanf with the argument stdin interposed before its arguments.|wscanf
1158) [7.29.3.2 The fgetws function] This function reads at most one less than the number of wide characters specified by n from the stream pointed to by stream into the array pointed to by s.|fgetws
1159) [7.29.3.3 The fputwc function] This function writes the wide character specified by c to the output stream pointed to by stream, at the position indicated by the associated file position indicator for the stream (if defined), and advances the indicator appropriately.|fputwc
1160) [7.29.3.4 The fputws function] This function writes the wide string pointed to by s to the stream pointed to by stream.|fputws
1161) [7.29.3.5 The fwide function] This function determines and may optionally set the orientation of the stream pointed to by stream.|fwide
1162) [7.29.3.6 The getwc function] This function is equivalent to fgetwc, except that if it is implemented as a macro, it may evaluate stream more than once, so the argument should never be an expression with side effects.|getwc
1163) [7.29.3.6 The getwc function] This function returns the next wide character from the input stream pointed to by stream, or WEOF.|getwc
1164) [7.29.3.7 The getwchar function] This function is equivalent to getwc with the argument stdin.|getwchar
1165) [7.29.3.7 The getwchar function] This function returns the next wide character from the input stream pointed to by stdin, or WEOF.|getwchar
1166) [7.29.3.8 The putwc function] This function is equivalent to fputwc, except that if it is implemented as a macro, it may evaluate stream more than once, so that argument should never be an expression with side effects.|putwc
1167) [7.29.3.9 The putwchar function] This function is equivalent to putwc with the second argument stdout.|putwchar
1168) [7.29.3.10 The ungetwc function] This function pushes the wide character specified by c back onto the input stream pointed to by stream.|ungetwc
1169) [7.29.3.10 The ungetwc function] If the ungetwc function is called too many times on the same stream without an intervening read or file positioning operation on that stream, the operation may do this.|fail
1170) [7.29.4.2.1 The wcscpy function] This function copies the wide string pointed to by s2 (including the terminating null wide character) into the array pointed to by s1.|wcscpy
1171) [7.29.4.2.2 The wcsncpy function] This function copies not more than n wide characters (those that follow a null wide character are not copied) from the array pointed to by s2 to the array pointed to by s1.|wcsncpy
1172) [7.29.4.2.3 The wmemcpy function] This function copies n wide characters from the object pointed to by s2 to the object pointed to by s1 including any null wide characters.|wmemcpy
1173) [7.29.4.3.1 The wcscat function] This function appends a copy of the wide string pointed to by s2 (including the terminating null wide character) to the end of the wide string pointed to by s1.|wcscat
1174) [7.29.4.3.2 The wcsncat function] This function appends not more than n wide characters (a null wide character and those that follow it are not appended) from the array pointed to by s2 to the end of the wide string pointed to by s1.|wcsncat
1175) [7.29.4.4.1 The wcscmp function] This function compares the wide string pointed to by s1 to the wide string pointed to by s2.|wcscmp
1176) [7.29.4.4.2 The wcscoll function] This function compares the wide string pointed to by s1 to the wide string pointed to by s2, both interpreted as appropriate to the LC_COLLATE category of the current locale.|wcscoll
1177) [7.29.4.4.3 The wcsncmp function] This function compares not more than n wide characters (those that follow a null wide character are not compared) from the array pointed to by s1 to the array pointed to by s2.|wcsncmp
1178) [7.29.4.4.4 The wcsxfrm function] This function transforms the wide string pointed to by s2 and places the resulting wide string into the array pointed to by s1.|wcsxfrm
1179) [7.29.4.4.5 The wmemcmp function] This function compares the first n wide characters of the object pointed to by s1 to the first n wide characters of the object pointed to by s2, including any null wide characters.|wmemcmp
1180) [7.29.4.5.1 The wcschr function] This function locates the first occurrence of c in the wide string pointed to by s.|wcschr
1181) [7.29.4.5.2 The wcscspn function] This function computes the length of the maximum initial segment of the wide string pointed to by s1 which consists entirely of wide characters not from the wide string pointed to by s2.|wcscspn
1182) [7.29.4.5.3 The wcspbrk function] This function locates the first occurrence in the wide string pointed to by s1 of any wide character from the wide string pointed to by s2.|wcspbrk
1183) [7.29.4.5.4 The wcsrchr function] This function locates the last occurrence of c in the wide string pointed to by s.|wcsrchr
1184) [7.29.4.5.5 The wcsspn function] This function computes the length of the maximum initial segment of the wide string pointed to by s1 which consists entirely of wide characters from the wide string pointed to by s2.|wcsspn
1185) [7.29.4.5.6 The wcsstr function] This function locates the first occurrence in the wide string pointed to by s1 of the sequence of wide characters (excluding the terminating null wide character) in the wide string pointed to by s2.|wcsstr
1186) [7.29.4.5.7 The wcstok function] A sequence of calls to this function breaks the wide string pointed to by s1 into a sequence of tokens, each of which is delimited by a wide character from the wide string pointed to by s2.|wcstok
1187) [7.29.4.5.8 The wmemchr function] This function locates the first occurrence of c in the initial n wide characters of the object pointed to by s, including any null wide characters.|wmemchr
1188) [7.29.4.6.1 The wcslen function] This function computes the length of the wide string pointed to by s.|wcslen
1189) [7.29.4.6.2 The wmemset function] This function copies the value of c into each of the first n wide characters of the object pointed to by s, including any null wide characters.|wmemset
1190) [7.29.5.1 The wcsftime function] This function is equivalent to the strftime function, except that the argument s points to the initial element of an array of wide characters into which the generated output is to be placed.|wcsftime
1191) [7.29.6.1.1 The btowc function] This function determines whether c constitutes a valid single-byte character in the initial shift state.|btowc
1192) [7.29.6.1.2 The wctob function] This function determines whether c corresponds to a member of the extended character set whose multibyte character representation is a single byte when in the initial shift state.|wctob
1193) [7.29.6.2.1 The mbsinit function] If the argument is not a null pointer, this function determines whether the referenced mbstate_t object describes an initial conversion state.|mbsinit
1194) [7.29.6.3.1 The mbrlen function] This function is equivalent to the call: mbrtowc(NULL, s, n, ps != NULL ? ps : &internal) where internal is the mbstate_t object for the mbrlen function, except that the expression designated by ps is evaluated only once.|mbrlen
1195) [7.29.6.3.2 The mbrtowc function] This function inspects at most n bytes of the multibyte string starting at s, extracts the next complete multibyte character, converts it to a wide character, stores it at *pwc and updates the shift state *ps.|mbrtowc
1196) [7.29.6.3.3 The wcrtomb function] This function converts the wide character wc to its multibyte representation (including any shift sequences).|wcrtomb
1197) [7.29.6.4.1 The mbsrtowcs function] This function converts a sequence of multibyte characters that begins in the conversion state described by the object pointed to by ps, from the array indirectly pointed to by src into a sequence of corresponding wide characters.|mbsrtowcs
1198) [7.29.6.4.2 The wcsrtombs function] This function converts a sequence of wide characters from the array indirectly pointed to by src into a sequence of corresponding multibyte characters that begins in the conversion state described by the object pointed to by ps.|wcsrtombs
1199) [7.30.1 Introduction] This type is a scalar type that can hold values which represent locale-specific character mappings.|wctrans_t
1200) [7.30.1 Introduction] This type is a scalar type that can hold values which represent locale-specific character classifications.|wctype_t
1201) [7.30.2.1.1 The iswalnum function] This function tests for any wide character for which iswalpha or iswdigit is true.|iswalnum
1202) [7.30.2.1.2 The iswalpha function] This function tests for any wide character for which iswupper or iswlower is true, or any wide character that is one of a locale-specific set of alphabetic wide characters for which none of iswcntrl, iswdigit, iswpunct, or iswspace is true.|iswalpha
1203) [7.30.2.1.3 The iswblank function] This function tests for any wide character that is a standard blank wide character or is one of a locale-specific set of wide characters for which iswspace is true and that is used to separate words within a line of text.|iswblank
1204) [7.30.2.1.4 The iswcntrl function] This function tests for any control wide character.|iswcntrl
1205) [7.30.2.1.5 The iswdigit function] This function tests for any wide character that corresponds to a decimal-digit character.|iswdigit
1206) [7.30.2.1.6 The iswgraph function] This function tests for any wide character for which iswprint is true and iswspace is false.|iswgraph
1207) [7.30.2.1.7 The iswlower function] This function tests for any wide character that corresponds to a lowercase letter or is one of a locale-specific set of wide characters for which none of iswcntrl, iswdigit, iswpunct, or iswspace is true.|iswlower
1208) [7.30.2.1.8 The iswprint function] This function tests for any printing wide character.|iswprint
1209) [7.30.2.1.9 The iswpunct function] This function tests for any printing wide character that is one of a locale-specific set of punctuation wide characters for which neither iswspace nor iswalnum is true.|iswpunct
1210) [7.30.2.1.10 The iswspace function] This function tests for any wide character that corresponds to a locale-specific set of white-space wide characters for which none of iswalnum, iswgraph, or iswpunct is true.|iswspace
1211) [7.30.2.1.11 The iswupper function] This function tests for any wide character that corresponds to an uppercase letter or is one of a locale-specific set of wide characters for which none of iswcntrl, iswdigit, iswpunct, or iswspace is true.|iswupper
1212) [7.30.2.1.12 The iswxdigit function] This function tests for any wide character that corresponds to a hexadecimal-digit character.|iswxdigit
1213) [7.30.2.2.1 The iswctype function] This function determines whether the wide character wc has the property described by desc.|iswctype
1214) [7.30.2.2.2 The wctype function] This function constructs a value with type wctype_t that describes a class of wide characters identified by the string argument property.|wctype
1215) [7.30.3.1.1 The towlower function] This function converts a wide uppercase letter to a corresponding wide lowercase letter.|towlower
1216) [7.30.3.1.2 The towupper function] This function converts a wide lowercase letter to a corresponding wide uppercase letter.|towupper
1217) [7.30.3.2.1 The towctrans function] This function maps the wide character wc using the mapping described by desc.|towctrans
1218) [7.30.3.2.2 The wctrans function] This function constructs a value with type wctrans_t that describes a mapping between wide characters identified by the string argument property.|wctrans
1219) [F.5 Binary-decimal conversion] If the minimum-width IEC 60559 extended format (64 bits of precision) is supported, this macro shall be at least 21.|DECIMAL_DIG
1220) [F.5 Binary-decimal conversion] If IEC 60559 double (53 bits of precision) is the widest IEC 60559 format supported, then DECIMAL_DIG shall be at least this value.|17
1221) [F.5 Binary-decimal conversion] If the minimum-width IEC 60559 extended format (64 bits of precision) is supported, this macro shall be at least 21.|DECIMAL_DIG
1222) [F.5 Binary-decimal conversion] If IEC 60559 double (53 bits of precision) is the widest IEC 60559 format supported, then DECIMAL_DIG shall be at least this value.|21
1223) [F.9.4 Constant arithmetic] The implementation shall honor floating-point exceptions raised by execution-time constant arithmetic wherever the state of the FENV_ACCESS pragma is this value.|on
1224) [F.10 Mathematics <math.h>] If a function with one or more NaN arguments returns this result, the result should be the same as one of the NaN arguments (after possible type conversion), except perhaps for the sign.|NaN
1225) [F.10.3.5 The ilogb functions] If the correct result of the ilogb function is outside the range of the return type, the numeric result is unspecified and this floating-point exception is raised.|invalid
1226) [F.10.6.1 The ceil functions] The ceil functions may, but are not required to, raise this floating-point exception for finite non-integer arguments.|inexact
1227) [F.10.6.2 The floor functions] The floor functions may, but are not required to, raise this floating-point exception for finite non-integer arguments.|inexact
1228) [F.10.6.5 The lrint and llrint functions] If the rounded value returned by the lrint and llrint functions is outside the range of the return type, the numeric result is unspecified and this floating-point exception is raised.|invalid
1229) [F.10.6.6 The round functions] The round functions may, but are not required to, raise this floating-point exception for finite non-integer numeric arguments.|inexact
1230) [F.10.6.8 The trunc functions] The trunc functions may, but are not required to, raise this floating-point exception for finite non-integer arguments.|inexact
1231) [G.2 Types] This type specifier is used to specify complex types.|_Complex
1232) [G.2 Types] This type is used to specify imaginary types.|_Imaginary
1233) [G.3 Conventions] A complex or imaginary value with at least one infinite part is regarded as this (even if its other part is a NaN).|infinity|inf
1234) [G.4.2 Real and imaginary] When a value of imaginary type is converted to a real type other than _Bool, the result is this.|positive zero
1235) [G.4.2 Real and imaginary] When a value of real type is converted to an imaginary type, the result is this value.|positive imaginary zero
1236) [G.4.3 Imaginary and complex] When a value of imaginary type is converted to a complex type, the real part of the complex result value is this value and the imaginary part of the complex result value is determined by the conversion rules for the corresponding real types.|positive zero
1237) [G.4.3 Imaginary and complex] When a value of complex type is converted to an imaginary type, this part of the complex value is discarded.|real
1238) [G.5.1 Multiplicative operators] If one operand of a multiplicative operator has real type and the other operand has imaginary type, then the result has this type.|imaginary
1239) [G.5.1 Multiplicative operators] If both operands of a multiplicative operator have imaginary type, then the result has this type.|real
1240) [G.5.2 Additive operators] If both operands of the additive operators have imaginary type, then the result has this type.|imaginary
1241) [H.2.4 Type conversions] This function is useful for doing silent wrapping to unsigned integer types.|fmod
1242) [I. Common warnings] An example of this is when a new struct or union type appears in a function prototype.|common warning
1243) [I. Common warnings] An example of this is when a block with initialization of an object that has automatic storage duration is jumped into.|common warning
1244) [I. Common warnings] An example of this is when an implicit narrowing conversion is encountered, such as the assignment of a long int or a double to an int, or a pointer to void to a pointer to any type other than a character type.|common warning
1245) [I. Common warnings] An example of this is when a hexadecimal floating constant cannot be represented exactly in its evaluation format.|common warning
1246) [I. Common warnings] An example of this is when an integer character constant includes more than one character or a wide character constant includes more than one multibyte character.|common warning
1247) [I. Common warnings] An example of this is when the characters /* are found in a comment.|common warning
1248) [I. Common warnings] An example of this is when an ``unordered'' binary operator (not comma, &&, or \|\|) contains a side effect to an lvalue in one operand, and a side effect to, or an access to the value of, the identical lvalue in the other operand.|common warning
1249) [I. Common warnings] An example of this is when a function is called but no prototype has been supplied.|common warning
1250) [I. Common warnings] An example of this is when the arguments in a function call do not agree in number and type with those of the parameters in a function definition that is not a prototype.|common warning
1251) [I. Common warnings] An example of this is when an object is defined but not used.|common warning
1252) [I. Common warnings] An example of this is when a value is given to an object of an enumerated type other than by assignment of an enumeration constant that is a member of that type, or an enumeration object that has the same type, or the value of a function that returns the same enumerated type.|common warning
1253) [I. Common warnings] An example of this is when an aggregate has a partly bracketed initialization.|common warning
1254) [I. Common warnings] An example of this is when a statement cannot be reached.|common warning
1255) [I. Common warnings] An example of this is when a statement with no apparent effect is encountered.|common warning
1256) [I. Common warnings] An example of this is when a constant expression is used as the controlling expression of a selection statement.|common warning
1257) [I. Common warnings] An example of this is when an incorrectly formed preprocessing group is encountered while skipping a preprocessing group.|common warning
1258) [J.1 Unspecified behavior] An example of this behavior is when a fully expanded macro replacement list contains a function-like macro name as its last preprocessing token and the next preprocessing token from the source file is a (, and the fully expanded replacement of that macro ends with the name of the first macro and another (, whether that is considered a nested replacement.|unspecified behavior|unspecified
1259) [J.1 Unspecified behavior] An example of this behavior is whether a call to the atexit function that does not happen before the exit function is called will succeed.|unspecified behavior|unspecified
1260) [J.1 Unspecified behavior] An example of this behavior is whether a call to the at_quick_exit function that does not happen before the quick_exit function is called will succeed.|unspecified behavior|unspecified
1261) [J.1 Unspecified behavior] An example of this behavior is the manner and timing of static initialization.|unspecified behavior|unspecified
1262) [J.1 Unspecified behavior] An example of this behavior is the termination status returned to the hosted environment if the return type of main is not compatible with int.|unspecified behavior|unspecified
1263) [J.1 Unspecified behavior] An example of this behavior is the values of objects that are neither lock-free atomic objects nor of type volatile sig_atomic_t and the state of the floating-point environment, when the processing of the abstract machine is interrupted by receipt of a signal.|unspecified behavior|unspecified
1264) [J.1 Unspecified behavior] An example of this behavior is the behavior of the display device if a printing character is written when the active position is at the final position of a line.|unspecified behavior|unspecified
1265) [J.1 Unspecified behavior] An example of this behavior is the behavior of the display device if a backspace character is written when the active position is at the initial position of a line.|unspecified behavior|unspecified
1266) [J.1 Unspecified behavior] An example of this behavior is the behavior of the display device if a horizontal tab character is written when the active position is at or past the last defined horizontal tabulation position.|unspecified behavior|unspecified
1267) [J.1 Unspecified behavior] An example of this behavior is the behavior of the display device if a vertical tab character is written when the active position is at or past the last defined vertical tabulation position.|unspecified behavior|unspecified
1268) [J.1 Unspecified behavior] An example of this behavior is the value of padding bytes when storing values in structures or unions.|unspecified behavior|unspecified
1269) [J.1 Unspecified behavior] An example of this behavior is the values of bytes that correspond to union members other than the one last stored into.|unspecified behavior|unspecified
1270) [J.1 Unspecified behavior] An example of this behavior is the representation used when storing a value in an object that has more than one object representation for that value.|unspecified behavior|unspecified
1271) [J.1 Unspecified behavior] An example of this behavior is the values of any padding bits in integer representations.|unspecified behavior|unspecified
1272) [J.1 Unspecified behavior] An example of this behavior is whether certain operators can generate negative zeros and whether a negative zero becomes a normal zero when stored in an object.|unspecified behavior|unspecified
1273) [J.1 Unspecified behavior] An example of this behavior is whether two string literals result in distinct arrays.|unspecified behavior|unspecified
1274) [J.1 Unspecified behavior] An example of this behavior is the order in which subexpressions are evaluated and the order in which side effects take place, except as specified for the function-call (), &&, \|\|, ? :, and comma operators.|unspecified behavior|unspecified
1275) [J.1 Unspecified behavior] An example of this behavior is the order in which the function designator, arguments, and subexpressions within the arguments are evaluated in a function call.|unspecified behavior|unspecified
1276) [J.1 Unspecified behavior] An example of this behavior is the order of side effects among compound literal initialization list expressions.|unspecified behavior|unspecified
1277) [J.1 Unspecified behavior] An example of this behavior is the order in which the operands of an assignment operator are evaluated.|unspecified behavior|unspecified
1278) [J.1 Unspecified behavior] An example of this behavior is the alignment of the addressable storage unit allocated to hold a bit-field.|unspecified behavior|unspecified
1279) [J.1 Unspecified behavior] An example of this behavior is whether a call to an inline function uses the inline definition or the external definition of the function.|unspecified behavior|unspecified
1280) [J.1 Unspecified behavior] An example of this behavior is the order in which any side effects occur among the initialization list expressions in an initializer.|unspecified behavior|unspecified
1281) [J.1 Unspecified behavior] An example of this behavior is the layout of storage for function parameters.|unspecified behavior|unspecified
1282) [J.1 Unspecified behavior] An example of this behavior is the order in which # and ## operations are evaluated during macro substitution.|unspecified behavior|unspecified
1283) [J.1 Unspecified behavior] An example of this behavior is the details of the value stored by the fgetpos function.|unspecified behavior|unspecified
1284) [J.1 Unspecified behavior] An example of this behavior is the details of the value returned by the ftell function for a text stream.|unspecified behavior|unspecified
1285) [J.1 Unspecified behavior] An example of this behavior is the order and contiguity of storage allocated by successive calls to the calloc, malloc, and realloc functions.|unspecified behavior|unspecified
1286) [J.1 Unspecified behavior] An example of this behavior is the amount of storage allocated by a successful call to the calloc, malloc, or realloc function when 0 bytes was requested.|unspecified behavior|unspecified
1287) [J.1 Unspecified behavior] An example of this behavior is which of two elements that compare as equal is matched by the bsearch function.|unspecified behavior|unspecified
1288) [J.1 Unspecified behavior] An example of this behavior is the order of two elements that compare as equal in an array sorted by the qsort function.|unspecified behavior|unspecified
1289) [J.1 Unspecified behavior] An example of this behavior is the encoding of the calendar time returned by the time function.|unspecified behavior|unspecified
1290) [J.2 Undefined behavior] An example of this is when a nonempty source file does not end in a new-line character which is not immediately preceded by a backslash character or ends in a partial preprocessing token or comment.|undefined behavior
1291) [J.2 Undefined behavior] An example of this is when an object is referred to outside of its lifetime.|undefined behavior
1292) [J.2 Undefined behavior] An example of this is when a pointer is converted to other than an integer or pointer type.|undefined behavior
1293) [J.2 Undefined behavior] An example of this is when an expression is shifted by a negative number or by an amount greater than or equal to the width of the promoted expression.|undefined behavior
1294) [J.2 Undefined behavior] An example of this is when a file with the same name as one of the standard headers, not provided as part of the implementation, is placed in any of the standard places that are searched for included source files.|undefined behavior
1295) [J.2 Undefined behavior] An example of this is when a macro definition of errno is suppressed in order to access an actual object, or the program defines an identifier with the name errno.|undefined behavior
1296) [J.2 Undefined behavior] An example of this is when a signal occurs as the result of calling the abort or raise function, and the signal handler calls the raise function.|undefined behavior
1297) [J.2 Undefined behavior] An example of this is when the signal function is used in a multi-threaded program.|undefined behavior
1298) [J.2 Undefined behavior] An example of this is when an output operation on an update stream is followed by an input operation without an intervening call to the fflush function or a file positioning function, or an input operation on an update stream is followed by an output operation with an intervening call to a file positioning function.|undefined behavior
1299) [J.2 Undefined behavior] An example of this is when a partial element read by a call to the fread function is used.|undefined behavior
1300) [J.2 Undefined behavior] An example of this is when the fseek function is called for a text stream with a nonzero offset and either the offset was not returned by a previous successful call to the ftell function on a stream associated with the same file or whence is not SEEK_SET.|undefined behavior
1301) [J.2 Undefined behavior] An example of this is when the fsetpos function is called to set a position that was not returned by a previous successful call to the fgetpos function on a stream associated with the same file.|undefined behavior
1302) [J.2 Undefined behavior] An example of this is when a signal is raised while the quick_exit function is executing.|undefined behavior
1303) [J.2 Undefined behavior] An example of this is when a complex argument is supplied for a generic parameter of a type-generic macro that has no corresponding complex function.|undefined behavior
1304) [J.3 Implementation-defined behavior] A conforming implementation is required to do this for its choice of behavior for implementation-defined behavior.|document
1305) [J.3 Implementation-defined behavior] A conforming implementation is required to document its choice of behavior for this kind of behavior.|implementation-defined
1306) [J.3 Implementation-defined behavior] An example of this behavior is the result of converting a pointer to an integer or vice versa.|implementation-defined behavior|implementation-defined
1307) [J.3 Implementation-defined behavior] An example of this behavior is the size of the result of subtracting two pointers to elements of the same array.|implementation-defined behavior|implementation-defined
1308) [J.3 Implementation-defined behavior] An example of this behavior is the extent to which suggestions made by using the register storage-class specifier are effective.|implementation-defined behavior|implementation-defined
1309) [J.3 Implementation-defined behavior] An example of this behavior is the extent to which suggestions made by using the inline function specifier are effective.|implementation-defined behavior|implementation-defined
1310) [J.3 Implementation-defined behavior] An example of this behavior is what constitutes an access to an object that has volatile-qualified type.|implementation-defined behavior|implementation-defined
1311) [J.3 Implementation-defined behavior] An example of this behavior is whether the calloc, malloc, and realloc functions return a null pointer or a pointer to an allocated object when the size requested is zero.|implementation-defined behavior|implementation-defined
1312) [J.3 Implementation-defined behavior] An example of this behavior is whether or not the strtod, strtof, strtold, wcstod, wcstof, or wcstold function sets errno to ERANGE when underflow occurs.|implementation-defined behavior|implementation-defined
1313) [J.3 Implementation-defined behavior] An example of this behavior is the value to which the macro errno is set by the fgetpos, fsetpos, or ftell functions on failure.|implementation-defined behavior|implementation-defined
1314) [J.3 Implementation-defined behavior] An example of this behavior is the number of bits in a byte.|implementation-defined behavior|implementation-defined
1315) [J.3.12 Library functions] An example of this behavior is whether open streams with unwritten buffered data are flushed, open streams are closed, or temporary files are removed when the abort or _Exit function is called.|implementation-defined behavior|implementation-defined
1316) [J.4 Locale-specific behavior] An example of this behavior is the presence, meaning, and representation of additional multibyte characters in the execution character set beyond the basic character set.|locale-specific behavior|locale-specific
1317) [J.4 Locale-specific behavior] An example of this behavior is the direction of writing of successive printing characters.|locale-specific behavior|locale-specific
1318) [J.4 Locale-specific behavior] An example of this behavior is the decimal-point character.|locale-specific behavior|locale-specific
1319) [J.4 Locale-specific behavior] An example of this behavior is the sets of characters tested for by the isalpha, isblank, islower, ispunct, isspace, isupper, iswalpha, iswblank, iswlower, iswpunct, iswspace, or iswupper functions.|locale-specific behavior|locale-specific
1320) [J.4 Locale-specific behavior] An example of this behavior is additional subject sequences accepted by the numeric conversion functions.|locale-specific behavior|locale-specific
1321) [J.4 Locale-specific behavior] An example of this behavior is the collation sequence of the execution character set.|locale-specific behavior|locale-specific
1322) [J.4 Locale-specific behavior] An example of this behavior is the formats for time and date.|locale-specific behavior|locale-specific
1323) [J.5.5 Writable string literals] An example of this is modifiable/writable string-literals being allowed.|common-extension|extension
1324) [J.5.6 Other arithmetic types] An example of this is defining additional arithmetic types such as __int128 or double double.|common-extension|extension
1325) [J.5.7 Function pointer casts] An example of this is casting a pointer to an object or to void to a pointer to a function, allowing data to be invoked as a function.|common-extension|extension
1326) [J.5.7 Function pointer casts] An example of this is casting a pointer to a function to a pointer to an object or to void, allowing a function to be inspected or modified (for example, by a debugger).|common-extension|extension
1327) [J.5.10 The asm keyword] This keyword may be used to insert assembly language directly into the translator output.|asm{This is a common-extension and not a standard requirement.}
1328) [J.5.9 The fortran keyword] This function specifier may be used in a function declaration to indicate that calls suitable for FORTRAN should be generated, or that a different representation for the external name is to be generated.|fortran{This is a common-extension, not a standard requirement.}
1329) [J.5.13 Floating-point status flags] If any floating-point status flags are set on normal termination after all calls to functions registered by this function have been made, the implementation writes some diagnostics indicating the fact to the stderr stream, if it is still open.|atexit
1330) [K.3.1.4 Runtime-constraint violations] Implementations shall verify that these for a function ending with _s are not violated by the program.|run-time constraints
1331) [K.3.1.4 Runtime-constraint violations] If the runtime-constraint handler does return, the library function whose runtime-constraint was violated shall return this as given by the returns section in the function's specification.|indication of failure
1332) [L.3 Requirements] If the program performs a trap, the implementation is permitted to invoke this.|runtime-constraint handler{Such semantics are implementation-defined.}
