Contents
iii
6.5.5 Multiplicative operators..................................................................................67
6.5.6 Additive operators ..........................................................................................67
6.5.7 Bitwise shift operators ....................................................................................68
6.5.8 Relational operators ........................................................................................69
6.5.9 Equality operators...........................................................................................69 5
6.5.15 Conditional operator .......................................................................................69
6.5.16 Assignment operators .....................................................................................69
6.5.17 Comma operator .............................................................................................71
6.6 Constant expressions ..................................................................................................71
6.7 Declarations ................................................................................................................72 10
6.7.1 Storage-class specifiers...................................................................................72
6.7.2 Type specifiers................................................................................................72
6.7.3 Type qualifiers ................................................................................................75
6.7.4 Function specifiers..........................................................................................80
6.7.5 Declarators......................................................................................................81 15
6.7.6 Type names.....................................................................................................87
6.7.7 Type definitions ..............................................................................................87
6.7.8 Initialization....................................................................................................88
6.8 Statements and blocks.................................................................................................90
6.8.1 Labeled statements..........................................................................................91 20
6.8.2 Compound statement ......................................................................................92
6.8.3 Expression and null statements.......................................................................92
6.8.4 Selection statements........................................................................................92
6.8.5 Iteration statements.........................................................................................93
6.8.6. Jump statements..............................................................................................94 25
6.9 External definitions.....................................................................................................95
6.9.1 Function definitions ........................................................................................95
6.9.2 External object definitions..............................................................................97
6.10 Preprocessing directives .............................................................................................97
6.10.1 Conditional inclusion......................................................................................97 30
6.10.2 Source file inclusion .......................................................................................98
6.10.3 Macro replacement .........................................................................................99
6.10.4 Line control...................................................................................................105
6.10.5 Error directive...............................................................................................105
6.10.6 Pragma directive ...........................................................................................105 35
6.10.7 Null directive ................................................................................................105
6.10.8 Predefined macro names...............................................................................106
6.10.9 Pragma operator............................................................................................106
6.11 Future language directions........................................................................................106
6.11.1 Floating types................................................................................................107 40
6.11.2 Linkages of identifiers ..................................................................................107
6.11.3 External names..............................................................................................107
6.11.4 Character escape sequences..........................................................................107
6.11.5 Storage-class specifiers.................................................................................107
6.11.6 Function declarators......................................................................................107 45
6.11.7 Function definitions ......................................................................................108
6.11.8 Pragma directives..........................................................................................108
6.11.9 Predefined macro names...............................................................................108