Spec-Zone.ru › GCC 9 CPP

The C Preprocessor

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 Alternatives to Wrapper #ifndef
    • 2.6 Computed Includes
    • 2.7 Wrapper Headers
    • 2.8 System Headers
  • 3 Macros
    • 3.1 Object-like Macros
    • 3.2 Function-like Macros
    • 3.3 Macro Arguments
    • 3.4 Stringizing
    • 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.2.6 __has_attribute
      • 4.2.7 __has_cpp_attribute
      • 4.2.8 __has_include
    • 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
  • 12 Invocation
  • 13 Environment Variables
  • GNU Free Documentation License
    • ADDENDUM: How to use this License for your documents
  • Index of Directives
  • Option Index
  • Concept Index

Next: Overview, Up: (dir) [Contents][Index]

The C preprocessor implements the macro language used to transform C, C++, and Objective-C programs before they are compiled. It can also be useful on its own.

• Overview:
• Header Files:
• Macros:
• Conditionals:
• Diagnostics:
• Line Control:
• Pragmas:
• Other Directives:
• Preprocessor Output:
• Traditional Mode:
• Implementation Details:
• Invocation:
• Environment Variables:
• GNU Free Documentation License:
• Index of Directives:
• Option Index:
• Concept Index:
— The Detailed Node Listing — Overview
• Character sets:
• Initial processing:
• Tokenization:
• The preprocessing language:
Header Files
• Include Syntax:
• Include Operation:
• Search Path:
• Once-Only Headers:
• Alternatives to Wrapper #ifndef:
• Computed Includes:
• Wrapper Headers:
• System Headers:
Macros
• Object-like Macros:
• Function-like Macros:
• Macro Arguments:
• Stringizing:
• Concatenation:
• Variadic Macros:
• Predefined Macros:
• Undefining and Redefining Macros:
• Directives Within Macro Arguments:
• Macro Pitfalls:
Predefined Macros
• Standard Predefined Macros:
• Common Predefined Macros:
• System-specific Predefined Macros:
• C++ Named Operators:
Macro Pitfalls
• Misnesting:
• Operator Precedence Problems:
• Swallowing the Semicolon:
• Duplication of Side Effects:
• Self-Referential Macros:
• Argument Prescan:
• Newlines in Arguments:
Conditionals
• Conditional Uses:
• Conditional Syntax:
• Deleted Code:
Conditional Syntax
• Ifdef:
• If:
• Defined:
• Else:
• Elif:
Implementation Details
• Implementation-defined behavior:
• Implementation limits:
• Obsolete Features:
Obsolete Features
• Obsolete Features:

Copyright © 1987-2019 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. A copy of the license is included in the section entitled “GNU Free Documentation License”.

This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below).

(a) The FSF’s Front-Cover Text is:

A GNU Manual

(b) The FSF’s Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development.

Next: Overview, Up: (dir) [Contents][Index]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/cpp/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API