Chapter 8 |
8
|
Preprocessor Directives and Predefined Macros
|
8.1
|
Macro Definition (#define and #undef)
|
8.1.1
|
Object-Like Form
|
8.1.2
|
Function-Like Form
|
8.1.2.1
|
Rules for Specifying Macro Definitions
|
8.1.2.2
|
Rules for Specifying Macro References
|
8.1.2.3
|
Side Effects in Macro Arguments
|
8.1.3
|
Conversions to String Literals (#)
|
8.1.4
|
Token Concatenation(##)
|
8.2
|
Conditional Compilation (#if, #ifdef, #ifndef, #else, #elif, #endif, and defined)
|
8.2.1
|
The #if Directive
|
8.2.2
|
The #ifdef Directive
|
8.2.3
|
The #ifndef Directive
|
8.2.4
|
The #else Directive
|
8.2.5
|
The #elif Directive
|
8.2.6
|
The #endif Directive
|
8.2.7
|
The defined Operator
|
8.3
|
File Inclusion (#include)
|
8.4
|
Explicit Line Numbering (#line)
|
8.5
|
Implementation-Specific Preprocessor Directive (#pragma)
|
8.6
|
Error Directive (#error)
|
8.7
|
Null Directive (#)
|
8.8
|
Predefined Macro Names
|
8.8.1
|
The __DATE__ Macro
|
8.8.2
|
The __FILE__ Macro
|
8.8.3
|
The __LINE__ Macro
|
8.8.4
|
The __TIME__ Macro
|
8.8.5
|
The __STDC__ Macro
|
8.8.6
|
The __STDC_HOSTED__ Macro
|
8.8.7
|
The __STDC_VERSION__ Macro
|
8.8.8
|
The __STDC_ISO_10646__ Macro
|
8.8.9
|
System-Identification Macros
|
8.9
|
The __func__ Predeclared Identifier
|
Chapter 9 |
9
|
The ANSI C Standard Library
|
9.1
|
Diagnostics (<assert.h>)
|
9.2
|
Complex Arithmetic(<complex.h>)
|
9.3
|
Character Processing (<ctype.h>)
|
9.4
|
Error Codes (<errno.h>)
|
9.5
|
ANSI C Limits (<limits.h> and <float.h>)
|
9.6
|
Localization (<locale.h>)
|
9.7
|
Mathematics (<math.h>)
|
9.8
|
Nonlocal Jumps (<setjmp.h>)
|
9.9
|
Signal Handling (<signal.h>)
|
9.10
|
Variable Arguments (<stdarg.h>)
|
9.11
|
Boolean Type and Values(<stdbool.h>)
|
9.12
|
Common Definitions (<stddef.h>)
|
9.13
|
Standard Input/Output (<stdio.h>)
|
9.14
|
General Utilities (<stdlib.h>)
|
9.15
|
String Processing (<string.h>)
|
9.16
|
Type-generic Math (<tgmath.h>)
|
9.16.1
|
Real-Type Determination
|
9.16.2
|
Unsuffixed Functions in (<math.h>) and (<complex.h>) with the Same Name
|
9.16.3
|
Unsuffixed Functions in (<math.h>) with no c-prefixed Counterpart in (<complex.h>)
|
9.16.4
|
Unsuffixed Functions in (<complex.h>) that are not c-prefixed Counterparts to Functions in (<math.h>)
|
9.16.5
|
Example
|
9.16.6
|
Imaginary Arguments
|
9.17
|
Date and Time (<time.h>)
|
Appendix A |
Appendix A
|
Language Syntax Summary
|
A.1
|
Lexical Grammar
|
A.1.1
|
Tokens
|
A.1.2
|
Keywords
|
A.1.3
|
Identifiers
|
A.1.4
|
Constants
|
A.1.5
|
String Literals
|
A.1.6
|
Operators
|
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
|
Appendix B |
Appendix B
|
ANSI Conformance Summary
|
B.1
|
Diagnostics (§2.1.1.3)
|
B.2
|
Hosted Environment (§2.1.2.2)
|
B.3
|
Multibyte Characters (§2.2.1.2)
|
B.4
|
Escape Sequences (§2.2.2)
|
B.5
|
Translation Limits (§2.2.4.1)
|
B.6
|
Numerical Limits (§2.2.4.2)
|
B.7
|
Keywords (§3.1.1)
|
B.8
|
Identifiers (§3.1.2)
|
B.9
|
Linkages of Identifiers (§3.1.2.2)
|
B.10
|
Types (§3.1.2.5)
|
B.11
|
Integer Constants (§3.1.3.2)
|
B.12
|
Character Constants (§3.1.3.4)
|
B.13
|
String Literals (§3.1.4)
|
B.14
|
Operators---Compound Assignment (§3.1.5)
|
B.15
|
Characters and Integers---Value-Preserving Promotions (§3.2.1.1)
|
B.16
|
Signed and Unsigned Integer Conversions (§3.2.1.2)
|
B.17
|
Floating and Integral Conversions (§3.2.1.3)
|
B.18
|
Pointer Conversions (§3.2.2.3)
|
B.19
|
Structure and Union Members (§3.3.2.3)
|
B.20
|
The sizeof Operator (§3.3.3.4)
|
B.21
|
Cast Operators (§3.3.4)
|
B.22
|
Multiplicative Operators (§3.3.5)
|
B.23
|
Additive Operators (§3.3.6)
|
B.24
|
Bitwise Shift Operators (§3.3.7)
|
B.25
|
Storage-Class Specifiers (§3.5.1)
|
B.26
|
Type Specifiers (§3.5.2)
|
B.27
|
Structure and Union Specifiers (§3.5.2.1)
|
B.28
|
Variant Structures and Unions
|
B.29
|
Structure Alignment
|
B.30
|
Enumeration Specifiers (§3.5.2.2)
|
B.31
|
Type Qualifiers (§3.5.3)
|
B.32
|
Declarators (§3.5.4)
|
B.33
|
Initialization (§3.5.7)
|
B.34
|
The switch Statement (§3.6.4.2)
|
B.35
|
External Object Definitions (§3.7.2)
|
B.36
|
Conditional Inclusion (§3.8.1)
|
B.37
|
Source File Inclusion (§3.8.2)
|
B.38
|
Macro Replacement---Predefined Macro Names (§3.8.3)
|
B.39
|
The ## Operator (§3.8.3.3)
|
B.40
|
Error Directive (§3.8.5)
|
B.41
|
Pragma Directive (§3.8.6)
|
B.42
|
Function Inline Expansion
|
B.43
|
Linkage Pragmas
|
B.44
|
Other Pragmas
|