Стандарт языка Си С99 TC (1113411), страница 86
Текст из файла (страница 86)
The inclusion of any extension that may cause a strictly conformingprogram to become invalid renders an implementation nonconforming. Examples of suchextensions are new keywords, extra library functions declared in standard headers, orpredefined macros with names that do not begin with an underscore.J.5.1 Environment arguments1In a hosted environment, the main function receives a third argument, char *envp[],that points to a null-terminated array of pointers to char, each of which points to a stringthat provides information about the environment for this execution of the program(5.1.2.2.1).J.5.2 Specialized identifiers1Characters other than the underscore _, letters, and digits, that are not part of the basicsource character set (such as the dollar sign $, or characters in national character sets)may appear in an identifier (6.4.2).J.5.3 Lengths and cases of identifiers1All characters in identifiers (with or without external linkage) are significant (6.4.2).J.5.4 Scopes of identifiers1A function identifier, or the identifier of an object the declaration of which contains thekeyword extern, has file scope (6.2.1).J.5.5 Writable string literals1String literals are modifiable (in which case, identical string literals should denote distinctobjects) (6.4.5).J.5.6 Other arithmetic types1Additional arithmetic types, such as _ _int128 or double double, and theirappropriate conversions are defined (6.2.5, 6.3.1).
Additional floating types may havemore range or precision than long double, may be used for evaluating expressions ofother floating types, and may be used to define float_t or double_t.§J.5.6Portability issues513ISO/IEC 9899:TC3Committee Draft — Septermber 7, 2007WG14/N1256J.5.7 Function pointer casts1A pointer to an object or to void may be cast to a pointer to a function, allowing data tobe invoked as a function (6.5.4).2A pointer to a function may be cast to a pointer to an object or to void, allowing afunction to be inspected or modified (for example, by a debugger) (6.5.4).J.5.8 Extended bit-field types1A bit-field may be declared with a type other than _Bool, unsigned int, orsigned int, with an appropriate maximum width (6.7.2.1).J.5.9 The fortran keyword1The fortran function specifier may be used in a function declaration to indicate thatcalls suitable for FORTRAN should be generated, or that a different representation for theexternal name is to be generated (6.7.4).J.5.10 The asm keyword1The asm keyword may be used to insert assembly language directly into the translatoroutput (6.8).
The most common implementation is via a statement of the form:asm ( character-string-literal );J.5.11 Multiple external definitions1There may be more than one external definition for the identifier of an object, with orwithout the explicit use of the keyword extern; if the definitions disagree, or more thanone is initialized, the behavior is undefined (6.9.2).J.5.12 Predefined macro names1Macro names that do not begin with an underscore, describing the translation andexecution environments, are defined by the implementation before translation begins(6.10.8).J.5.13 Floating-point status flags1If any floating-point status flags are set on normal termination after all calls to functionsregistered by the atexit function have been made (see 7.20.4.3), the implementationwrites some diagnostics indicating the fact to the stderr stream, if it is still open,514Portability issues§J.5.13WG14/N1256Committee Draft — Septermber 7, 2007ISO/IEC 9899:TC3J.5.14 Extra arguments for signal handlers1Handlers for specific signals are called with extra arguments in addition to the signalnumber (7.14.1.1).J.5.15 Additional stream types and file-opening modes1Additional mappings from files to streams are supported (7.19.2).2Additional file-opening modes may be specified by characters appended to the modeargument of the fopen function (7.19.5.3).J.5.16 Defined file position indicator1The file position indicator is decremented by each successful call to the ungetc orungetwc function for a text stream, except if its value was zero before a call (7.19.7.11,7.24.3.10).J.5.17 Math error reporting1Functions declared in <complex.h> and <math.h> raise SIGFPE to report errorsinstead of, or in addition to, setting errno or raising floating-point exceptions (7.3,7.12).§J.5.17Portability issues515ISO/IEC 9899:TC3Committee Draft — Septermber 7, 2007WG14/N1256Bibliography1.‘‘The C Reference Manual’’ by Dennis M.
Ritchie, a version of which waspublished in The C Programming Language by Brian W. Kernighan and DennisM. Ritchie, Prentice-Hall, Inc., (1978). Copyright owned by AT&T.2.1984 /usr/group Standard by the /usr/group Standards Committee, Santa Clara,California, USA, November 1984.3.ANSI X3/TR−1−82 (1982), American National Dictionary for InformationProcessing Systems, Information Processing Systems Technical Report.4.ANSI/IEEE 754−1985, American National Standard for Binary Floating-PointArithmetic.5.ANSI/IEEE 854−1988, American National Standard for Radix-IndependentFloating-Point Arithmetic.6.IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems,second edition (previously designated IEC 559:1989).7.ISO 31−11:1992, Quantities and units — Part 11: Mathematical signs andsymbols for use in the physical sciences and technology.8.ISO/IEC 646:1991, Information technology — ISO 7-bit coded character set forinformation interchange.9.ISO/IEC 2382−1:1993, Information technology — Vocabulary — Part 1:Fundamental terms.10.ISO 4217:1995, Codes for the representation of currencies and funds.11.ISO 8601:1988, Data elements and interchange formats — Informationinterchange — Representation of dates and times.12.ISO/IEC 9899:1990, Programming languages — C.13.ISO/IEC 9899/COR1:1994, Technical Corrigendum 1.14.ISO/IEC 9899/COR2:1996, Technical Corrigendum 2.15.ISO/IEC 9899/AMD1:1995, Amendment 1 to ISO/IEC 9899:1990 C Integrity.16.ISO/IEC 9945−2:1993, Information technology — Portable Operating SystemInterface (POSIX) — Part 2: Shell and Utilities.17.ISO/IEC TR 10176:1998, Information technology — Guidelines for thepreparation of programming language standards.18.ISO/IEC 10646-1:1993, Information technology — Universal Multiple-OctetCoded Character Set (UCS) — Part 1: Architecture and Basic Multilingual Plane.516BibliographyWG14/N1256Committee Draft — Septermber 7, 2007ISO/IEC 9899:TC319.ISO/IEC 10646-1/COR1:1996,ISO/IEC 10646-1:1993.TechnicalCorrigendum1to20.ISO/IEC 10646-1/COR2:1998,ISO/IEC 10646-1:1993.TechnicalCorrigendum2to21.ISO/IEC 10646-1/AMD1:1996, Amendment 1 to ISO/IEC 10646-1:1993Transformation Format for 16 planes of group 00 (UTF-16).22.ISO/IEC 10646-1/AMD2:1996, Amendment 2 to ISO/IEC 10646-1:1993 UCSTransformation Format 8 (UTF-8).23.ISO/IEC 10646-1/AMD3:1996, Amendment 3 to ISO/IEC 10646-1:1993.24.ISO/IEC 10646-1/AMD4:1996, Amendment 4 to ISO/IEC 10646-1:1993.25.ISO/IEC 10646-1/AMD5:1998, Amendment 5 to ISO/IEC 10646-1:1993 Hangulsyllables.26.ISO/IEC 10646-1/AMD6:1997, Amendment 6 to ISO/IEC 10646-1:1993 Tibetan.27.ISO/IEC 10646-1/AMD7:1997, Amendment 7 to ISO/IEC 10646-1:1993 33additional characters.28.ISO/IEC 10646-1/AMD8:1997, Amendment 8 to ISO/IEC 10646-1:1993.29.ISO/IEC 10646-1/AMD9:1997,Identifiers for characters.30.ISO/IEC 10646-1/AMD10:1998, Amendment 10 to ISO/IEC 10646-1:1993Ethiopic.31.ISO/IEC 10646-1/AMD11:1998, Amendment 11 to ISO/IEC 10646-1:1993Unified Canadian Aboriginal Syllabics.32.ISO/IEC 10646-1/AMD12:1998, Amendment 12 to ISO/IEC 10646-1:1993Cherokee.33.ISO/IEC 10967−1:1994, Information technology — Language independentarithmetic — Part 1: Integer and floating point arithmetic.AmendmentBibliography9toISO/IEC 10646-1:1993517ISO/IEC 9899:TC3518Committee Draft — Septermber 7, 2007BibliographyWG14/N1256WG14/N1256Committee Draft — Septermber 7, 2007ISO/IEC 9899:TC3Index x , 3.18 x , 3.19, (comma punctuator), 6.5.2, 6.7, 6.7.2.1, 6.7.2.2,6.7.2.3, 6.7.8− (subtraction operator), 6.5.6, F.3, G.5.2− (unary minus operator), 6.5.3.3, F.3−− (postfix decrement operator), 6.3.2.1, 6.5.2.4−− (prefix decrement operator), 6.3.2.1, 6.5.3.1−= (subtraction assignment operator), 6.5.16.2−> (structure/union pointer operator), 6.5.2.3.
(structure/union member operator), 6.3.2.1,6.5.2.3. punctuator, 6.7.8... (ellipsis punctuator), 6.5.2.2, 6.7.5.3, 6.10.3/ (division operator), 6.5.5, F.3, G.5.1/* */ (comment delimiters), 6.4.9// (comment delimiter), 6.4.9/= (division assignment operator), 6.5.16.2: (colon punctuator), 6.7.2.1:> (alternative spelling of ]), 6.4.6; (semicolon punctuator), 6.7, 6.7.2.1, 6.8.3,6.8.5, 6.8.6< (less-than operator), 6.5.8<% (alternative spelling of {), 6.4.6<: (alternative spelling of [), 6.4.6<< (left-shift operator), 6.5.7<<= (left-shift assignment operator), 6.5.16.2<= (less-than-or-equal-to operator), 6.5.8<assert.h> header, 7.2, B.1<complex.h> header, 5.2.4.2.2, 7.3, 7.22,7.26.1, G.6, J.5.17<ctype.h> header, 7.4, 7.26.2<errno.h> header, 7.5, 7.26.3<fenv.h> header, 5.1.2.3, 5.2.4.2.2, 7.6, 7.12, F,H<float.h> header, 4, 5.2.4.2.2, 7.7, 7.20.1.3,7.24.4.1.1<inttypes.h> header, 7.8, 7.26.4<iso646.h> header, 4, 7.9<limits.h> header, 4, 5.2.4.2.1, 6.2.5, 7.10<locale.h> header, 7.11, 7.26.5<math.h> header, 5.2.4.2.2, 6.5, 7.12, 7.22, F,F.9, J.5.17<setjmp.h> header, 7.13<signal.h> header, 7.14, 7.26.6<stdarg.h> header, 4, 6.7.5.3, 7.15<stdbool.h> header, 4, 7.16, 7.26.7, H<stddef.h> header, 4, 6.3.2.1, 6.3.2.3, 6.4.4.4,6.4.5, 6.5.3.4, 6.5.6, 7.17<stdint.h> header, 4, 5.2.4.2, 6.10.1, 7.8,7.18, 7.26.8! (logical negation operator), 6.5.3.3!= (inequality operator), 6.5.9# operator, 6.10.3.2# preprocessing directive, 6.10.7# punctuator, 6.10## operator, 6.10.3.3#define preprocessing directive, 6.10.3#elif preprocessing directive, 6.10.1#else preprocessing directive, 6.10.1#endif preprocessing directive, 6.10.1#error preprocessing directive, 4, 6.10.5#if preprocessing directive, 5.2.4.2.1, 5.2.4.2.2,6.10.1, 7.1.4#ifdef preprocessing directive, 6.10.1#ifndef preprocessing directive, 6.10.1#include preprocessing directive, 5.1.1.2,6.10.2#line preprocessing directive, 6.10.4#pragma preprocessing directive, 6.10.6#undef preprocessing directive, 6.10.3.5, 7.1.3,7.1.4% (remainder operator), 6.5.5%: (alternative spelling of #), 6.4.6%:%: (alternative spelling of ##), 6.4.6%= (remainder assignment operator), 6.5.16.2%> (alternative spelling of }), 6.4.6& (address operator), 6.3.2.1, 6.5.3.2& (bitwise AND operator), 6.5.10&& (logical AND operator), 6.5.13&= (bitwise AND assignment operator), 6.5.16.2' ' (space character), 5.1.1.2, 5.2.1, 6.4, 7.4.1.3,7.4.1.10, 7.25.2.1.3( ) (cast operator), 6.5.4( ) (function-call operator), 6.5.2.2( ) (parentheses punctuator), 6.7.5.3, 6.8.4, 6.8.5( ){ } (compound-literal operator), 6.5.2.5* (asterisk punctuator), 6.7.5.1, 6.7.5.2* (indirection operator), 6.5.2.1, 6.5.3.2* (multiplication operator), 6.5.5, F.3, G.5.1*= (multiplication assignment operator), 6.5.16.2+ (addition operator), 6.5.2.1, 6.5.3.2, 6.5.6, F.3,G.5.2+ (unary plus operator), 6.5.3.3++ (postfix increment operator), 6.3.2.1, 6.5.2.4++ (prefix increment operator), 6.3.2.1, 6.5.3.1+= (addition assignment operator), 6.5.16.2, (comma operator), 6.5.17Index519ISO/IEC 9899:TC3Committee Draft — Septermber 7, 2007_ _cplusplus macro, 6.10.8_ _DATE_ _ macro, 6.10.8_ _FILE_ _ macro, 6.10.8, 7.2.1.1_ _func_ _ identifier, 6.4.2.2, 7.2.1.1_ _LINE_ _ macro, 6.10.8, 7.2.1.1_ _STDC_, 6.11.9_ _STDC_ _ macro, 6.10.8_ _STDC_CONSTANT_MACROS macro, 7.18.4_ _STDC_FORMAT_MACROS macro, 7.8.1_ _STDC_HOSTED_ _ macro, 6.10.8_ _STDC_IEC_559_ _ macro, 6.10.8, F.1_ _STDC_IEC_559_COMPLEX_ _ macro,6.10.8, G.1_ _STDC_ISO_10646_ _ macro, 6.10.8_ _STDC_LIMIT_MACROS macro, 7.18.2,7.18.3_ _STDC_MB_MIGHT_NEQ_WC_ _ macro,6.10.8, 7.17_ _STDC_VERSION_ _ macro, 6.10.8_ _TIME_ _ macro, 6.10.8_ _VA_ARGS_ _ identifier, 6.10.3, 6.10.3.1_Bool type, 6.2.5, 6.3.1.1, 6.3.1.2, 6.7.2_Bool type conversions, 6.3.1.2_Complex types, 6.2.5, 6.7.2, 7.3.1, G_Complex_I macro, 7.3.1_Exit function, 7.20.4.4_Imaginary keyword, G.2_Imaginary types, 7.3.1, G_Imaginary_I macro, 7.3.1, G.6_IOFBF macro, 7.19.1, 7.19.5.5, 7.19.5.6_IOLBF macro, 7.19.1, 7.19.5.6_IONBF macro, 7.19.1, 7.19.5.5, 7.19.5.6_Pragma operator, 5.1.1.2, 6.10.9{ } (braces punctuator), 6.7.2.2, 6.7.2.3, 6.7.8,6.8.2{ } (compound-literal operator), 6.5.2.5| (bitwise inclusive OR operator), 6.5.12|= (bitwise inclusive OR assignment operator),6.5.16.2|| (logical OR operator), 6.5.14~ (bitwise complement operator), 6.5.3.3<stdio.h> header, 5.2.4.2.2, 7.19, 7.26.9, F<stdlib.h> header, 5.2.4.2.2, 7.20, 7.26.10, F<string.h> header, 7.21, 7.26.11<tgmath.h> header, 7.22, G.7<time.h> header, 7.23<wchar.h> header, 5.2.4.2.2, 7.19.1, 7.24,7.26.12, F<wctype.h> header, 7.25, 7.26.13= (equal-sign punctuator), 6.7, 6.7.2.2, 6.7.8= (simple assignment operator), 6.5.16.1== (equality operator), 6.5.9> (greater-than operator), 6.5.8>= (greater-than-or-equal-to operator), 6.5.8>> (right-shift operator), 6.5.7>>= (right-shift assignment operator), 6.5.16.2? : (conditional operator), 6.5.15?? (trigraph sequences), 5.2.1.1[ ] (array subscript operator), 6.5.2.1, 6.5.3.2[ ] (brackets punctuator), 6.7.5.2, 6.7.8\ (backslash character), 5.1.1.2, 5.2.1, 6.4.4.4\ (escape character), 6.4.4.4\" (double-quote escape sequence), 6.4.4.4,6.4.5, 6.10.9\\ (backslash escape sequence), 6.4.4.4, 6.10.9\' (single-quote escape sequence), 6.4.4.4, 6.4.5\0 (null character), 5.2.1, 6.4.4.4, 6.4.5padding of binary stream, 7.19.2\? (question-mark escape sequence), 6.4.4.4\a (alert escape sequence), 5.2.2, 6.4.4.4\b (backspace escape sequence), 5.2.2, 6.4.4.4\f (form-feed escape sequence), 5.2.2, 6.4.4.4,7.4.1.10\n (new-line escape sequence), 5.2.2, 6.4.4.4,7.4.1.10\octal digits (octal-character escape sequence),6.4.4.4\r (carriage-return escape sequence), 5.2.2,6.4.4.4, 7.4.1.10\t (horizontal-tab escape sequence), 5.2.2,6.4.4.4, 7.4.1.3, 7.4.1.10, 7.25.2.1.3\U (universal character names), 6.4.3\u (universal character names), 6.4.3\v (vertical-tab escape sequence), 5.2.2, 6.4.4.4,7.4.1.10\x hexadecimal digits (hexadecimal-characterescape sequence), 6.4.4.4^ (bitwise exclusive OR operator), 6.5.11^= (bitwise exclusive OR assignment operator),6.5.16.2_ _bool_true_false_are_definedmacro, 7.16520WG14/N1256abort function, 7.2.1.1, 7.14.1.1, 7.19.3,7.20.4.1abs function, 7.20.6.1absolute-value functionscomplex, 7.3.8, G.6.4integer, 7.8.2.1, 7.20.6.1real, 7.12.7, F.9.4abstract declarator, 6.7.6abstract machine, 5.1.2.3IndexWG14/N1256Committee Draft — Septermber 7, 2007access, 3.1, 6.7.3accuracy, see floating-point accuracyacos functions, 7.12.4.1, F.9.1.1acos type-generic macro, 7.22acosh functions, 7.12.5.1, F.9.2.1acosh type-generic macro, 7.22active position, 5.2.2actual argument, 3.3actual parameter (deprecated), 3.3addition assignment operator (+=), 6.5.16.2addition operator (+), 6.5.2.1, 6.5.3.2, 6.5.6, F.3,G.5.2additive expressions, 6.5.6, G.5.2address constant, 6.6address operator (&), 6.3.2.1, 6.5.3.2aggregate initialization, 6.7.8aggregate types, 6.2.5alert escape sequence (\a), 5.2.2, 6.4.4.4aliasing, 6.5alignment, 3.2pointer, 6.2.5, 6.3.2.3structure/union member, 6.7.2.1allocated storage, order and contiguity, 7.20.3and macro, 7.9AND operatorsbitwise (&), 6.5.10bitwise assignment (&=), 6.5.16.2logical (&&), 6.5.13and_eq macro, 7.9ANSI/IEEE 754, F.1ANSI/IEEE 854, F.1argc (main function parameter), 5.1.2.2.1argument, 3.3array, 6.9.1default promotions, 6.5.2.2function, 6.5.2.2, 6.9.1macro, substitution, 6.10.3.1argument, complex, 7.3.9.1argv (main function parameter), 5.1.2.2.1arithmetic constant expression, 6.6arithmetic conversions, usual, see usual arithmeticconversionsarithmetic operatorsadditive, 6.5.6, G.5.2bitwise, 6.5.10, 6.5.11, 6.5.12increment and decrement, 6.5.2.4, 6.5.3.1multiplicative, 6.5.5, G.5.1shift, 6.5.7unary, 6.5.3.3arithmetic types, 6.2.5arithmetic, pointer, 6.5.6ISO/IEC 9899:TC3arrayargument, 6.9.1declarator, 6.7.5.2initialization, 6.7.8multidimensional, 6.5.2.1parameter, 6.9.1storage order, 6.5.2.1subscript operator ([ ]), 6.5.2.1, 6.5.3.2subscripting, 6.5.2.1type, 6.2.5type conversion, 6.3.2.1variable length, 6.7.5, 6.7.5.2arrow operator (−>), 6.5.2.3as−if rule, 5.1.2.3ASCII code set, 5.2.1.1asctime function, 7.23.3.1asin functions, 7.12.4.2, F.9.1.2asin type-generic macro, 7.22, G.7asinh functions, 7.12.5.2, F.9.2.2asinh type-generic macro, 7.22, G.7asm keyword, J.5.10assert macro, 7.2.1.1assert.h header, 7.2, B.1assignmentcompound, 6.5.16.2conversion, 6.5.16.1expression, 6.5.16operators, 6.3.2.1, 6.5.16simple, 6.5.16.1associativity of operators, 6.5asterisk punctuator (*), 6.7.5.1, 6.7.5.2atan functions, 7.12.4.3, F.9.1.3atan type-generic macro, 7.22, G.7atan2 functions, 7.12.4.4, F.9.1.4atan2 type-generic macro, 7.22atanh functions, 7.12.5.3, F.9.2.3atanh type-generic macro, 7.22, G.7atexit function, 7.20.4.2, 7.20.4.3, 7.20.4.4,J.5.13atof function, 7.20.1, 7.20.1.1atoi function, 7.20.1, 7.20.1.2atol function, 7.20.1, 7.20.1.2atoll function, 7.20.1, 7.20.1.2auto storage-class specifier, 6.7.1, 6.9automatic storage duration, 5.2.3, 6.2.4backslash character (\), 5.1.1.2, 5.2.1, 6.4.4.4backslash escape sequence (\\), 6.4.4.4, 6.10.9backspace escape sequence (\b), 5.2.2, 6.4.4.4basic character set, 3.6, 3.7.2, 5.2.1basic types, 6.2.5Index521ISO/IEC 9899:TC3Committee Draft — Septermber 7, 2007behavior, 3.4binary streams, 7.19.2, 7.19.7.11, 7.19.9.2,7.19.9.4bit, 3.5high order, 3.6low order, 3.6bit-field, 6.7.2.1bitand macro, 7.9bitor macro, 7.9bitwise operators, 6.5AND, 6.5.10AND assignment (&=), 6.5.16.2complement (~), 6.5.3.3exclusive OR, 6.5.11exclusive OR assignment (^=), 6.5.16.2inclusive OR, 6.5.12inclusive OR assignment (|=), 6.5.16.2shift, 6.5.7blank character, 7.4.1.3block, 6.8, 6.8.2, 6.8.4, 6.8.5block scope, 6.2.1block structure, 6.2.1bold type convention, 6.1bool macro, 7.16boolean type, 6.3.1.2boolean type conversion, 6.3.1.1, 6.3.1.2braces punctuator ({ }), 6.7.2.2, 6.7.2.3, 6.7.8,6.8.2brackets operator ([ ]), 6.5.2.1, 6.5.3.2brackets punctuator ([ ]), 6.7.5.2, 6.7.8branch cuts, 7.3.3break statement, 6.8.6.3broken-down time, 7.23.1, 7.23.2.3, 7.23.3,7.23.3.1, 7.23.3.3, 7.23.3.4, 7.23.3.5bsearch function, 7.20.5, 7.20.5.1btowc function, 7.24.6.1.1BUFSIZ macro, 7.19.1, 7.19.2, 7.19.5.5byte, 3.6, 6.5.3.4byte input/output functions, 7.19.1byte-oriented stream, 7.19.2call by value, 6.5.2.2calloc function, 7.20.3, 7.20.3.1, 7.20.3.2,7.20.3.4carg functions, 7.3.9.1, G.6carg type-generic macro, 7.22, G.7carriage-return escape sequence (\r), 5.2.2,6.4.4.4, 7.4.1.10case label, 6.8.1, 6.8.4.2case mapping functionscharacter, 7.4.2wide character, 7.25.3.1extensible, 7.25.3.2casin functions, 7.3.5.2, G.6type-generic macro for, 7.22casinh functions, 7.3.6.2, G.6.2.2type-generic macro for, 7.22cast expression, 6.5.4cast operator (( )), 6.5.4catan functions, 7.3.5.3, G.6type-generic macro for, 7.22catanh functions, 7.3.6.3, G.6.2.3type-generic macro for, 7.22cbrt functions, 7.12.7.1, F.9.4.1cbrt type-generic macro, 7.22ccos functions, 7.3.5.4, G.6type-generic macro for, 7.22ccosh functions, 7.3.6.4, G.6.2.4type-generic macro for, 7.22ceil functions, 7.12.9.1, F.9.6.1ceil type-generic macro, 7.22cerf function, 7.26.1cerfc function, 7.26.1cexp functions, 7.3.7.1, G.6.3.1type-generic macro for, 7.22cexp2 function, 7.26.1cexpm1 function, 7.26.1char type, 6.2.5, 6.3.1.1, 6.7.2char type conversion, 6.3.1.1, 6.3.1.3, 6.3.1.4,6.3.1.8CHAR_BIT macro, 5.2.4.2.1CHAR_MAX macro, 5.2.4.2.1, 7.11.2.1CHAR_MIN macro, 5.2.4.2.1character, 3.7, 3.7.1character array initialization, 6.7.8character case mapping functions, 7.4.2wide character, 7.25.3.1extensible, 7.25.3.2character classification functions, 7.4.1wide character, 7.25.2.1extensible, 7.25.2.2character constant, 5.1.1.2, 5.2.1, 6.4.4.4C program, 5.1.1.1C++, 7.8.1, 7.18.2, 7.18.3, 7.18.4cabs functions, 7.3.8.1, G.6type-generic macro for, 7.22cacos functions, 7.3.5.1, G.6.1.1type-generic macro for, 7.22cacosh functions, 7.3.6.1, G.6.2.1type-generic macro for, 7.22calendar time, 7.23.1, 7.23.2.2, 7.23.2.3, 7.23.2.4,7.23.3.2, 7.23.3.3, 7.23.3.4522WG14/N1256IndexWG14/N1256Committee Draft — Septermber 7, 2007ISO/IEC 9899:TC3complex.h header, 5.2.4.2.2, 7.3, 7.22, 7.26.1,G.6, J.5.17compliance, see conformancecomponents of time, 7.23.1composite type, 6.2.7compound assignment, 6.5.16.2compound literals, 6.5.2.5compound statement, 6.8.2compound-literal operator (( ){ }), 6.5.2.5concatenation functionsstring, 7.21.3wide string, 7.24.4.3concatenation, preprocessing, see preprocessingconcatenationconceptual models, 5.1conditional inclusion, 6.10.1conditional operator (? :), 6.5.15conformance, 4conj functions, 7.3.9.3, G.6conj type-generic macro, 7.22const type qualifier, 6.7.3const-qualified type, 6.2.5, 6.3.2.1, 6.7.3constant expression, 6.6, F.7.4constants, 6.4.4as primary expression, 6.5.1character, 6.4.4.4enumeration, 6.2.1, 6.4.4.3floating, 6.4.4.2hexadecimal, 6.4.4.1integer, 6.4.4.1octal, 6.4.4.1constraint, 3.8, 4content of structure/union/enumeration, 6.7.2.3contiguity of allocated storage, 7.20.3continue statement, 6.8.6.2contracted expression, 6.5, 7.12.2, F.6control character, 5.2.1, 7.4control wide character, 7.25.2conversion, 6.3arithmetic operands, 6.3.1array argument, 6.9.1array parameter, 6.9.1arrays, 6.3.2.1boolean, 6.3.1.2boolean, characters, and integers, 6.3.1.1by assignment, 6.5.16.1by return statement, 6.8.6.4complex types, 6.3.1.6explicit, 6.3function, 6.3.2.1function argument, 6.5.2.2, 6.9.1character display semantics, 5.2.2character handling header, 7.4, 7.11.1.1character input/output functions, 7.19.7wide character, 7.24.3character sets, 5.2.1character string literal, see string literalcharacter type conversion, 6.3.1.1character types, 6.2.5, 6.7.8cimag functions, 7.3.9.2, 7.3.9.4, G.6cimag type-generic macro, 7.22, G.7cis function, G.6classification functionscharacter, 7.4.1floating-point, 7.12.3wide character, 7.25.2.1extensible, 7.25.2.2clearerr function, 7.19.10.1clgamma function, 7.26.1clock function, 7.23.2.1clock_t type, 7.23.1, 7.23.2.1CLOCKS_PER_SEC macro, 7.23.1, 7.23.2.1clog functions, 7.3.7.2, G.6.3.2type-generic macro for, 7.22clog10 function, 7.26.1clog1p function, 7.26.1clog2 function, 7.26.1collating sequences, 5.2.1colon punctuator (:), 6.7.2.1comma operator (,), 6.5.17comma punctuator (,), 6.5.2, 6.7, 6.7.2.1, 6.7.2.2,6.7.2.3, 6.7.8command processor, 7.20.4.6comment delimiters (/* */ and //), 6.4.9comments, 5.1.1.2, 6.4, 6.4.9common extensions, J.5common initial sequence, 6.5.2.3common real type, 6.3.1.8common warnings, Icomparison functions, 7.20.5, 7.20.5.1, 7.20.5.2string, 7.21.4wide string, 7.24.4.4comparison macros, 7.12.14comparison, pointer, 6.5.8compatible type, 6.2.7, 6.7.2, 6.7.3, 6.7.5compl macro, 7.9complement operator (~), 6.5.3.3complex macro, 7.3.1complex numbers, 6.2.5, Gcomplex type conversion, 6.3.1.6, 6.3.1.7complex type domain, 6.2.5complex types, 6.2.5, 6.7.2, GIndex523∗ISO/IEC 9899:TC3Committee Draft — Septermber 7, 2007function designators, 6.3.2.1function parameter, 6.9.1imaginary, G.4.1imaginary and complex, G.4.3implicit, 6.3lvalues, 6.3.2.1pointer, 6.3.2.1, 6.3.2.3real and complex, 6.3.1.7real and imaginary, G.4.2real floating and integer, 6.3.1.4, F.3, F.4real floating types, 6.3.1.5, F.3signed and unsigned integers, 6.3.1.3usual arithmetic, see usual arithmeticconversionsvoid type, 6.3.2.2conversion functionsmultibyte/wide character, 7.20.7extended, 7.24.6restartable, 7.24.6.3multibyte/wide string, 7.20.8restartable, 7.24.6.4numeric, 7.8.2.3, 7.20.1wide string, 7.8.2.4, 7.24.4.1single byte/wide character, 7.24.6.1time, 7.23.3wide character, 7.24.5conversion specifier, 7.19.6.1, 7.19.6.2, 7.24.2.1,7.24.2.2conversion state, 7.20.7, 7.24.6, 7.24.6.2.1,7.24.6.3, 7.24.6.3.2, 7.24.6.3.3, 7.24.6.4,7.24.6.4.1, 7.24.6.4.2conversion state functions, 7.24.6.2copying functionsstring, 7.21.2wide string, 7.24.4.2copysign functions, 7.3.9.4, 7.12.11.1, F.3,F.9.8.1copysign type-generic macro, 7.22correctly rounded result, 3.9corresponding real type, 6.2.5cos functions, 7.12.4.5, F.9.1.5cos type-generic macro, 7.22, G.7cosh functions, 7.12.5.4, F.9.2.4cosh type-generic macro, 7.22, G.7cpow functions, 7.3.8.2, G.6.4.1type-generic macro for, 7.22cproj functions, 7.3.9.4, G.6cproj type-generic macro, 7.22creal functions, 7.3.9.5, G.6creal type-generic macro, 7.22, G.7csin functions, 7.3.5.5, G.6524WG14/N1256type-generic macro for, 7.22csinh functions, 7.3.6.5, G.6.2.5type-generic macro for, 7.22csqrt functions, 7.3.8.3, G.6.4.2type-generic macro for, 7.22ctan functions, 7.3.5.6, G.6type-generic macro for, 7.22ctanh functions, 7.3.6.6, G.6.2.6type-generic macro for, 7.22ctgamma function, 7.26.1ctime function, 7.23.3.2ctype.h header, 7.4, 7.26.2current object, 6.7.8CX_LIMITED_RANGE pragma, 6.10.6, 7.3.4data stream, see streamsdate and time header, 7.23Daylight Saving Time, 7.23.1DBL_DIG macro, 5.2.4.2.2DBL_EPSILON macro, 5.2.4.2.2DBL_MANT_DIG macro, 5.2.4.2.2DBL_MAX macro, 5.2.4.2.2DBL_MAX_10_EXP macro, 5.2.4.2.2DBL_MAX_EXP macro, 5.2.4.2.2DBL_MIN macro, 5.2.4.2.2DBL_MIN_10_EXP macro, 5.2.4.2.2DBL_MIN_EXP macro, 5.2.4.2.2decimal constant, 6.4.4.1decimal digit, 5.2.1decimal-point character, 7.1.1, 7.11.2.1DECIMAL_DIG macro, 5.2.4.2.2, 7.19.6.1,7.20.1.3, 7.24.2.1, 7.24.4.1.1, F.5declaration specifiers, 6.7declarations, 6.7function, 6.7.5.3pointer, 6.7.5.1structure/union, 6.7.2.1typedef, 6.7.7declarator, 6.7.5abstract, 6.7.6declarator type derivation, 6.2.5, 6.7.5decrement operators, see arithmetic operators,increment and decrementdefault argument promotions, 6.5.2.2default initialization, 6.7.8default label, 6.8.1, 6.8.4.2define preprocessing directive, 6.10.3defined operator, 6.10.1, 6.10.8definition, 6.7function, 6.9.1derived declarator types, 6.2.5IndexWG14/N1256Committee Draft — Septermber 7, 2007ISO/IEC 9899:TC3end-of-file indicator, 7.19.1, 7.19.5.3, 7.19.7.1,7.19.7.5, 7.19.7.6, 7.19.7.11, 7.19.9.2,7.19.9.3, 7.19.10.1, 7.19.10.2, 7.24.3.1,7.24.3.10end-of-file macro, see EOF macroend-of-line indicator, 5.2.1endif preprocessing directive, 6.10.1enum type, 6.2.5, 6.7.2, 6.7.2.2enumerated type, 6.2.5enumeration, 6.2.5, 6.7.2.2enumeration constant, 6.2.1, 6.4.4.3enumeration content, 6.7.2.3enumeration members, 6.7.2.2enumeration specifiers, 6.7.2.2enumeration tag, 6.2.3, 6.7.2.3enumerator, 6.7.2.2environment, 5environment functions, 7.20.4environment list, 7.20.4.5environmental considerations, 5.2environmental limits, 5.2.4, 7.13.1.1, 7.19.2,7.19.3, 7.19.4.4, 7.19.6.1, 7.20.2.1, 7.20.4.2,7.24.2.1EOF macro, 7.4, 7.19.1, 7.19.5.1, 7.19.5.2,7.19.6.2, 7.19.6.7, 7.19.6.9, 7.19.6.11,7.19.6.14, 7.19.7.1, 7.19.7.3, 7.19.7.4,7.19.7.5, 7.19.7.6, 7.19.7.9, 7.19.7.10,7.19.7.11, 7.24.1, 7.24.2.2, 7.24.2.4,7.24.2.6, 7.24.2.8, 7.24.2.10, 7.24.2.12,7.24.3.4, 7.24.6.1.1, 7.24.6.1.2equal-sign punctuator (=), 6.7, 6.7.2.2, 6.7.8equal-to operator, see equality operatorequality expressions, 6.5.9equality operator (==), 6.5.9ERANGE macro, 7.5, 7.8.2.3, 7.8.2.4, 7.12.1,7.20.1.3, 7.20.1.4, 7.24.4.1.1, 7.24.4.1.2, seealso range errorerf functions, 7.12.8.1, F.9.5.1erf type-generic macro, 7.22erfc functions, 7.12.8.2, F.9.5.2erfc type-generic macro, 7.22errno macro, 7.1.3, 7.3.2, 7.5, 7.8.2.3, 7.8.2.4,7.12.1, 7.14.1.1, 7.19.3, 7.19.9.3, 7.19.10.4,7.20.1, 7.20.1.3, 7.20.1.4, 7.21.6.2, 7.24.3.1,7.24.3.3, 7.24.4.1.1, 7.24.4.1.2, 7.24.6.3.2,7.24.6.3.3, 7.24.6.4.1, 7.24.6.4.2, J.5.17errno.h header, 7.5, 7.26.3errordomain, see domain errorencoding, see encoding errorrange, see range errorderived types, 6.2.5designated initializer, 6.7.8destringizing, 6.10.9device input/output, 5.1.2.3diagnostic message, 3.10, 5.1.1.3diagnostics, 5.1.1.3diagnostics header, 7.2difftime function, 7.23.2.2digit, 5.2.1, 7.4digraphs, 6.4.6direct input/output functions, 7.19.8display device, 5.2.2div function, 7.20.6.2div_t type, 7.20division assignment operator (/=), 6.5.16.2division operator (/), 6.5.5, F.3, G.5.1do statement, 6.8.5.2documentation of implementation, 4domain error, 7.12.1, 7.12.4.1, 7.12.4.2, 7.12.4.4,7.12.5.1, 7.12.5.3, 7.12.6.5, 7.12.6.7,7.12.6.8, 7.12.6.9, 7.12.6.10, 7.12.6.11,7.12.7.4, 7.12.7.5, 7.12.8.4, 7.12.9.5,7.12.9.7, 7.12.10.1, 7.12.10.2, 7.12.10.3dot operator (.), 6.5.2.3double _Complex type, 6.2.5double _Complex type conversion, 6.3.1.6,6.3.1.7, 6.3.1.8double _Imaginary type, G.2double type, 6.2.5, 6.4.4.2, 6.7.2, 7.19.6.2,7.24.2.2, F.2double type conversion, 6.3.1.4, 6.3.1.5, 6.3.1.7,6.3.1.8double-precision arithmetic, 5.1.2.3double-quote escape sequence (\"), 6.4.4.4,6.4.5, 6.10.9double_t type, 7.12, J.5.6EDOM macro, 7.5, 7.12.1, see also domain erroreffective type, 6.5EILSEQ macro, 7.5, 7.19.3, 7.24.3.1, 7.24.3.3,7.24.6.3.2, 7.24.6.3.3, 7.24.6.4.1, 7.24.6.4.2,see also encoding errorelement type, 6.2.5elif preprocessing directive, 6.10.1ellipsis punctuator (...), 6.5.2.2, 6.7.5.3, 6.10.3else preprocessing directive, 6.10.1else statement, 6.8.4.1empty statement, 6.8.3encoding error, 7.19.3, 7.24.3.1, 7.24.3.3,7.24.6.3.2, 7.24.6.3.3, 7.24.6.4.1, 7.24.6.4.2end-of-file, 7.24.1Index525ISO/IEC 9899:TC3Committee Draft — Septermber 7, 2007extended characters, 5.2.1extended integer types, 6.2.5, 6.3.1.1, 6.4.4.1,7.18extended multibyte/wide character conversionutilities, 7.24.6extensible wide character case mapping functions,7.25.3.2extensible wide character classification functions,7.25.2.2extern storage-class specifier, 6.2.2, 6.7.1external definition, 6.9external identifiers, underscore, 7.1.3external linkage, 6.2.2external name, 6.4.2.1external object definitions, 6.9.2error conditions, 7.12.1error functions, 7.12.8, F.9.5error indicator, 7.19.1, 7.19.5.3, 7.19.7.1,7.19.7.3, 7.19.7.5, 7.19.7.6, 7.19.7.8,7.19.7.9, 7.19.9.2, 7.19.10.1, 7.19.10.3,7.24.3.1, 7.24.3.3error preprocessing directive, 4, 6.10.5error-handling functions, 7.19.10, 7.21.6.2escape character (\), 6.4.4.4escape sequences, 5.2.1, 5.2.2, 6.4.4.4, 6.11.4evaluation format, 5.2.4.2.2, 6.4.4.2, 7.12evaluation method, 5.2.4.2.2, 6.5, F.7.5evaluation order, 6.5exceptional condition, 6.5, 7.12.1excess precision, 5.2.4.2.2, 6.3.1.5, 6.3.1.8,6.8.6.4excess range, 5.2.4.2.2, 6.3.1.5, 6.3.1.8, 6.8.6.4exclusive OR operatorsbitwise (^), 6.5.11bitwise assignment (^=), 6.5.16.2executable program, 5.1.1.1execution character set, 5.2.1execution environment, 5, 5.1.2, see alsoenvironmental limitsexecution sequence, 5.1.2.3, 6.8exit function, 5.1.2.2.3, 7.19.3, 7.20, 7.20.4.3,7.20.4.4EXIT_FAILURE macro, 7.20, 7.20.4.3EXIT_SUCCESS macro, 7.20, 7.20.4.3exp functions, 7.12.6.1, F.9.3.1exp type-generic macro, 7.22exp2 functions, 7.12.6.2, F.9.3.2exp2 type-generic macro, 7.22explicit conversion, 6.3expm1 functions, 7.12.6.3, F.9.3.3expm1 type-generic macro, 7.22exponent part, 6.4.4.2exponential functionscomplex, 7.3.7, G.6.3real, 7.12.6, F.9.3expression, 6.5assignment, 6.5.16cast, 6.5.4constant, 6.6full, 6.8order of evaluation, 6.5parenthesized, 6.5.1primary, 6.5.1unary, 6.5.3expression statement, 6.8.3extended character set, 3.7.2, 5.2.1, 5.2.1.2526WG14/N1256fabs functions, 7.12.7.2, F.9.4.2fabs type-generic macro, 7.22, G.7false macro, 7.16fclose function, 7.19.5.1fdim functions, 7.12.12.1, F.9.9.1fdim type-generic macro, 7.22FE_ALL_EXCEPT macro, 7.6FE_DFL_ENV macro, 7.6FE_DIVBYZERO macro, 7.6, 7.12, F.3FE_DOWNWARD macro, 7.6, F.3FE_INEXACT macro, 7.6, F.3FE_INVALID macro, 7.6, 7.12, F.3FE_OVERFLOW macro, 7.6, 7.12, F.3FE_TONEAREST macro, 7.6, F.3FE_TOWARDZERO macro, 7.6, F.3FE_UNDERFLOW macro, 7.6, F.3FE_UPWARD macro, 7.6, F.3feclearexcept function, 7.6.2, 7.6.2.1, F.3fegetenv function, 7.6.4.1, 7.6.4.3, 7.6.4.4, F.3fegetexceptflag function, 7.6.2, 7.6.2.2, F.3fegetround function, 7.6, 7.6.3.1, F.3feholdexcept function, 7.6.4.2, 7.6.4.3,7.6.4.4, F.3fenv.h header, 5.1.2.3, 5.2.4.2.2, 7.6, 7.12, F, HFENV_ACCESS pragma, 6.10.6, 7.6.1, F.7, F.8,F.9fenv_t type, 7.6feof function, 7.19.10.2feraiseexcept function, 7.6.2, 7.6.2.3, F.3ferror function, 7.19.10.3fesetenv function, 7.6.4.3, F.3fesetexceptflag function, 7.6.2, 7.6.2.4, F.3fesetround function, 7.6, 7.6.3.2, F.3fetestexcept function, 7.6.2, 7.6.2.5, F.3feupdateenv function, 7.6.4.2, 7.6.4.4, F.3IndexWG14/N1256Committee Draft — Septermber 7, 2007ISO/IEC 9899:TC3floating-point status flag, 7.6, F.7.6floor functions, 7.12.9.2, F.9.6.2floor type-generic macro, 7.22FLT_DIG macro, 5.2.4.2.2FLT_EPSILON macro, 5.2.4.2.2FLT_EVAL_METHOD macro, 5.2.4.2.2, 6.8.6.4,7.12FLT_MANT_DIG macro, 5.2.4.2.2FLT_MAX macro, 5.2.4.2.2FLT_MAX_10_EXP macro, 5.2.4.2.2FLT_MAX_EXP macro, 5.2.4.2.2FLT_MIN macro, 5.2.4.2.2FLT_MIN_10_EXP macro, 5.2.4.2.2FLT_MIN_EXP macro, 5.2.4.2.2FLT_RADIX macro, 5.2.4.2.2, 7.19.6.1, 7.20.1.3,7.24.2.1, 7.24.4.1.1FLT_ROUNDS macro, 5.2.4.2.2, 7.6, F.3fma functions, 7.12, 7.12.13.1, F.9.10.1fma type-generic macro, 7.22fmax functions, 7.12.12.2, F.9.9.2fmax type-generic macro, 7.22fmin functions, 7.12.12.3, F.9.9.3fmin type-generic macro, 7.22fmod functions, 7.12.10.1, F.9.7.1fmod type-generic macro, 7.22fopen function, 7.19.5.3, 7.19.5.4FOPEN_MAX macro, 7.19.1, 7.19.3, 7.19.4.3for statement, 6.8.5, 6.8.5.3form-feed character, 5.2.1, 6.4form-feed escape sequence (\f), 5.2.2, 6.4.4.4,7.4.1.10formal argument (deprecated), 3.15formal parameter, 3.15formatted input/output functions, 7.11.1.1, 7.19.6wide character, 7.24.2fortran keyword, J.5.9forward reference, 3.11FP_CONTRACT pragma, 6.5, 6.10.6, 7.12.2, seealso contracted expressionFP_FAST_FMA macro, 7.12FP_FAST_FMAF macro, 7.12FP_FAST_FMAL macro, 7.12FP_ILOGB0 macro, 7.12, 7.12.6.5FP_ILOGBNAN macro, 7.12, 7.12.6.5FP_INFINITE macro, 7.12, F.3FP_NAN macro, 7.12, F.3FP_NORMAL macro, 7.12, F.3FP_SUBNORMAL macro, 7.12, F.3FP_ZERO macro, 7.12, F.3fpclassify macro, 7.12.3.1, F.3fpos_t type, 7.19.1, 7.19.2fexcept_t type, 7.6, F.3fflush function, 7.19.5.2, 7.19.5.3fgetc function, 7.19.1, 7.19.3, 7.19.7.1,7.19.7.5, 7.19.8.1fgetpos function, 7.19.2, 7.19.9.1, 7.19.9.3fgets function, 7.19.1, 7.19.7.2fgetwc function, 7.19.1, 7.19.3, 7.24.3.1,7.24.3.6fgetws function, 7.19.1, 7.24.3.2field width, 7.19.6.1, 7.24.2.1file, 7.19.3access functions, 7.19.5name, 7.19.3operations, 7.19.4position indicator, 7.19.1, 7.19.2, 7.19.3,7.19.5.3, 7.19.7.1, 7.19.7.3, 7.19.7.11,7.19.8.1, 7.19.8.2, 7.19.9.1, 7.19.9.2,7.19.9.3, 7.19.9.4, 7.19.9.5, 7.24.3.1,7.24.3.3, 7.24.3.10positioning functions, 7.19.9file scope, 6.2.1, 6.9FILE type, 7.19.1, 7.19.3FILENAME_MAX macro, 7.19.1flags, 7.19.6.1, 7.24.2.1floating-point status, see floating-point statusflagflexible array member, 6.7.2.1float _Complex type, 6.2.5float _Complex type conversion, 6.3.1.6,6.3.1.7, 6.3.1.8float _Imaginary type, G.2float type, 6.2.5, 6.4.4.2, 6.7.2, F.2float type conversion, 6.3.1.4, 6.3.1.5, 6.3.1.7,6.3.1.8float.h header, 4, 5.2.4.2.2, 7.7, 7.20.1.3,7.24.4.1.1float_t type, 7.12, J.5.6floating constant, 6.4.4.2floating suffix, f or F, 6.4.4.2floating type conversion, 6.3.1.4, 6.3.1.5, 6.3.1.7,F.3, F.4floating types, 6.2.5, 6.11.1floating-point accuracy, 5.2.4.2.2, 6.4.4.2, 6.5,7.20.1.3, F.5, see also contracted expressionfloating-point arithmetic functions, 7.12, F.9floating-point classification functions, 7.12.3floating-point control mode, 7.6, F.7.6floating-point environment, 7.6, F.7, F.7.6floating-point exception, 7.6, 7.6.2, F.9floating-point number, 5.2.4.2.2, 6.2.5floating-point rounding mode, 5.2.4.2.2Index527ISO/IEC 9899:TC3Committee Draft — Septermber 7, 2007language, 6.11library, 7.26fwide function, 7.19.2, 7.24.3.5fwprintf function, 7.8.1, 7.19.1, 7.19.6.2,7.24.2.1, 7.24.2.2, 7.24.2.3, 7.24.2.5,7.24.2.11fwrite function, 7.19.1, 7.19.8.2fwscanf function, 7.8.1, 7.19.1, 7.24.2.2,7.24.2.4, 7.24.2.6, 7.24.2.12, 7.24.3.10fprintf function, 7.8.1, 7.19.1, 7.19.6.1,7.19.6.2, 7.19.6.3, 7.19.6.5, 7.19.6.6,7.19.6.8, 7.24.2.2, F.3fputc function, 5.2.2, 7.19.1, 7.19.3, 7.19.7.3,7.19.7.8, 7.19.8.2fputs function, 7.19.1, 7.19.7.4fputwc function, 7.19.1, 7.19.3, 7.24.3.3,7.24.3.8fputws function, 7.19.1, 7.24.3.4fread function, 7.19.1, 7.19.8.1free function, 7.20.3.2, 7.20.3.4freestanding execution environment, 4, 5.1.2,5.1.2.1freopen function, 7.19.2, 7.19.5.4frexp functions, 7.12.6.4, F.9.3.4frexp type-generic macro, 7.22fscanf function, 7.8.1, 7.19.1, 7.19.6.2,7.19.6.4, 7.19.6.7, 7.19.6.9, F.3fseek function, 7.19.1, 7.19.5.3, 7.19.7.11,7.19.9.2, 7.19.9.4, 7.19.9.5, 7.24.3.10fsetpos function, 7.19.2, 7.19.5.3, 7.19.7.11,7.19.9.1, 7.19.9.3, 7.24.3.10ftell function, 7.19.9.2, 7.19.9.4full declarator, 6.7.5full expression, 6.8fully buffered stream, 7.19.3functionargument, 6.5.2.2, 6.9.1body, 6.9.1call, 6.5.2.2library, 7.1.4declarator, 6.7.5.3, 6.11.6definition, 6.7.5.3, 6.9.1, 6.11.7designator, 6.3.2.1image, 5.2.3library, 5.1.1.1, 7.1.4name length, 5.2.4.1, 6.4.2.1, 6.11.3parameter, 5.1.2.2.1, 6.5.2.2, 6.7, 6.9.1prototype, 5.1.2.2.1, 6.2.1, 6.2.7, 6.5.2.2, 6.7,6.7.5.3, 6.9.1, 6.11.6, 6.11.7, 7.1.2, 7.12prototype scope, 6.2.1, 6.7.5.2recursive call, 6.5.2.2return, 6.8.6.4scope, 6.2.1type, 6.2.5type conversion, 6.3.2.1function specifiers, 6.7.4function type, 6.2.5function-call operator (( )), 6.5.2.2function-like macro, 6.10.3future directions528WG14/N1256gamma functions, 7.12.8, F.9.5general utilities, 7.20wide string, 7.24.4general wide string utilities, 7.24.4generic parameters, 7.22getc function, 7.19.1, 7.19.7.5, 7.19.7.6getchar function, 7.19.1, 7.19.7.6getenv function, 7.20.4.5gets function, 7.19.1, 7.19.7.7, 7.26.9getwc function, 7.19.1, 7.24.3.6, 7.24.3.7getwchar function, 7.19.1, 7.24.3.7gmtime function, 7.23.3.3goto statement, 6.2.1, 6.8.1, 6.8.6.1graphic characters, 5.2.1greater-than operator (>), 6.5.8greater-than-or-equal-to operator (>=), 6.5.8header, 5.1.1.1, 7.1.2, see also standard headersheader names, 6.4, 6.4.7, 6.10.2hexadecimal constant, 6.4.4.1hexadecimal digit, 6.4.4.1, 6.4.4.2, 6.4.4.4hexadecimal prefix, 6.4.4.1hexadecimal-character escape sequence(\x hexadecimal digits), 6.4.4.4high-order bit, 3.6horizontal-tab character, 5.2.1, 6.4horizontal-tab escape sequence (\r), 7.25.2.1.3horizontal-tab escape sequence (\t), 5.2.2,6.4.4.4, 7.4.1.3, 7.4.1.10hosted execution environment, 4, 5.1.2, 5.1.2.2HUGE_VAL macro, 7.12, 7.12.1, 7.20.1.3,7.24.4.1.1, F.9HUGE_VALF macro, 7.12, 7.12.1, 7.20.1.3,7.24.4.1.1, F.9HUGE_VALL macro, 7.12, 7.12.1, 7.20.1.3,7.24.4.1.1, F.9hyperbolic functionscomplex, 7.3.6, G.6.2real, 7.12.5, F.9.2hypot functions, 7.12.7.3, F.9.4.3hypot type-generic macro, 7.22IndexWG14/N1256Committee Draft — Septermber 7, 2007ISO/IEC 9899:TC3initial position, 5.2.2initial shift state, 5.2.1.2initialization, 5.1.2, 6.2.4, 6.3.2.1, 6.5.2.5, 6.7.8,F.7.5in blocks, 6.8initializer, 6.7.8permitted form, 6.6string literal, 6.3.2.1inline, 6.7.4inner scope, 6.2.1input failure, 7.24.2.6, 7.24.2.8, 7.24.2.10input/output functionscharacter, 7.19.7direct, 7.19.8formatted, 7.19.6wide character, 7.24.2wide character, 7.24.3formatted, 7.24.2input/output header, 7.19input/output, device, 5.1.2.3int type, 6.2.5, 6.3.1.1, 6.3.1.3, 6.4.4.1, 6.7.2int type conversion, 6.3.1.1, 6.3.1.3, 6.3.1.4,6.3.1.8INT_FASTN_MAX macros, 7.18.2.3INT_FASTN_MIN macros, 7.18.2.3int_fastN_t types, 7.18.1.3INT_LEASTN_MAX macros, 7.18.2.2INT_LEASTN_MIN macros, 7.18.2.2int_leastN_t types, 7.18.1.2INT_MAX macro, 5.2.4.2.1, 7.12, 7.12.6.5INT_MIN macro, 5.2.4.2.1, 7.12integer arithmetic functions, 7.8.2.1, 7.8.2.2,7.20.6integer character constant, 6.4.4.4integer constant, 6.4.4.1integer constant expression, 6.6integer conversion rank, 6.3.1.1integer promotions, 5.1.2.3, 5.2.4.2.1, 6.3.1.1,6.5.2.2, 6.5.3.3, 6.5.7, 6.8.4.2, 7.18.2, 7.18.3,7.19.6.1, 7.24.2.1integer suffix, 6.4.4.1integer type conversion, 6.3.1.1, 6.3.1.3, 6.3.1.4,F.3, F.4integer types, 6.2.5, 7.18extended, 6.2.5, 6.3.1.1, 6.4.4.1, 7.18interactive device, 5.1.2.3, 7.19.3, 7.19.5.3internal linkage, 6.2.2internal name, 6.4.2.1interrupt, 5.2.3INTMAX_C macro, 7.18.4.2INTMAX_MAX macro, 7.8.2.3, 7.8.2.4, 7.18.2.5I macro, 7.3.1, 7.3.9.4, G.6identifier, 6.4.2.1, 6.5.1linkage, see linkagemaximum length, 6.4.2.1name spaces, 6.2.3reserved, 6.4.1, 7.1.3scope, 6.2.1type, 6.2.5identifier list, 6.7.5identifier nondigit, 6.4.2.1IEC 559, F.1IEC 60559, 2, 5.1.2.3, 5.2.4.2.2, 6.10.8, 7.3.3, 7.6,7.6.4.2, 7.12.1, 7.12.10.2, 7.12.14, F, G, H.1IEEE 754, F.1IEEE 854, F.1IEEE floating-point arithmetic standard, seeIEC 60559, ANSI/IEEE 754,ANSI/IEEE 854if preprocessing directive, 5.2.4.2.1, 5.2.4.2.2,6.10.1, 7.1.4if statement, 6.8.4.1ifdef preprocessing directive, 6.10.1ifndef preprocessing directive, 6.10.1ilogb functions, 7.12, 7.12.6.5, F.9.3.5ilogb type-generic macro, 7.22imaginary macro, 7.3.1, G.6imaginary numbers, Gimaginary type domain, G.2imaginary types, Gimaxabs function, 7.8.2.1imaxdiv function, 7.8, 7.8.2.2imaxdiv_t type, 7.8implementation, 3.12implementation limit, 3.13, 4, 5.2.4.2, 6.4.2.1,6.7.5, 6.8.4.2, E, see also environmentallimitsimplementation-defined behavior, 3.4.1, 4, J.3implementation-defined value, 3.17.1implicit conversion, 6.3implicit initialization, 6.7.8include preprocessing directive, 5.1.1.2, 6.10.2inclusive OR operatorsbitwise (|), 6.5.12bitwise assignment (|=), 6.5.16.2incomplete type, 6.2.5increment operators, see arithmetic operators,increment and decrementindeterminate value, 3.17.2indirection operator (*), 6.5.2.1, 6.5.3.2inequality operator (!=), 6.5.9INFINITY macro, 7.3.9.4, 7.12, F.2.1Index529ISO/IEC 9899:TC3Committee Draft — Septermber 7, 2007INTMAX_MIN macro, 7.8.2.3, 7.8.2.4, 7.18.2.5intmax_t type, 7.18.1.5, 7.19.6.1, 7.19.6.2,7.24.2.1, 7.24.2.2INTN_C macros, 7.18.4.1INTN_MAX macros, 7.18.2.1INTN_MIN macros, 7.18.2.1intN_t types, 7.18.1.1INTPTR_MAX macro, 7.18.2.4INTPTR_MIN macro, 7.18.2.4intptr_t type, 7.18.1.4inttypes.h header, 7.8, 7.26.4isalnum function, 7.4.1.1, 7.4.1.9, 7.4.1.10isalpha function, 7.4.1.1, 7.4.1.2isblank function, 7.4.1.3iscntrl function, 7.4.1.2, 7.4.1.4, 7.4.1.7,7.4.1.11isdigit function, 7.4.1.1, 7.4.1.2, 7.4.1.5,7.4.1.7, 7.4.1.11, 7.11.1.1isfinite macro, 7.12.3.2, F.3isgraph function, 7.4.1.6isgreater macro, 7.12.14.1, F.3isgreaterequal macro, 7.12.14.2, F.3isinf macro, 7.12.3.3isless macro, 7.12.14.3, F.3islessequal macro, 7.12.14.4, F.3islessgreater macro, 7.12.14.5, F.3islower function, 7.4.1.2, 7.4.1.7, 7.4.2.1,7.4.2.2isnan macro, 7.12.3.4, F.3isnormal macro, 7.12.3.5ISO 31−11, 2, 3ISO 4217, 2, 7.11.2.1ISO 8601, 2, 7.23.3.5ISO/IEC 10646, 2, 6.4.2.1, 6.4.3, 6.10.8ISO/IEC 10976−1, H.1ISO/IEC 2382−1, 2, 3ISO/IEC 646, 2, 5.2.1.1ISO/IEC 9945−2, 7.11ISO/IEC TR 10176, Diso646.h header, 4, 7.9isprint function, 5.2.2, 7.4.1.8ispunct function, 7.4.1.2, 7.4.1.7, 7.4.1.9,7.4.1.11isspace function, 7.4.1.2, 7.4.1.7, 7.4.1.9,7.4.1.10, 7.4.1.11, 7.19.6.2, 7.20.1.3,7.20.1.4, 7.24.2.2isunordered macro, 7.12.14.6, F.3isupper function, 7.4.1.2, 7.4.1.11, 7.4.2.1,7.4.2.2iswalnum function, 7.25.2.1.1, 7.25.2.1.9,7.25.2.1.10, 7.25.2.2.1530WG14/N1256iswalpha function, 7.25.2.1.1, 7.25.2.1.2,7.25.2.2.1iswblank function, 7.25.2.1.3, 7.25.2.2.1iswcntrl function, 7.25.2.1.2, 7.25.2.1.4,7.25.2.1.7, 7.25.2.1.11, 7.25.2.2.1iswctype function, 7.25.2.2.1, 7.25.2.2.2iswdigit function, 7.25.2.1.1, 7.25.2.1.2,7.25.2.1.5, 7.25.2.1.7, 7.25.2.1.11, 7.25.2.2.1iswgraph function, 7.25.2.1, 7.25.2.1.6,7.25.2.1.10, 7.25.2.2.1iswlower function, 7.25.2.1.2, 7.25.2.1.7,7.25.2.2.1, 7.25.3.1.1, 7.25.3.1.2iswprint function, 7.25.2.1.6, 7.25.2.1.8,7.25.2.2.1iswpunct function, 7.25.2.1, 7.25.2.1.2,7.25.2.1.7, 7.25.2.1.9, 7.25.2.1.10,7.25.2.1.11, 7.25.2.2.1iswspace function, 7.19.6.2, 7.24.2.2,7.24.4.1.1, 7.24.4.1.2, 7.25.2.1.2, 7.25.2.1.6,7.25.2.1.7, 7.25.2.1.9, 7.25.2.1.10,7.25.2.1.11, 7.25.2.2.1iswupper function, 7.25.2.1.2, 7.25.2.1.11,7.25.2.2.1, 7.25.3.1.1, 7.25.3.1.2iswxdigit function, 7.25.2.1.12, 7.25.2.2.1isxdigit function, 7.4.1.12, 7.11.1.1italic type convention, 3, 6.1iteration statements, 6.8.5jmp_buf type, 7.13jump statements, 6.8.6keywords, 6.4.1, G.2, J.5.9, J.5.10known constant size, 6.2.5L_tmpnam macro, 7.19.1, 7.19.4.4label name, 6.2.1, 6.2.3labeled statement, 6.8.1labs function, 7.20.6.1language, 6future directions, 6.11syntax summary, ALatin alphabet, 5.2.1, 6.4.2.1LC_ALL macro, 7.11, 7.11.1.1, 7.11.2.1LC_COLLATE macro, 7.11, 7.11.1.1, 7.21.4.3,7.24.4.4.2LC_CTYPE macro, 7.11, 7.11.1.1, 7.20, 7.20.7,7.20.8, 7.24.6, 7.25.1, 7.25.2.2.1, 7.25.2.2.2,7.25.3.2.1, 7.25.3.2.2LC_MONETARY macro, 7.11, 7.11.1.1, 7.11.2.1LC_NUMERIC macro, 7.11, 7.11.1.1, 7.11.2.1LC_TIME macro, 7.11, 7.11.1.1, 7.23.3.5IndexWG14/N1256Committee Draft — Septermber 7, 2007lconv structure type, 7.11LDBL_DIG macro, 5.2.4.2.2LDBL_EPSILON macro, 5.2.4.2.2LDBL_MANT_DIG macro, 5.2.4.2.2LDBL_MAX macro, 5.2.4.2.2LDBL_MAX_10_EXP macro, 5.2.4.2.2LDBL_MAX_EXP macro, 5.2.4.2.2LDBL_MIN macro, 5.2.4.2.2LDBL_MIN_10_EXP macro, 5.2.4.2.2LDBL_MIN_EXP macro, 5.2.4.2.2ldexp functions, 7.12.6.6, F.9.3.6ldexp type-generic macro, 7.22ldiv function, 7.20.6.2ldiv_t type, 7.20leading underscore in identifiers, 7.1.3left-shift assignment operator (<<=), 6.5.16.2left-shift operator (<<), 6.5.7lengthexternal name, 5.2.4.1, 6.4.2.1, 6.11.3function name, 5.2.4.1, 6.4.2.1, 6.11.3identifier, 6.4.2.1internal name, 5.2.4.1, 6.4.2.1length function, 7.20.7.1, 7.21.6.3, 7.24.4.6.1,7.24.6.3.1length modifier, 7.19.6.1, 7.19.6.2, 7.24.2.1,7.24.2.2less-than operator (<), 6.5.8less-than-or-equal-to operator (<=), 6.5.8letter, 5.2.1, 7.4lexical elements, 5.1.1.2, 6.4lgamma functions, 7.12.8.3, F.9.5.3lgamma type-generic macro, 7.22library, 5.1.1.1, 7future directions, 7.26summary, Bterms, 7.1.1use of functions, 7.1.4lifetime, 6.2.4limitsenvironmental, see environmental limitsimplementation, see implementation limitsnumerical, see numerical limitstranslation, see translation limitslimits.h header, 4, 5.2.4.2.1, 6.2.5, 7.10line buffered stream, 7.19.3line number, 6.10.4, 6.10.8line preprocessing directive, 6.10.4lines, 5.1.1.2, 7.19.2preprocessing directive, 6.10linkage, 6.2.2, 6.7, 6.7.4, 6.7.5.2, 6.9, 6.9.2,6.11.2ISO/IEC 9899:TC3llabs function, 7.20.6.1lldiv function, 7.20.6.2lldiv_t type, 7.20LLONG_MAX macro, 5.2.4.2.1, 7.20.1.4,7.24.4.1.2LLONG_MIN macro, 5.2.4.2.1, 7.20.1.4,7.24.4.1.2llrint functions, 7.12.9.5, F.3, F.9.6.5llrint type-generic macro, 7.22llround functions, 7.12.9.7, F.9.6.7llround type-generic macro, 7.22local time, 7.23.1locale, 3.4.2locale-specific behavior, 3.4.2, J.4locale.h header, 7.11, 7.26.5localeconv function, 7.11.1.1, 7.11.2.1localization, 7.11localtime function, 7.23.3.4log functions, 7.12.6.7, F.9.3.7log type-generic macro, 7.22log10 functions, 7.12.6.8, F.9.3.8log10 type-generic macro, 7.22log1p functions, 7.12.6.9, F.9.3.9log1p type-generic macro, 7.22log2 functions, 7.12.6.10, F.9.3.10log2 type-generic macro, 7.22logarithmic functionscomplex, 7.3.7, G.6.3real, 7.12.6, F.9.3logb functions, 7.12.6.11, F.3, F.9.3.11logb type-generic macro, 7.22logical operatorsAND (&&), 6.5.13negation (!), 6.5.3.3OR (||), 6.5.14logical source lines, 5.1.1.2long double _Complex type, 6.2.5long double _Complex type conversion,6.3.1.6, 6.3.1.7, 6.3.1.8long double _Imaginary type, G.2long double suffix, l or L, 6.4.4.2long double type, 6.2.5, 6.4.4.2, 6.7.2,7.19.6.1, 7.19.6.2, 7.24.2.1, 7.24.2.2, F.2long double type conversion, 6.3.1.4, 6.3.1.5,6.3.1.7, 6.3.1.8long int type, 6.2.5, 6.3.1.1, 6.7.2, 7.19.6.1,7.19.6.2, 7.24.2.1, 7.24.2.2long int type conversion, 6.3.1.1, 6.3.1.3,6.3.1.4, 6.3.1.8long integer suffix, l or L, 6.4.4.1long long int type, 6.2.5, 6.3.1.1, 6.7.2,Index531ISO/IEC 9899:TC3Committee Draft — Septermber 7, 20077.19.6.1, 7.19.6.2, 7.24.2.1, 7.24.2.2long long int type conversion, 6.3.1.1,6.3.1.3, 6.3.1.4, 6.3.1.8long long integer suffix, ll or LL, 6.4.4.1LONG_MAX macro, 5.2.4.2.1, 7.20.1.4, 7.24.4.1.2LONG_MIN macro, 5.2.4.2.1, 7.20.1.4, 7.24.4.1.2longjmp function, 7.13.1.1, 7.13.2.1, 7.20.4.3loop body, 6.8.5low-order bit, 3.6lowercase letter, 5.2.1lrint functions, 7.12.9.5, F.3, F.9.6.5lrint type-generic macro, 7.22lround functions, 7.12.9.7, F.9.6.7lround type-generic macro, 7.22lvalue, 6.3.2.1, 6.5.1, 6.5.2.4, 6.5.3.1, 6.5.16mbsinit function, 7.24.6.2.1mbsrtowcs function, 7.24.6.4.1mbstate_t type, 7.19.2, 7.19.3, 7.19.6.1,7.19.6.2, 7.24.1, 7.24.2.1, 7.24.2.2, 7.24.6,7.24.6.2.1, 7.24.6.3, 7.24.6.3.1, 7.24.6.4mbstowcs function, 6.4.5, 7.20.8.1, 7.24.6.4mbtowc function, 7.20.7.1, 7.20.7.2, 7.20.8.1,7.24.6.3member access operators (.