Red Hat Enterprise Linux 4

Using cpp, the C Preprocessor

Legal Notice
Table of Contents
1. Overview
1.1. Character sets
1.2. Initial processing
1.3. Tokenization
1.4. The preprocessing language
2. Header Files
2.1. Include Syntax
2.2. Include Operation
2.3. Search Path
2.4. Once-Only Headers
2.5. Computed Includes
2.6. Wrapper Headers
2.7. System Headers
3. Macros
3.1. Object-like Macros
3.2. Function-like Macros
3.3. Macro Arguments
3.4. Stringification
3.5. Concatenation
3.6. Variadic Macros
3.7. Predefined Macros
3.7.1. Standard Predefined Macros
3.7.2. Common Predefined Macros
3.7.3. System-specific Predefined Macros
3.7.4. C++ Named Operators
3.8. Undefining and Redefining Macros
3.9. Directives Within Macro Arguments
3.10. Macro Pitfalls
3.10.1. Misnesting
3.10.2. Operator Precedence Problems
3.10.3. Swallowing the Semicolon
3.10.4. Duplication of Side Effects
3.10.5. Self-Referential Macros
3.10.6. Argument Prescan
3.10.7. Newlines in Arguments
4. Conditionals
4.1. Conditional Uses
4.2. Conditional Syntax
4.2.1. Ifdef
4.2.2. If
4.2.3. Defined
4.2.4. Else
4.2.5. Elif
4.3. Deleted Code
5. Diagnostics
6. Line Control
7. Pragmas
8. Other Directives
9. Preprocessor Output
10. Traditional Mode
10.1. Traditional lexical analysis
10.2. Traditional macros
10.3. Traditional miscellany
10.4. Traditional warnings
11. Implementation Details
11.1. Implementation-defined behavior
11.2. Implementation limits
11.3. Obsolete Features
11.3.1. Assertions
11.3.2. Obsolete once-only headers
11.4. Differences from previous versions
12. Invocation
13. Environment Variables
14. GNU Free Documentation License
14.1. ADDENDUM: How to use this License for your documents
Index of Directives
Option Index
Concept Index