⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.html

📁 gcc手册
💻 HTML
字号:
   <html lang="en">

<head>

<title>The C Preprocessor</title>

<meta http-equiv="Content-Type" content="text/html">

<meta name="description" content="The C Preprocessor">

<meta name="generator" content="makeinfo 4.3">

<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">

<!--

Copyright &copy; 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,

1997, 1998, 1999, 2000, 2001, 2002, 2003

Free Software Foundation, Inc.



   <p>Permission is granted to copy, distribute and/or modify this document

under the terms of the GNU Free Documentation License, Version 1.1 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".



   <p>This manual contains no Invariant Sections.  The Front-Cover Texts are

(a) (see below), and the Back-Cover Texts are (b) (see below).



   <p>(a) The FSF's Front-Cover Text is:



   <p>A GNU Manual



   <p>(b) The FSF's Back-Cover Text is:



   <p>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. 

-->

</head>

<body>

<h1 class="settitle">The C Preprocessor</h1>



<div class="contents">

<h2>Table of Contents</h2>

<ul>

<li><a name="toc_Top" href="index.html#Top"></a>

<li><a name="toc_Overview" href="Overview.html#Overview">Overview</a>

<ul>

<li><a href="Initial-processing.html#Initial%20processing">Initial processing</a>

<li><a href="Tokenization.html#Tokenization">Tokenization</a>

<li><a href="The-preprocessing-language.html#The%20preprocessing%20language">The preprocessing language</a>

</li></ul>

<li><a name="toc_Header%20Files" href="Header-Files.html#Header%20Files">Header Files</a>

<ul>

<li><a href="Include-Syntax.html#Include%20Syntax">Include Syntax</a>

<li><a href="Include-Operation.html#Include%20Operation">Include Operation</a>

<li><a href="Search-Path.html#Search%20Path">Search Path</a>

<li><a href="Once-Only-Headers.html#Once-Only%20Headers">Once-Only Headers</a>

<li><a href="Computed-Includes.html#Computed%20Includes">Computed Includes</a>

<li><a href="Wrapper-Headers.html#Wrapper%20Headers">Wrapper Headers</a>

<li><a href="System-Headers.html#System%20Headers">System Headers</a>

</li></ul>

<li><a name="toc_Macros" href="Macros.html#Macros">Macros</a>

<ul>

<li><a href="Object-like-Macros.html#Object-like%20Macros">Object-like Macros</a>

<li><a href="Function-like-Macros.html#Function-like%20Macros">Function-like Macros</a>

<li><a href="Macro-Arguments.html#Macro%20Arguments">Macro Arguments</a>

<li><a href="Stringification.html#Stringification">Stringification</a>

<li><a href="Concatenation.html#Concatenation">Concatenation</a>

<li><a href="Variadic-Macros.html#Variadic%20Macros">Variadic Macros</a>

<li><a href="Predefined-Macros.html#Predefined%20Macros">Predefined Macros</a>

<ul>

<li><a href="Standard-Predefined-Macros.html#Standard%20Predefined%20Macros">Standard Predefined Macros</a>

<li><a href="Common-Predefined-Macros.html#Common%20Predefined%20Macros">Common Predefined Macros</a>

<li><a href="System-specific-Predefined-Macros.html#System-specific%20Predefined%20Macros">System-specific Predefined Macros</a>

<li><a href="C---Named-Operators.html#C++%20Named%20Operators">C++ Named Operators</a>

</li></ul>

<li><a href="Undefining-and-Redefining-Macros.html#Undefining%20and%20Redefining%20Macros">Undefining and Redefining Macros</a>

<li><a href="Directives-Within-Macro-Arguments.html#Directives%20Within%20Macro%20Arguments">Directives Within Macro Arguments</a>

<li><a href="Macro-Pitfalls.html#Macro%20Pitfalls">Macro Pitfalls</a>

<ul>

<li><a href="Misnesting.html#Misnesting">Misnesting</a>

<li><a href="Operator-Precedence-Problems.html#Operator%20Precedence%20Problems">Operator Precedence Problems</a>

<li><a href="Swallowing-the-Semicolon.html#Swallowing%20the%20Semicolon">Swallowing the Semicolon</a>

<li><a href="Duplication-of-Side-Effects.html#Duplication%20of%20Side%20Effects">Duplication of Side Effects</a>

<li><a href="Self-Referential-Macros.html#Self-Referential%20Macros">Self-Referential Macros</a>

<li><a href="Argument-Prescan.html#Argument%20Prescan">Argument Prescan</a>

<li><a href="Newlines-in-Arguments.html#Newlines%20in%20Arguments">Newlines in Arguments</a>

</li></ul>

</li></ul>

<li><a name="toc_Conditionals" href="Conditionals.html#Conditionals">Conditionals</a>

<ul>

<li><a href="Conditional-Uses.html#Conditional%20Uses">Conditional Uses</a>

<li><a href="Conditional-Syntax.html#Conditional%20Syntax">Conditional Syntax</a>

<ul>

<li><a href="Ifdef.html#Ifdef">Ifdef</a>

<li><a href="If.html#If">If</a>

<li><a href="Defined.html#Defined">Defined</a>

<li><a href="Else.html#Else">Else</a>

<li><a href="Elif.html#Elif">Elif</a>

</li></ul>

<li><a href="Deleted-Code.html#Deleted%20Code">Deleted Code</a>

</li></ul>

<li><a name="toc_Diagnostics" href="Diagnostics.html#Diagnostics">Diagnostics</a>

<li><a name="toc_Line%20Control" href="Line-Control.html#Line%20Control">Line Control</a>

<li><a name="toc_Pragmas" href="Pragmas.html#Pragmas">Pragmas</a>

<li><a name="toc_Other%20Directives" href="Other-Directives.html#Other%20Directives">Other Directives</a>

<li><a name="toc_Preprocessor%20Output" href="Preprocessor-Output.html#Preprocessor%20Output">Preprocessor Output</a>

<li><a name="toc_Traditional%20Mode" href="Traditional-Mode.html#Traditional%20Mode">Traditional Mode</a>

<ul>

<li><a href="Traditional-lexical-analysis.html#Traditional%20lexical%20analysis">Traditional lexical analysis</a>

<li><a href="Traditional-macros.html#Traditional%20macros">Traditional macros</a>

<li><a href="Traditional-miscellany.html#Traditional%20miscellany">Traditional miscellany</a>

<li><a href="Traditional-warnings.html#Traditional%20warnings">Traditional warnings</a>

</li></ul>

<li><a name="toc_Implementation%20Details" href="Implementation-Details.html#Implementation%20Details">Implementation Details</a>

<ul>

<li><a href="Implementation-defined-behavior.html#Implementation-defined%20behavior">Implementation-defined behavior</a>

<li><a href="Implementation-limits.html#Implementation%20limits">Implementation limits</a>

<li><a href="Obsolete-Features.html#Obsolete%20Features">Obsolete Features</a>

<ul>

<li><a href="Assertions.html#Assertions">Assertions</a>

<li><a href="Obsolete-once-only-headers.html#Obsolete%20once-only%20headers">Obsolete once-only headers</a>

</li></ul>

<li><a href="Differences-from-previous-versions.html#Differences%20from%20previous%20versions">Differences from previous versions</a>

</li></ul>

<li><a name="toc_Invocation" href="Invocation.html#Invocation">Invocation</a>

<li><a name="toc_Environment%20Variables" href="Environment-Variables.html#Environment%20Variables">Environment Variables</a>

<li><a name="toc_GNU%20Free%20Documentation%20License" href="GNU-Free-Documentation-License.html#GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>

<ul>

<li><a href="GNU-Free-Documentation-License.html#GNU%20Free%20Documentation%20License">ADDENDUM: How to use this License for your documents</a>

</li></ul>

<li><a name="toc_Index%20of%20Directives" href="Index-of-Directives.html#Index%20of%20Directives">Index of Directives</a>

<li><a name="toc_Option%20Index" href="Option-Index.html#Option%20Index">Option Index</a>

<li><a name="toc_Concept%20Index" href="Concept-Index.html#Concept%20Index">Concept Index</a>

</li></ul>

</div>





<div class="node">

<p>

Node:<a name="Top">Top</a>,

Next:<a rel="next" accesskey="n" href="Overview.html#Overview">Overview</a>,

Up:<a rel="up" accesskey="u" href="../index.html#dir">(dir)</a>

<hr><br>

</div>



<h2 class="unnumbered"></h2>



   <p>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.



<ul class="menu">

<li><a accesskey="1" href="Overview.html#Overview">Overview</a>: 

<li><a accesskey="2" href="Header-Files.html#Header%20Files">Header Files</a>: 

<li><a accesskey="3" href="Macros.html#Macros">Macros</a>: 

<li><a accesskey="4" href="Conditionals.html#Conditionals">Conditionals</a>: 

<li><a accesskey="5" href="Diagnostics.html#Diagnostics">Diagnostics</a>: 

<li><a accesskey="6" href="Line-Control.html#Line%20Control">Line Control</a>: 

<li><a accesskey="7" href="Pragmas.html#Pragmas">Pragmas</a>: 

<li><a accesskey="8" href="Other-Directives.html#Other%20Directives">Other Directives</a>: 

<li><a accesskey="9" href="Preprocessor-Output.html#Preprocessor%20Output">Preprocessor Output</a>: 

<li><a href="Traditional-Mode.html#Traditional%20Mode">Traditional Mode</a>: 

<li><a href="Implementation-Details.html#Implementation%20Details">Implementation Details</a>: 

<li><a href="Invocation.html#Invocation">Invocation</a>: 

<li><a href="Environment-Variables.html#Environment%20Variables">Environment Variables</a>: 

<li><a href="GNU-Free-Documentation-License.html#GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>: 

<li><a href="Index-of-Directives.html#Index%20of%20Directives">Index of Directives</a>: 

<li><a href="Option-Index.html#Option%20Index">Option Index</a>: 

<li><a href="Concept-Index.html#Concept%20Index">Concept Index</a>:



<p>--- The Detailed Node Listing ---



<p>Overview



</p><li><a href="Initial-processing.html#Initial%20processing">Initial processing</a>: 

<li><a href="Tokenization.html#Tokenization">Tokenization</a>: 

<li><a href="The-preprocessing-language.html#The%20preprocessing%20language">The preprocessing language</a>:



<p>Header Files



</p><li><a href="Include-Syntax.html#Include%20Syntax">Include Syntax</a>: 

<li><a href="Include-Operation.html#Include%20Operation">Include Operation</a>: 

<li><a href="Search-Path.html#Search%20Path">Search Path</a>: 

<li><a href="Once-Only-Headers.html#Once-Only%20Headers">Once-Only Headers</a>: 

<li><a href="Computed-Includes.html#Computed%20Includes">Computed Includes</a>: 

<li><a href="Wrapper-Headers.html#Wrapper%20Headers">Wrapper Headers</a>: 

<li><a href="System-Headers.html#System%20Headers">System Headers</a>:



<p>Macros



</p><li><a href="Object-like-Macros.html#Object-like%20Macros">Object-like Macros</a>: 

<li><a href="Function-like-Macros.html#Function-like%20Macros">Function-like Macros</a>: 

<li><a href="Macro-Arguments.html#Macro%20Arguments">Macro Arguments</a>: 

<li><a href="Stringification.html#Stringification">Stringification</a>: 

<li><a href="Concatenation.html#Concatenation">Concatenation</a>: 

<li><a href="Variadic-Macros.html#Variadic%20Macros">Variadic Macros</a>: 

<li><a href="Predefined-Macros.html#Predefined%20Macros">Predefined Macros</a>: 

<li><a href="Undefining-and-Redefining-Macros.html#Undefining%20and%20Redefining%20Macros">Undefining and Redefining Macros</a>: 

<li><a href="Directives-Within-Macro-Arguments.html#Directives%20Within%20Macro%20Arguments">Directives Within Macro Arguments</a>: 

<li><a href="Macro-Pitfalls.html#Macro%20Pitfalls">Macro Pitfalls</a>:



<p>Predefined Macros



</p><li><a href="Standard-Predefined-Macros.html#Standard%20Predefined%20Macros">Standard Predefined Macros</a>: 

<li><a href="Common-Predefined-Macros.html#Common%20Predefined%20Macros">Common Predefined Macros</a>: 

<li><a href="System-specific-Predefined-Macros.html#System-specific%20Predefined%20Macros">System-specific Predefined Macros</a>: 

<li><a href="C---Named-Operators.html#C++%20Named%20Operators">C++ Named Operators</a>:



<p>Macro Pitfalls



</p><li><a href="Misnesting.html#Misnesting">Misnesting</a>: 

<li><a href="Operator-Precedence-Problems.html#Operator%20Precedence%20Problems">Operator Precedence Problems</a>: 

<li><a href="Swallowing-the-Semicolon.html#Swallowing%20the%20Semicolon">Swallowing the Semicolon</a>: 

<li><a href="Duplication-of-Side-Effects.html#Duplication%20of%20Side%20Effects">Duplication of Side Effects</a>: 

<li><a href="Self-Referential-Macros.html#Self-Referential%20Macros">Self-Referential Macros</a>: 

<li><a href="Argument-Prescan.html#Argument%20Prescan">Argument Prescan</a>: 

<li><a href="Newlines-in-Arguments.html#Newlines%20in%20Arguments">Newlines in Arguments</a>:



<p>Conditionals



</p><li><a href="Conditional-Uses.html#Conditional%20Uses">Conditional Uses</a>: 

<li><a href="Conditional-Syntax.html#Conditional%20Syntax">Conditional Syntax</a>: 

<li><a href="Deleted-Code.html#Deleted%20Code">Deleted Code</a>:



<p>Conditional Syntax



</p><li><a href="Ifdef.html#Ifdef">Ifdef</a>: 

<li><a href="If.html#If">If</a>: 

<li><a href="Defined.html#Defined">Defined</a>: 

<li><a href="Else.html#Else">Else</a>: 

<li><a href="Elif.html#Elif">Elif</a>:



<p>Implementation Details



</p><li><a href="Implementation-defined-behavior.html#Implementation-defined%20behavior">Implementation-defined behavior</a>: 

<li><a href="Implementation-limits.html#Implementation%20limits">Implementation limits</a>: 

<li><a href="Obsolete-Features.html#Obsolete%20Features">Obsolete Features</a>: 

<li><a href="Differences-from-previous-versions.html#Differences%20from%20previous%20versions">Differences from previous versions</a>:



<p>Obsolete Features



</p><li><a href="Assertions.html#Assertions">Assertions</a>: 

<li><a href="Obsolete-once-only-headers.html#Obsolete%20once-only%20headers">Obsolete once-only headers</a>:



   </ul>



Copyright &copy; 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,

1997, 1998, 1999, 2000, 2001, 2002, 2003

Free Software Foundation, Inc.



   <p>Permission is granted to copy, distribute and/or modify this document

under the terms of the GNU Free Documentation License, Version 1.1 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".



   <p>This manual contains no Invariant Sections.  The Front-Cover Texts are

(a) (see below), and the Back-Cover Texts are (b) (see below).



   <p>(a) The FSF's Front-Cover Text is:



   <p>A GNU Manual



   <p>(b) The FSF's Back-Cover Text is:



   <p>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. 



   </body></html>



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -