logo资料库

c99完整标准文档.pdf

第1页 / 共554页
第2页 / 共554页
第3页 / 共554页
第4页 / 共554页
第5页 / 共554页
第6页 / 共554页
第7页 / 共554页
第8页 / 共554页
资料共554页,剩余部分请下载后查看
Contents
Foreword
Introduction
1. Scope
2. Normative references
3. Terms, definitions, and symbols
4. Conformance
5. Environment
5.1 Conceptual models
5.1.1 Translation environment
5.1.1.1 Program structure
5.1.1.2 Translation phases
5.1.1.3 Diagnostics
5.1.2 Execution environments
5.1.2.1 Freestanding environment
5.1.2.2 Hosted environment
5.1.2.2.1 Program startup
5.1.2.2.2 Program execution
5.1.2.2.3 Program termination
5.1.2.3 Program execution
5.2 Environmental considerations
5.2.1 Character sets
5.2.1.1 Trigraph sequences
5.2.1.2 Multibyte characters
5.2.2 Character display semantics
5.2.3 Signals and interrupts
5.2.4 Environmental limits
5.2.4.1 Translation limits
5.2.4.2 Numerical limits
5.2.4.2.1 Sizes of integer types
5.2.4.2.2 Characteristics of floating types
6. Language
6.1 Notation
6.2 Concepts
6.2.1 Scopes of identifiers
6.2.2 Linkages of identifiers
6.2.3 Name spaces of identifiers
6.2.4 Storage durations of objects
6.2.5 Types
6.2.6 Representations of types
6.2.6.1 General
6.2.6.2 Integer types
6.2.7 Compatible type and composite type
6.3 Conversions
6.3.1 Arithmetic operands
6.3.1.1 Boolean, characters, and integers
6.3.1.2 Boolean type
6.3.1.3 Signed and unsigned integers
6.3.1.4 Real floating and integer
6.3.1.5 Real floating types
6.3.1.6 Complex types
6.3.1.7 Real and complex
6.3.1.8 Usual arithmetic conversions
6.3.2 Other operands
6.3.2.1 Lvalues, arrays, and function designators
6.3.2.2 void
6.3.2.3 Pointers
6.4 Lexical elements
6.4.1 Keywords
6.4.2 Identifiers
6.4.2.1 General
6.4.2.2 Predefined identifiers
6.4.3 Universal character names
6.4.4 Constants
6.4.4.1 Integer constants
6.4.4.2 Floating constants
6.4.4.3 Enumeration constants
6.4.4.4 Character constants
6.4.5 String literals
6.4.6 Punctuators
6.4.7 Header names
6.4.8 Preprocessing numbers
6.4.9 Comments
6.5 Expressions
6.5.1 Primary expressions
6.5.2 Postfix operators
6.5.2.1 Array subscripting
6.5.2.2 Function calls
6.5.2.3 Structure and union members
6.5.2.4 Postfix increment and decrement operators
6.5.2.5 Compound literals
6.5.3 Unary operators
6.5.3.1 Prefix increment and decrement operators
6.5.3.2 Address and indirection operators
6.5.3.3 Unary arithmetic operators
6.5.3.4 The sizeof operator
6.5.4 Cast operators
6.5.5 Multiplicative operators
6.5.6 Additive operators
6.5.7 Bitwise shift operators
6.5.8 Relational operators
6.5.9 Equality operators
6.5.10 Bitwise AND operator
6.5.11 Bitwise exclusive OR operator
6.5.12 Bitwise inclusive OR operator
6.5.13 Logical AND operator
6.5.14 Logical OR operator
6.5.15 Conditional operator
6.5.16 Assignment operators
6.5.16.1 Simple assignment
6.5.16.2 Compound assignment
6.5.17 Comma operator
6.6 Constant expressions
6.7 Declarations
6.7.1 Storage-class specifiers
6.7.2 Type specifiers
6.7.2.1 Structure and union specifiers
6.7.2.2 Enumeration specifiers
6.7.2.3 Tags
6.7.3 Type qualifiers
6.7.3.1 Formal definition of restrict
6.7.4 Function specifiers
6.7.5 Declarators
6.7.5.1 Pointer declarators
6.7.5.2 Array declarators
6.7.5.3 Function declarators (including prototypes)
6.7.6 Type names
6.7.7 Type definitions
6.7.8 Initialization
6.8 Statements and blocks
6.8.1 Labeled statements
6.8.2 Compound statement
6.8.3 Expression and null statements
6.8.4 Selection statements
6.8.4.1 The if statement
6.8.4.2 The switch statement
6.8.5 Iteration statements
6.8.5.1 The while statement
6.8.5.2 The do statement
6.8.5.3 The for statement
6.8.6 Jump statements
6.8.6.1 The goto statement
6.8.6.2 The continue statement
6.8.6.3 The break statement
6.8.6.4 The return statement
6.9 External definitions
6.9.1 Function definitions
6.9.2 External object definitions
6.10 Preprocessing directives
6.10.1 Conditional inclusion
6.10.2 Source file inclusion
6.10.3 Macro replacement
6.10.3.1 Argument substitution
6.10.3.2 The # operator
6.10.3.3 The ## operator
6.10.3.4 Rescanning and further replacement
6.10.3.5 Scope of macro definitions
6.10.4 Line control
6.10.5 Error directive
6.10.6 Pragma directive
6.10.7 Null directive
6.10.8 Predefined macro names
6.10.9 Pragma operator
6.11 Future language directions
6.11.1 Floating types
6.11.2 Linkages of identifiers
6.11.3 External names
6.11.4 Character escape sequences
6.11.5 Storage-class specifiers
6.11.6 Function declarators
6.11.7 Function definitions
6.11.8 Pragma directives
6.11.9 Predefined macro names
7. Library
7.1 Introduction
7.1.1 Definitions of terms
7.1.2 Standard headers
7.1.3 Reserved identifiers
7.1.4 Use of library functions
7.2 Diagnostics
7.2.1 Program diagnostics
7.2.1.1 The assert macro
7.3 Complex arithmetic
7.3.1 Introduction
7.3.2 Conventions
7.3.3 Branch cuts
7.3.4 The CX_LIMITED_RANGE pragma
7.3.5 Trigonometric functions
7.3.5.1 The cacos functions
7.3.5.2 The casin functions
7.3.5.3 The catan functions
7.3.5.4 The ccos functions
7.3.5.5 The csin functions
7.3.5.6 The ctan functions
7.3.6 Hyperbolic functions
7.3.6.1 The cacosh functions
7.3.6.2 The casinh functions
7.3.6.3 The catanh functions
7.3.6.4 The ccosh functions
7.3.6.5 The csinh functions
7.3.6.6 The ctanh functions
7.3.7 Exponential and logarithmic functions
7.3.7.1 The cexp functions
7.3.7.2 The clog functions
7.3.8 Power and absolute-value functions
7.3.8.1 The cabs functions
7.3.8.2 The cpow functions
7.3.8.3 The csqrt functions
7.3.9 Manipulation functions
7.3.9.1 The carg functions
7.3.9.2 The cimag functions
7.3.9.3 The conj functions
7.3.9.4 The cproj functions
7.3.9.5 The creal functions
7.4 Character handling
7.4.1 Character classification functions
7.4.1.1 The isalnum function
7.4.1.2 The isalpha function
7.4.1.3 The isblank function
7.4.1.4 The iscntrl function
7.4.1.5 The isdigit function
7.4.1.6 The isgraph function
7.4.1.7 The islower function
7.4.1.8 The isprint function
7.4.1.9 The ispunct function
7.4.1.10 The isspace function
7.4.1.11 The isupper function
7.4.1.12 The isxdigit function
7.4.2 Character case mapping functions
7.4.2.1 The tolower function
7.4.2.2 The toupper function
7.5 Errors
7.6 Floating-point environment
7.6.1 The FENV_ACCESS pragma
7.6.2 Floating-point exceptions
7.6.2.1 The feclearexcept function
7.6.2.2 The fegetexceptflag function
7.6.2.3 The feraiseexcept function
7.6.2.4 The fesetexceptflag function
7.6.2.5 The fetestexcept function
7.6.3 Rounding
7.6.3.1 The fegetround function
7.6.3.2 The fesetround function
7.6.4 Environment
7.6.4.1 The fegetenv function
7.6.4.2 The feholdexcept function
7.6.4.3 The fesetenv function
7.6.4.4 The feupdateenv function
7.7 Characteristics of floating types
7.8 Format conversion of integer types
7.8.1 Macros for format specifiers
7.8.2 Functions for greatest-width integer types
7.8.2.1 The imaxabs function
7.8.2.2 The imaxdiv function
7.8.2.3 The strtoimax and strtoumax functions
7.8.2.4 The wcstoimax and wcstoumax functions
7.9 Alternative spellings
7.10 Sizes of integer types
7.11 Localization
7.11.1 Locale control
7.11.1.1 The setlocale function
7.11.2 Numeric formatting convention inquiry
7.11.2.1 The localeconv function
7.12 Mathematics
7.12.1 Treatment of error conditions
7.12.2 The FP_CONTRACT pragma
7.12.3 Classification macros
7.12.3.1 The fpclassify macro
7.12.3.2 The isfinite macro
7.12.3.3 The isinf macro
7.12.3.4 The isnan macro
7.12.3.5 The isnormal macro
7.12.3.6 The signbit macro
7.12.4 Trigonometric functions
7.12.4.1 The acos functions
7.12.4.2 The asin functions
7.12.4.3 The atan functions
7.12.4.4 The atan2 functions
7.12.4.5 The cos functions
7.12.4.6 The sin functions
7.12.4.7 The tan functions
7.12.5 Hyperbolic functions
7.12.5.1 The acosh functions
7.12.5.2 The asinh functions
7.12.5.3 The atanh functions
7.12.5.4 The cosh functions
7.12.5.5 The sinh functions
7.12.5.6 The tanh functions
7.12.6 Exponential and logarithmic functions
7.12.6.1 The exp functions
7.12.6.2 The exp2 functions
7.12.6.3 The expm1 functions
7.12.6.4 The frexp functions
7.12.6.5 The ilogb functions
7.12.6.6 The ldexp functions
7.12.6.7 The log functions
7.12.6.8 The log10 functions
7.12.6.9 The log1p functions
7.12.6.10 The log2 functions
7.12.6.11 The logb functions
7.12.6.12 The modf functions
7.12.6.13 The scalbn and scalbln functions
7.12.7 Power and absolute-value functions
7.12.7.1 The cbrt functions
7.12.7.2 The fabs functions
7.12.7.3 The hypot functions
7.12.7.4 The pow functions
7.12.7.5 The sqrt functions
7.12.8 Error and gamma functions
7.12.8.1 The erf functions
7.12.8.2 The erfc functions
7.12.8.3 The lgamma functions
7.12.8.4 The tgamma functions
7.12.9 Nearest integer functions
7.12.9.1 The ceil functions
7.12.9.2 The floor functions
7.12.9.3 The nearbyint functions
7.12.9.4 The rint functions
7.12.9.5 The lrint and llrint functions
7.12.9.6 The round functions
7.12.9.7 The lround and llround functions
7.12.9.8 The trunc functions
7.12.10 Remainder functions
7.12.10.1 The fmod functions
7.12.10.2 The remainder functions
7.12.10.3 The remquo functions
7.12.11 Manipulation functions
7.12.11.1 The copysign functions
7.12.11.2 The nan functions
7.12.11.3 The nextafter functions
7.12.11.4 The nexttoward functions
7.12.12 Maximum, minimum, and positive difference functions
7.12.12.1 The fdim functions
7.12.12.2 The fmax functions
7.12.12.3 The fmin functions
7.12.13 Floating multiply-add
7.12.13.1 The fma functions
7.12.14 Comparison macros
7.12.14.1 The isgreater macro
7.12.14.2 The isgreaterequal macro
7.12.14.3 The isless macro
7.12.14.4 The islessequal macro
7.12.14.5 The islessgreater macro
7.12.14.6 The isunordered macro
7.13 Nonlocal jumps
7.13.1 Save calling environment
7.13.1.1 The setjmp macro
7.13.2 Restore calling environment
7.13.2.1 The longjmp function
7.14 Signal handling
7.14.1 Specify signal handling
7.14.1.1 The signal function
7.14.2 Send signal
7.14.2.1 The raise function
7.15 Variable arguments
7.15.1 Variable argument list access macros
7.15.1.1 The va_arg macro
7.15.1.2 The va_copy macro
7.15.1.3 The va_end macro
7.15.1.4 The va_start macro
7.16 Boolean type and values
7.17 Common definitions
7.18 Integer types
7.18.1 Integer types
7.18.1.1 Exact-width integer types
7.18.1.2 Minimum-width integer types
7.18.1.3 Fastest minimum-width integer types
7.18.1.4 Integer types capable of holding object pointers
7.18.1.5 Greatest-width integer types
7.18.2 Limits of specified-width integer types
7.18.2.1 Limits of exact-width integer types
7.18.2.2 Limits of minimum-width integer types
7.18.2.3 Limits of fastest minimum-width integer types
7.18.2.4 Limits of integer types capable of holding object pointers
7.18.2.5 Limits of greatest-width integer types
7.18.3 Limits of other integer types
7.18.4 Macros for integer constants
7.18.4.1 Macros for minimum-width integer constants
7.18.4.2 Macros for greatest-width integer constants
7.19 Input/output
7.19.1 Introduction
7.19.2 Streams
7.19.3 Files
7.19.4 Operations on files
7.19.4.1 The remove function
7.19.4.2 The rename function
7.19.4.3 The tmpfile function
7.19.4.4 The tmpnam function
7.19.5 File access functions
7.19.5.1 The fclose function
7.19.5.2 The fflush function
7.19.5.3 The fopen function
7.19.5.4 The freopen function
7.19.5.5 The setbuf function
7.19.5.6 The setvbuf function
7.19.6 Formatted input/output functions
7.19.6.1 The fprintf function
7.19.6.2 The fscanf function
7.19.6.3 The printf function
7.19.6.4 The scanf function
7.19.6.5 The snprintf function
7.19.6.6 The sprintf function
7.19.6.7 The sscanf function
7.19.6.8 The vfprintf function
7.19.6.9 The vfscanf function
7.19.6.10 The vprintf function
7.19.6.11 The vscanf function
7.19.6.12 The vsnprintf function
7.19.6.13 The vsprintf function
7.19.6.14 The vsscanf function
7.19.7 Character input/output functions
7.19.7.1 The fgetc function
7.19.7.2 The fgets function
7.19.7.3 The fputc function
7.19.7.4 The fputs function
7.19.7.5 The getc function
7.19.7.6 The getchar function
7.19.7.7 The gets function
7.19.7.8 The putc function
7.19.7.9 The putchar function
7.19.7.10 The puts function
7.19.7.11 The ungetc function
7.19.8 Direct input/output functions
7.19.8.1 The fread function
7.19.8.2 The fwrite function
7.19.9 File positioning functions
7.19.9.1 The fgetpos function
7.19.9.2 The fseek function
7.19.9.3 The fsetpos function
7.19.9.4 The ftell function
7.19.9.5 The rewind function
7.19.10 Error-handling functions
7.19.10.1 The clearerr function
7.19.10.2 The feof function
7.19.10.3 The ferror function
7.19.10.4 The perror function
7.20 General utilities
7.20.1 Numeric conversion functions
7.20.1.1 The atof function
7.20.1.2 The atoi, atol, and atoll functions
7.20.1.3 The strtod, strtof, and strtold functions
7.20.1.4 The strtol, strtoll, strtoul, and strtoull functions
7.20.2 Pseudo-random sequence generation functions
7.20.2.1 The rand function
7.20.2.2 The srand function
7.20.3 Memory management functions
7.20.3.1 The calloc function
7.20.3.2 The free function
7.20.3.3 The malloc function
7.20.3.4 The realloc function
7.20.4 Communication with the environment
7.20.4.1 The abort function
7.20.4.2 The atexit function
7.20.4.3 The exit function
7.20.4.4 The _Exit function
7.20.4.5 The getenv function
7.20.4.6 The system function
7.20.5 Searching and sorting utilities
7.20.5.1 The bsearch function
7.20.5.2 The qsort function
7.20.6 Integer arithmetic functions
7.20.6.1 The abs, labs and llabs functions
7.20.6.2 The div, ldiv, and lldiv functions
7.20.7 Multibyte/wide character conversion functions
7.20.7.1 The mblen function
7.20.7.2 The mbtowc function
7.20.7.3 The wctomb function
7.20.8 Multibyte/wide string conversion functions
7.20.8.1 The mbstowcs function
7.20.8.2 The wcstombs function
7.21 String handling
7.21.1 String function conventions
7.21.2 Copying functions
7.21.2.1 The memcpy function
7.21.2.2 The memmove function
7.21.2.3 The strcpy function
7.21.2.4 The strncpy function
7.21.3 Concatenation functions
7.21.3.1 The strcat function
7.21.3.2 The strncat function
7.21.4 Comparison functions
7.21.4.1 The memcmp function
7.21.4.2 The strcmp function
7.21.4.3 The strcoll function
7.21.4.4 The strncmp function
7.21.4.5 The strxfrm function
7.21.5 Search functions
7.21.5.1 The memchr function
7.21.5.2 The strchr function
7.21.5.3 The strcspn function
7.21.5.4 The strpbrk function
7.21.5.5 The strrchr function
7.21.5.6 The strspn function
7.21.5.7 The strstr function
7.21.5.8 The strtok function
7.21.6 Miscellaneous functions
7.21.6.1 The memset function
7.21.6.2 The strerror function
7.21.6.3 The strlen function
7.22 Type-generic math
7.23 Date and time
7.23.1 Components of time
7.23.2 Time manipulation functions
7.23.2.1 The clock function
7.23.2.2 The difftime function
7.23.2.3 The mktime function
7.23.2.4 The time function
7.23.3 Time conversion functions
7.23.3.1 The asctime function
7.23.3.2 The ctime function
7.23.3.3 The gmtime function
7.23.3.4 The localtime function
7.23.3.5 The strftime function
7.24 Extended multibyte and wide character utilities
7.24.1 Introduction
7.24.2 Formatted wide character input/output functions
7.24.2.1 The fwprintf function
7.24.2.2 The fwscanf function
7.24.2.3 The swprintf function
7.24.2.4 The swscanf function
7.24.2.5 The vfwprintf function
7.24.2.6 The vfwscanf function
7.24.2.7 The vswprintf function
7.24.2.8 The vswscanf function
7.24.2.9 The vwprintf function
7.24.2.10 The vwscanf function
7.24.2.11 The wprintf function
7.24.2.12 The wscanf function
7.24.3 Wide character input/output functions
7.24.3.1 The fgetwc function
7.24.3.2 The fgetws function
7.24.3.3 The fputwc function
7.24.3.4 The fputws function
7.24.3.5 The fwide function
7.24.3.6 The getwc function
7.24.3.7 The getwchar function
7.24.3.8 The putwc function
7.24.3.9 The putwchar function
7.24.3.10 The ungetwc function
7.24.4 General wide string utilities
7.24.4.1 Wide string numeric conversion functions
7.24.4.1.1 The wcstod, wcstof, and wcstold functions
7.24.4.1.2 The wcstol, wcstoll, wcstoul, and wcstoull functions
7.24.4.2 Wide string copying functions
7.24.4.2.1 The wcscpy function
7.24.4.2.2 The wcsncpy function
7.24.4.2.3 The wmemcpy function
7.24.4.2.4 The wmemmove function
7.24.4.3 Wide string concatenation functions
7.24.4.3.1 The wcscat function
7.24.4.3.2 The wcsncat function
7.24.4.4 Wide string comparison functions
7.24.4.4.1 The wcscmp function
7.24.4.4.2 The wcscoll function
7.24.4.4.3 The wcsncmp function
7.24.4.4.4 The wcsxfrm function
7.24.4.4.5 The wmemcmp function
7.24.4.5 Wide string search functions
7.24.4.5.1 The wcschr function
7.24.4.5.2 The wcscspn function
7.24.4.5.3 The wcspbrk function
7.24.4.5.4 The wcsrchr function
7.24.4.5.5 The wcsspn function
7.24.4.5.6 The wcsstr function
7.24.4.5.7 The wcstok function
7.24.4.5.8 The wmemchr function
7.24.4.6 Miscellaneous functions
7.24.4.6.1 The wcslen function
7.24.4.6.2 The wmemset function
7.24.5 Wide character time conversion functions
7.24.5.1 The wcsftime function
7.24.6 Extended multibyte/wide character conversion utilities
7.24.6.1 Single-byte/wide character conversion functions
7.24.6.1.1 The btowc function
7.24.6.1.2 The wctob function
7.24.6.2 Conversion state functions
7.24.6.2.1 The mbsinit function
7.24.6.3 Restartable multibyte/wide character conversion functions
7.24.6.3.1 The mbrlen function
7.24.6.3.2 The mbrtowc function
7.24.6.3.3 The wcrtomb function
7.24.6.4 Restartable multibyte/wide string conversion functions
7.24.6.4.1 The mbsrtowcs function
7.24.6.4.2 The wcsrtombs function
7.25 Wide character classification and mapping utilities
7.25.1 Introduction
7.25.2 Wide character classification utilities
7.25.2.1 Wide character classification functions
7.25.2.1.1 The iswalnum function
7.25.2.1.2 The iswalpha function
7.25.2.1.3 The iswblank function
7.25.2.1.4 The iswcntrl function
7.25.2.1.5 The iswdigit function
7.25.2.1.6 The iswgraph function
7.25.2.1.7 The iswlower function
7.25.2.1.8 The iswprint function
7.25.2.1.9 The iswpunct function
7.25.2.1.10 The iswspace function
7.25.2.1.11 The iswupper function
7.25.2.1.12 The iswxdigit function
7.25.2.2 Extensible wide character classification functions
7.25.2.2.1 The iswctype function
7.25.2.2.2 The wctype function
7.25.3 Wide character case mapping utilities
7.25.3.1 Wide character case mapping functions
7.25.3.1.1 The towlower function
7.25.3.1.2 The towupper function
7.25.3.2 Extensible wide character case mapping functions
7.25.3.2.1 The towctrans function
7.25.3.2.2 The wctrans function
7.26 Future library directions
7.26.1 Complex arithmetic
7.26.2 Character handling
7.26.3 Errors
7.26.4 Format conversion of integer types
7.26.5 Localization
7.26.6 Signal handling
7.26.7 Boolean type and values
7.26.8 Integer types
7.26.9 Input/output
7.26.10 General utilities
7.26.11 String handling
7.26.12 Extended multibyte and wide character utilities
7.26.13 Wide character classification and mapping utilities
Annex A (informative) Language syntax summary
A.1 Lexical grammar
A.1.1 Lexical elements
A.1.2 Keywords
A.1.3 Identifiers
A.1.4 Universal character names
A.1.5 Constants
A.1.6 String literals
A.1.7 Punctuators
A.1.8 Header names
A.1.9 Preprocessing numbers
A.2 Phrase structure grammar
A.2.1 Expressions
A.2.2 Declarations
A.2.3 Statements
A.2.4 External definitions
A.3 Preprocessing directives
Annex B (informative) Library summary
B.1 Diagnostics
B.2 Complex
B.3 Character handling
B.4 Errors
B.5 Floating-point environment
B.6 Characteristics of floating types
B.7 Format conversion of integer types
B.8 Alternative spellings
B.9 Sizes of integer types
B.10 Localization
B.11 Mathematics
B.12 Nonlocal jumps
B.13 Signal handling
B.14 Variable arguments
B.15 Boolean type and values
B.16 Common definitions
B.17 Integer types
B.18 Input/output
B.19 General utilities
B.20 String handling
B.21 Type-generic math
B.22 Date and time
B.23 Extended multibyte/wide character utilities
B.24 Wide character classification and mapping utilities
Annex C (informative) Sequence points
Annex D (normative) Universal character names for identifiers
Annex E (informative) Implementation limits
Annex F (normative) IEC 60559 floating-point arithmetic
F.1 Introduction
F.2 Types
F.2.1 Infinities, signed zeros, and NaNs
F.3 Operators and functions
F.4 Floating to integer conversion
F.5 Binary-decimal conversion
F.6 Contracted expressions
F.7 Floating-point environment
F.7.1 Environment management
F.7.2 Translation
F.7.3 Execution
F.7.4 Constant expressions
F.7.5 Initialization
F.7.6 Changing the environment
F.8 Optimization
F.8.1 Global transformations
F.8.2 Expression transformations
F.8.3 Relational operators
F.8.4 Constant arithmetic
F.9 Mathematics
F.9.1 Trigonometric functions
F.9.1.1 The acos functions
F.9.1.2 The asin functions
F.9.1.3 The atan functions
F.9.1.4 The atan2 functions
F.9.1.5 The cos functions
F.9.1.6 The sin functions
F.9.1.7 The tan functions
F.9.2 Hyperbolic functions
F.9.2.1 The acosh functions
F.9.2.2 The asinh functions
F.9.2.3 The atanh functions
F.9.2.4 The cosh functions
F.9.2.5 The sinh functions
F.9.2.6 The tanh functions
F.9.3 Exponential and logarithmic functions
F.9.3.1 The exp functions
F.9.3.2 The exp2 functions
F.9.3.3 The expm1 functions
F.9.3.4 The frexp functions
F.9.3.5 The ilogb functions
F.9.3.6 The ldexp functions
F.9.3.7 The log functions
F.9.3.8 The log10 functions
F.9.3.9 The log1p functions
F.9.3.10 The log2 functions
F.9.3.11 The logb functions
F.9.3.12 The modf functions
F.9.3.13 The scalbn and scalbln functions
F.9.4 Power and absolute value functions
F.9.4.1 The cbrt functions
F.9.4.2 The fabs functions
F.9.4.3 The hypot functions
F.9.4.4 The pow functions
F.9.4.5 The sqrt functions
F.9.5 Error and gamma functions
F.9.5.1 The erf functions
F.9.5.2 The erfc functions
F.9.5.3 The lgamma functions
F.9.5.4 The tgamma functions
F.9.6 Nearest integer functions
F.9.6.1 The ceil functions
F.9.6.2 The floor functions
F.9.6.3 The nearbyint functions
F.9.6.4 The rint functions
F.9.6.5 The lrint and llrint functions
F.9.6.6 The round functions
F.9.6.7 The lround and llround functions
F.9.6.8 The trunc functions
F.9.7 Remainder functions
F.9.7.1 The fmod functions
F.9.7.2 The remainder functions
F.9.7.3 The remquo functions
F.9.8 Manipulation functions
F.9.8.1 The copysign functions
F.9.8.2 The nan functions
F.9.8.3 The nextafter functions
F.9.8.4 The nexttoward functions
F.9.9 Maximum, minimum, and positive difference functions
F.9.9.1 The fdim functions
F.9.9.2 The fmax functions
F.9.9.3 The fmin functions
F.9.10 Floating multiply-add
F.9.10.1 The fma functions
Annex G (informative) IEC 60559-compatible complex arithmetic
G.1 Introduction
G.2 Types
G.3 Conventions
G.4 Conversions
G.4.1 Imaginary types
G.4.2 Real and imaginary
G.4.3 Imaginary and complex
G.5 Binary operators
G.5.1 Multiplicative operators
G.5.2 Additive operators
G.6 Complex arithmetic
G.6.1 Trigonometric functions
G.6.1.1 The cacos functions
G.6.2 Hyperbolic functions
G.6.2.1 The cacosh functions
G.6.2.2 The casinh functions
G.6.2.3 The catanh functions
G.6.2.4 The ccosh functions
G.6.2.5 The csinh functions
G.6.2.6 The ctanh functions
G.6.3 Exponential and logarithmic functions
G.6.3.1 The cexp functions
G.6.3.2 The clog functions
G.6.4 Power and absolute-value functions
G.6.4.1 The cpow functions
G.6.4.2 The csqrt functions
G.7 Type-generic math
Annex H (informative) Language independent arithmetic
H.1 Introduction
H.2 Types
H.2.1 Boolean type
H.2.2 Integer types
H.2.2.1 Integer operations
H.2.3 Floating-point types
H.2.3.1 Floating-point parameters
H.2.3.2 Floating-point operations
H.2.3.3 Rounding styles
H.2.4 Type conversions
H.3 Notification
H.3.1 Notification alternatives
H.3.1.1 Indicators
H.3.1.2 Traps
Annex I (informative) Common warnings
Annex J (informative) Portability issues
J.1 Unspecified behavior
J.2 Undefined behavior
J.3 Implementation-defined behavior
J.3.1 Translation
J.3.2 Environment
J.3.3 Identifiers
J.3.4 Characters
J.3.5 Integers
J.3.6 Floating point
J.3.7 Arrays and pointers
J.3.8 Hints
J.3.9 Structures, unions, enumerations, and bit-fields
J.3.10 Qualifiers
J.3.11 Preprocessing directives
J.3.12 Library functions
J.3.13 Architecture
J.4 Locale-specific behavior
J.5 Common extensions
J.5.1 Environment arguments
J.5.2 Specialized identifiers
J.5.3 Lengths and cases of identifiers
J.5.4 Scopes of identifiers
J.5.5 Writable string literals
J.5.6 Other arithmetic types
J.5.7 Function pointer casts
J.5.8 Extended bit-field types
J.5.9 The fortran keyword
J.5.10 The asm keyword
J.5.11 Multiple external definitions
J.5.12 Predefined macro names
J.5.13 Floating-point status flags
J.5.14 Extra arguments for signal handlers
J.5.15 Additional stream types and file-opening modes
J.5.16 Defined file position indicator
J.5.17 Math error reporting
Bibliography
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
INTERNATIONAL STANDARD ISO/IEC 9899 Second edition 1999-12-01 Programming languages — C Langagesdeprogrammation—C Reference number ISO/IEC 9899:1999(E) © ISO/IEC 1999
ISO/IEC 9899:1999(E) PDF disclaimer This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this area. Adobe is a trademark of Adobe Systems Incorporated. Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below. © ISO/IEC 1999 All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or ISO's member body in the country of the requester. ISO copyright office Case postale 56  CH-1211 Geneva 20 Tel. + 41 22 749 01 11 Fax + 41 22 734 10 79 E-mail copyright@iso.ch Web www.iso.ch Printed in Switzerland ii © ISO/IEC 1999 – All rights reserved
©ISO/IEC ISO/IEC 9899:1999 (E) 5.2 Environmental considerations . . 6. Language . 6.1 Notation 6.2 Concepts . . . . . . . . . . . . . . . . . . . . . . Contents . . Foreword . . Introduction . . 1. Scope . 2. Normative references 3. Terms, definitions, and symbols . 4. Conformance . 5. Environment . 5.1 Conceptual models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 5.1.2 . . . . . . . . . . . . . . . . . . . . . . . . Signals and interrupts Environmental limits . . . . . . . . . . . . Translation environment Execution environments . . . . . . . . . . . . 5.2.1 Character sets 5.2.2 Character display semantics . 5.2.3 . 5.2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 . . 6.2.2 . 6.2.3 Name spaces of identifiers . 6.2.4 . . 6.2.5 . 6.2.6 Representations of types 6.2.7 Compatible type and composite type . . . . . . . . . . . . . . Storage durations of objects Types 6.3.1 Arithmetic operands 6.3.2 Other operands . . . . . 6.4.1 Keywords . 6.4.2 Identifiers 6.4.3 Universal character names . 6.4.4 Constants . 6.4.5 . 6.4.6 . 6.4.7 Header names 6.4.8 6.4.9 Comments . . . . . Preprocessing numbers . . . String literals Punctuators Scopes of identifiers Linkages of identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Conversions . 6.4 Lexical elements 6.5 Expressions Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi xiv 1 2 3 7 9 9 9 11 17 17 19 20 20 29 29 29 29 30 31 32 33 37 40 42 42 46 49 50 51 53 54 62 63 64 65 66 67 iii
ISO/IEC 9899:1999 (E) ©ISO/IEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6 Constant expressions . 6.7 Declarations Equality operators Primary expressions 6.5.1 . 6.5.2 Postfix operators . 6.5.3 Unary operators . 6.5.4 Cast operators 6.5.5 Multiplicative operators . 6.5.6 Additive operators 6.5.7 Bitwise shift operators 6.5.8 Relational operators 6.5.9 6.5.10 Bitwise AND operator 6.5.11 Bitwise exclusive OR operator 6.5.12 Bitwise inclusive OR operator . 6.5.13 Logical AND operator . 6.5.14 Logical OR operator . 6.5.15 Conditional operator . 6.5.16 Assignment operators . . 6.5.17 Comma operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expression and null statements . Selection statements . Iteration statements . Jump statements . . . . . . . . . . . . . . Storage-class specifiers . . Type specifiers . . Type qualifiers . Function specifiers . . . . . . . . . . Labeled statements 6.7.1 6.7.2 6.7.3 6.7.4 . 6.7.5 Declarators . Type names 6.7.6 Type definitions 6.7.7 Initialization 6.7.8 6.8 Statements and blocks 6.10 Preprocessing directives 6.9 External definitions . . . . . . . . . . . . . . . . 6.8.1 6.8.2 Compound statement 6.8.3 6.8.4 6.8.5 6.8.6 . . . . . . Function definitions External object definitions . . . . . . . . 6.10.1 Conditional inclusion 6.10.2 Source file inclusion 6.10.3 Macro replacement . 6.10.4 Line control . 6.10.5 Error directive 6.10.6 Pragma directive 6.9.1 6.9.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 . 69 . 78 . 81 . 82 . 82 . 84 . 85 . 86 . 87 . 88 . 88 . 89 . 89 . 90 . 91 . 94 . 95 . 97 . 98 . 99 . 108 . 112 . 114 . 122 . 123 . 125 . 131 . 131 . 132 . 132 . 133 . 135 . 136 . 140 . 141 . 143 . 145 . 147 . 149 . 151 . 158 . 159 . 159 iv Contents
©ISO/IEC ISO/IEC 9899:1999 (E) 7. Library . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . Program diagnostics 7.2 Diagnostics . 6.10.7 Null directive 6.10.8 Predefined macro names . 6.10.9 Pragma operator . 6.11 Future language directions . . 6.11.1 Floating types 6.11.2 Linkages of identifiers . 6.11.3 External names 6.11.4 Character escape sequences 6.11.5 Storage-class specifiers 6.11.6 Function declarators . 6.11.7 Function definitions . 6.11.8 Pragma directives 6.11.9 Predefined macro names . . . . . Introduction . 7.1.1 Definitions of terms . 7.1.2 . 7.1.3 Reserved identifiers 7.1.4 Use of library functions . . . . . . . . . . . . . . 7.3 Complex arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . The CX_LIMITED_RANGE pragma . Trigonometric functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.7 Characteristics of floating types 7.8 Format conversion of integer types . 7.3.1 Introduction 7.3.2 Conventions 7.3.3 Branch cuts 7.3.4 7.3.5 7.3.6 Hyperbolic functions 7.3.7 7.3.8 7.3.9 Manipulation functions 7.4 Character handling . . Exponential and logarithmic functions Power and absolute-value functions . . . . 7.4.1 Character classification functions 7.4.2 Character case mapping functions . . 7.5 Errors 7.6 Floating-point environment 7.8.1 Macros for format specifiers 7.8.2 . Functions for greatest-width integer types 7.6.1 7.6.2 7.6.3 Rounding 7.6.4 The FENV_ACCESS pragma Floating-point exceptions . . Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 . 160 . 161 . 163 . 163 . 163 . 163 . 163 . 163 . 163 . 163 . 163 . 163 . 164 . 164 . 164 . 165 . 166 . 166 . 169 . 169 . 170 . 170 . 171 . 171 . 171 . 172 . 174 . 176 . 177 . 178 . 181 . 181 . 184 . 186 . 187 . 189 . 190 . 192 . 194 . 196 . 197 . 197 . 198 v . . . . . Contents
ISO/IEC 9899:1999 (E) ©ISO/IEC . . . . . . . . . . . . . . . . . . . . . . . 7.12 Mathematics 7.9 Alternative spellings . 7.10 Sizes of integer types . 7.11 Localization . . . . . . 7.11.1 Locale control 7.11.2 Numeric formatting convention inquiry . . . 7.12.1 Treatment of error conditions . 7.12.2 The FP_CONTRACT pragma . . 7.12.3 Classification macros . . 7.12.4 Trigonometric functions . . 7.12.5 Hyperbolic functions 7.12.6 Exponential and logarithmic functions 7.12.7 Power and absolute-value functions . 7.12.8 Error and gamma functions . 7.12.9 Nearest integer functions . 7.12.10 Remainder functions . 7.12.11 Manipulation functions 7.12.12 Maximum, minimum, and positive difference functions 7.12.13 Floating multiply-add 7.12.14 Comparison macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.13 Nonlocal jumps . . . . . . . . . 7.15.1 Variable argument list access macros 7.13.1 Save calling environment 7.13.2 Restore calling environment . . . 7.14.1 Specify signal handling . 7.14.2 Send signal . 7.15 Variable arguments 7.14 Signal handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integer types 7.19 Input/output 7.16 Boolean type and values 7.17 Common definitions . 7.18 Integer types . . . . . . 7.18.1 7.18.2 Limits of specified-width integer types . 7.18.3 Limits of other integer types . 7.18.4 Macros for integer constants . . . . . . . . . . . . . . . . 7.19.1 . 7.19.2 Streams . . 7.19.3 Files 7.19.4 Operations on files 7.19.5 File access functions 7.19.6 Formatted input/output functions 7.19.7 Character input/output functions 7.19.8 Direct input/output functions Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 . 202 . 203 . 204 . 205 . 211 . 213 . 214 . 215 . 217 . 220 . 222 . 227 . 229 . 230 . 234 . 235 . 237 . 238 . 239 . 242 . 242 . 243 . 245 . 246 . 247 . 248 . 248 . 252 . 253 . 254 . 254 . 256 . 258 . 259 . 261 . 261 . 263 . 265 . 267 . 269 . 273 . 294 . 299 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
©ISO/IEC ISO/IEC 9899:1999 (E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integer arithmetic functions 7.21 String handling 7.20 General utilities 7.19.9 File positioning functions 7.19.10 Error-handling functions . . . . 7.20.1 Numeric conversion functions 7.20.2 Pseudo-random sequence generation functions . . 7.20.3 Memory management functions . 7.20.4 Communication with the environment . . 7.20.5 Searching and sorting utilities . . 7.20.6 7.20.7 Multibyte/wide character conversion functions 7.20.8 Multibyte/wide string conversion functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.24 Extended multibyte and wide character utilities . . . . . . 7.21.1 String function conventions . 7.21.2 Copying functions 7.21.3 Concatenation functions 7.21.4 Comparison functions . . 7.21.5 Search functions 7.21.6 Miscellaneous functions 7.22 Type-generic math . 7.23 Date and time . . . 7.24.1 . 7.24.2 Formatted wide character input/output functions . . 7.24.3 Wide character input/output functions . . . 7.24.4 General wide string utilities . . 7.24.5 Wide character time conversion functions 7.24.6 Extended multibyte/wide character conversion utilities . . 7.23.1 Components of time 7.23.2 Time manipulation functions 7.23.3 Time conversion functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduction 7.26 Future library directions 7.25 Wide character classification and mapping utilities . . . . . . . . . 7.25.1 . 7.25.2 Wide character classification utilities . 7.25.3 Wide character case mapping utilities . . . 7.26.1 Complex arithmetic . 7.26.2 Character handling . . 7.26.3 Errors 7.26.4 Format conversion of integer types . . 7.26.5 Localization . . 7.26.6 Signal handling . 7.26.7 Boolean type and values . . 7.26.8 . . 7.26.9 Integer types Input/output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 . 303 . 305 . 306 . 311 . 312 . 314 . 317 . 319 . 320 . 322 . 324 . 324 . 324 . 326 . 327 . 329 . 332 . 334 . 337 . 337 . 338 . 340 . 347 . 347 . 348 . 366 . 370 . 384 . 385 . 392 . 392 . 393 . 398 . 400 . 400 . 400 . 400 . 400 . 400 . 400 . 400 . 400 . 401 vii
ISO/IEC 9899:1999 (E) ©ISO/IEC . 7.26.10 General utilities . 7.26.11 String handling 7.26.12 Extended multibyte and wide character utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.26.13 Wide character classification and mapping utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Lexical grammar A.2 Phrase structure grammar A.3 Preprocessing directives . Annex A (informative) Language syntax summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annex B (informative) Library summary . . . . . . B.1 Diagnostics . . . . . . B.2 Complex . . . . . B.3 Character handling . . . . . . B.4 Errors . . . . B.5 Floating-point environment . . . B.6 Characteristics of floating types . . B.7 Format conversion of integer types . . B.8 Alternative spellings . . . . . B.9 Sizes of integer types . . . . B.10 Localization . . . . B.11 Mathematics . . . . B.12 Nonlocal jumps . . B.13 Signal handling . . . . . . B.14 Variable arguments . . . B.15 Boolean type and values . . . B.16 Common definitions . . . . B.17 Integer types . . . . B.18 Input/output . . . B.19 General utilities . . . . B.20 String handling . . . B.21 Type-generic math . . . . B.22 Date and time . B.23 Extended multibyte/wide character utilities B.24 Wide character classification and mapping utilities . . . . . . . Annex C (informative) Sequence points Annex D (normative) Universal character names for identifiers Annex E (informative) Implementation limits Annex F (normative) IEC 60559 floating-point arithmetic Introduction . F.1 F.2 Types F.3 Operators and functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 . 401 . 401 . 401 . 402 . 402 . 408 . 415 . 417 . 417 . 417 . 419 . 419 . 419 . 420 . 420 . 421 . 421 . 421 . 421 . 426 . 426 . 426 . 426 . 427 . 427 . 427 . 429 . 431 . 432 . 432 . 433 . 435 . 437 . 438 . 440 . 442 . 442 . 442 . 443 viii Contents
分享到:
收藏