You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1987-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation. A copy of
  7. the license is included in the
  8. section entitled "GNU Free Documentation License".
  9. This manual contains no Invariant Sections. The Front-Cover Texts are
  10. (a) (see below), and the Back-Cover Texts are (b) (see below).
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>Top (The C Preprocessor)</title>
  21. <meta name="description" content="Top (The C Preprocessor)">
  22. <meta name="keywords" content="Top (The C Preprocessor)">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="#Top" rel="start" title="Top">
  27. <link href="Index-of-Directives.html#Index-of-Directives" rel="index" title="Index of Directives">
  28. <link href="#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="../dir/index.html" rel="up" title="(dir)">
  30. <link href="Overview.html#Overview" rel="next" title="Overview">
  31. <style type="text/css">
  32. <!--
  33. a.summary-letter {text-decoration: none}
  34. blockquote.indentedblock {margin-right: 0em}
  35. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  36. blockquote.smallquotation {font-size: smaller}
  37. div.display {margin-left: 3.2em}
  38. div.example {margin-left: 3.2em}
  39. div.lisp {margin-left: 3.2em}
  40. div.smalldisplay {margin-left: 3.2em}
  41. div.smallexample {margin-left: 3.2em}
  42. div.smalllisp {margin-left: 3.2em}
  43. kbd {font-style: oblique}
  44. pre.display {font-family: inherit}
  45. pre.format {font-family: inherit}
  46. pre.menu-comment {font-family: serif}
  47. pre.menu-preformatted {font-family: serif}
  48. pre.smalldisplay {font-family: inherit; font-size: smaller}
  49. pre.smallexample {font-size: smaller}
  50. pre.smallformat {font-family: inherit; font-size: smaller}
  51. pre.smalllisp {font-size: smaller}
  52. span.nolinebreak {white-space: nowrap}
  53. span.roman {font-family: initial; font-weight: normal}
  54. span.sansserif {font-family: sans-serif; font-weight: normal}
  55. ul.no-bullet {list-style: none}
  56. -->
  57. </style>
  58. </head>
  59. <body lang="en">
  60. <h1 class="settitle" align="center">The C Preprocessor</h1>
  61. <a name="SEC_Contents"></a>
  62. <h2 class="contents-heading">Table of Contents</h2>
  63. <div class="contents">
  64. <ul class="no-bullet">
  65. <li><a name="toc-Overview-1" href="Overview.html#Overview">1 Overview</a>
  66. <ul class="no-bullet">
  67. <li><a name="toc-Character-sets-1" href="Character-sets.html#Character-sets">1.1 Character sets</a></li>
  68. <li><a name="toc-Initial-processing-1" href="Initial-processing.html#Initial-processing">1.2 Initial processing</a></li>
  69. <li><a name="toc-Tokenization-1" href="Tokenization.html#Tokenization">1.3 Tokenization</a></li>
  70. <li><a name="toc-The-preprocessing-language-1" href="The-preprocessing-language.html#The-preprocessing-language">1.4 The preprocessing language</a></li>
  71. </ul></li>
  72. <li><a name="toc-Header-Files-1" href="Header-Files.html#Header-Files">2 Header Files</a>
  73. <ul class="no-bullet">
  74. <li><a name="toc-Include-Syntax-1" href="Include-Syntax.html#Include-Syntax">2.1 Include Syntax</a></li>
  75. <li><a name="toc-Include-Operation-1" href="Include-Operation.html#Include-Operation">2.2 Include Operation</a></li>
  76. <li><a name="toc-Search-Path-1" href="Search-Path.html#Search-Path">2.3 Search Path</a></li>
  77. <li><a name="toc-Once_002dOnly-Headers-1" href="Once_002dOnly-Headers.html#Once_002dOnly-Headers">2.4 Once-Only Headers</a></li>
  78. <li><a name="toc-Alternatives-to-Wrapper-_0023ifndef-1" href="Alternatives-to-Wrapper-_0023ifndef.html#Alternatives-to-Wrapper-_0023ifndef">2.5 Alternatives to Wrapper #ifndef</a></li>
  79. <li><a name="toc-Computed-Includes-1" href="Computed-Includes.html#Computed-Includes">2.6 Computed Includes</a></li>
  80. <li><a name="toc-Wrapper-Headers-1" href="Wrapper-Headers.html#Wrapper-Headers">2.7 Wrapper Headers</a></li>
  81. <li><a name="toc-System-Headers-1" href="System-Headers.html#System-Headers">2.8 System Headers</a></li>
  82. </ul></li>
  83. <li><a name="toc-Macros-1" href="Macros.html#Macros">3 Macros</a>
  84. <ul class="no-bullet">
  85. <li><a name="toc-Object_002dlike-Macros-1" href="Object_002dlike-Macros.html#Object_002dlike-Macros">3.1 Object-like Macros</a></li>
  86. <li><a name="toc-Function_002dlike-Macros-1" href="Function_002dlike-Macros.html#Function_002dlike-Macros">3.2 Function-like Macros</a></li>
  87. <li><a name="toc-Macro-Arguments-1" href="Macro-Arguments.html#Macro-Arguments">3.3 Macro Arguments</a></li>
  88. <li><a name="toc-Stringizing-1" href="Stringizing.html#Stringizing">3.4 Stringizing</a></li>
  89. <li><a name="toc-Concatenation-1" href="Concatenation.html#Concatenation">3.5 Concatenation</a></li>
  90. <li><a name="toc-Variadic-Macros-1" href="Variadic-Macros.html#Variadic-Macros">3.6 Variadic Macros</a></li>
  91. <li><a name="toc-Predefined-Macros-1" href="Predefined-Macros.html#Predefined-Macros">3.7 Predefined Macros</a>
  92. <ul class="no-bullet">
  93. <li><a name="toc-Standard-Predefined-Macros-1" href="Standard-Predefined-Macros.html#Standard-Predefined-Macros">3.7.1 Standard Predefined Macros</a></li>
  94. <li><a name="toc-Common-Predefined-Macros-1" href="Common-Predefined-Macros.html#Common-Predefined-Macros">3.7.2 Common Predefined Macros</a></li>
  95. <li><a name="toc-System_002dspecific-Predefined-Macros-1" href="System_002dspecific-Predefined-Macros.html#System_002dspecific-Predefined-Macros">3.7.3 System-specific Predefined Macros</a></li>
  96. <li><a name="toc-C_002b_002b-Named-Operators-1" href="C_002b_002b-Named-Operators.html#C_002b_002b-Named-Operators">3.7.4 C++ Named Operators</a></li>
  97. </ul></li>
  98. <li><a name="toc-Undefining-and-Redefining-Macros-1" href="Undefining-and-Redefining-Macros.html#Undefining-and-Redefining-Macros">3.8 Undefining and Redefining Macros</a></li>
  99. <li><a name="toc-Directives-Within-Macro-Arguments-1" href="Directives-Within-Macro-Arguments.html#Directives-Within-Macro-Arguments">3.9 Directives Within Macro Arguments</a></li>
  100. <li><a name="toc-Macro-Pitfalls-1" href="Macro-Pitfalls.html#Macro-Pitfalls">3.10 Macro Pitfalls</a>
  101. <ul class="no-bullet">
  102. <li><a name="toc-Misnesting-1" href="Misnesting.html#Misnesting">3.10.1 Misnesting</a></li>
  103. <li><a name="toc-Operator-Precedence-Problems-1" href="Operator-Precedence-Problems.html#Operator-Precedence-Problems">3.10.2 Operator Precedence Problems</a></li>
  104. <li><a name="toc-Swallowing-the-Semicolon-1" href="Swallowing-the-Semicolon.html#Swallowing-the-Semicolon">3.10.3 Swallowing the Semicolon</a></li>
  105. <li><a name="toc-Duplication-of-Side-Effects-1" href="Duplication-of-Side-Effects.html#Duplication-of-Side-Effects">3.10.4 Duplication of Side Effects</a></li>
  106. <li><a name="toc-Self_002dReferential-Macros-1" href="Self_002dReferential-Macros.html#Self_002dReferential-Macros">3.10.5 Self-Referential Macros</a></li>
  107. <li><a name="toc-Argument-Prescan-1" href="Argument-Prescan.html#Argument-Prescan">3.10.6 Argument Prescan</a></li>
  108. <li><a name="toc-Newlines-in-Arguments-1" href="Newlines-in-Arguments.html#Newlines-in-Arguments">3.10.7 Newlines in Arguments</a></li>
  109. </ul></li>
  110. </ul></li>
  111. <li><a name="toc-Conditionals-1" href="Conditionals.html#Conditionals">4 Conditionals</a>
  112. <ul class="no-bullet">
  113. <li><a name="toc-Conditional-Uses-1" href="Conditional-Uses.html#Conditional-Uses">4.1 Conditional Uses</a></li>
  114. <li><a name="toc-Conditional-Syntax-1" href="Conditional-Syntax.html#Conditional-Syntax">4.2 Conditional Syntax</a>
  115. <ul class="no-bullet">
  116. <li><a name="toc-Ifdef-1" href="Ifdef.html#Ifdef">4.2.1 Ifdef</a></li>
  117. <li><a name="toc-If-1" href="If.html#If">4.2.2 If</a></li>
  118. <li><a name="toc-Defined-1" href="Defined.html#Defined">4.2.3 Defined</a></li>
  119. <li><a name="toc-Else-1" href="Else.html#Else">4.2.4 Else</a></li>
  120. <li><a name="toc-Elif-1" href="Elif.html#Elif">4.2.5 Elif</a></li>
  121. <li><a name="toc-_005f_005fhas_005fattribute-1" href="_005f_005fhas_005fattribute.html#g_t_005f_005fhas_005fattribute">4.2.6 <code>__has_attribute</code></a></li>
  122. <li><a name="toc-_005f_005fhas_005fcpp_005fattribute-1" href="_005f_005fhas_005fcpp_005fattribute.html#g_t_005f_005fhas_005fcpp_005fattribute">4.2.7 <code>__has_cpp_attribute</code></a></li>
  123. <li><a name="toc-_005f_005fhas_005fbuiltin-1" href="_005f_005fhas_005fbuiltin.html#g_t_005f_005fhas_005fbuiltin">4.2.8 <code>__has_builtin</code></a></li>
  124. <li><a name="toc-_005f_005fhas_005finclude-1" href="_005f_005fhas_005finclude.html#g_t_005f_005fhas_005finclude">4.2.9 <code>__has_include</code></a></li>
  125. </ul></li>
  126. <li><a name="toc-Deleted-Code-1" href="Deleted-Code.html#Deleted-Code">4.3 Deleted Code</a></li>
  127. </ul></li>
  128. <li><a name="toc-Diagnostics-1" href="Diagnostics.html#Diagnostics">5 Diagnostics</a></li>
  129. <li><a name="toc-Line-Control-1" href="Line-Control.html#Line-Control">6 Line Control</a></li>
  130. <li><a name="toc-Pragmas-1" href="Pragmas.html#Pragmas">7 Pragmas</a></li>
  131. <li><a name="toc-Other-Directives-1" href="Other-Directives.html#Other-Directives">8 Other Directives</a></li>
  132. <li><a name="toc-Preprocessor-Output-1" href="Preprocessor-Output.html#Preprocessor-Output">9 Preprocessor Output</a></li>
  133. <li><a name="toc-Traditional-Mode-1" href="Traditional-Mode.html#Traditional-Mode">10 Traditional Mode</a>
  134. <ul class="no-bullet">
  135. <li><a name="toc-Traditional-lexical-analysis-1" href="Traditional-lexical-analysis.html#Traditional-lexical-analysis">10.1 Traditional lexical analysis</a></li>
  136. <li><a name="toc-Traditional-macros-1" href="Traditional-macros.html#Traditional-macros">10.2 Traditional macros</a></li>
  137. <li><a name="toc-Traditional-miscellany-1" href="Traditional-miscellany.html#Traditional-miscellany">10.3 Traditional miscellany</a></li>
  138. <li><a name="toc-Traditional-warnings-1" href="Traditional-warnings.html#Traditional-warnings">10.4 Traditional warnings</a></li>
  139. </ul></li>
  140. <li><a name="toc-Implementation-Details-1" href="Implementation-Details.html#Implementation-Details">11 Implementation Details</a>
  141. <ul class="no-bullet">
  142. <li><a name="toc-Implementation_002ddefined-behavior-1" href="Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior">11.1 Implementation-defined behavior</a></li>
  143. <li><a name="toc-Implementation-limits-1" href="Implementation-limits.html#Implementation-limits">11.2 Implementation limits</a></li>
  144. <li><a name="toc-Obsolete-Features-1" href="Obsolete-Features.html#Obsolete-Features">11.3 Obsolete Features</a>
  145. <ul class="no-bullet">
  146. <li><a name="toc-Assertions" href="Obsolete-Features.html#Assertions">11.3.1 Assertions</a></li>
  147. </ul></li>
  148. </ul></li>
  149. <li><a name="toc-Invocation-1" href="Invocation.html#Invocation">12 Invocation</a></li>
  150. <li><a name="toc-Environment-Variables-1" href="Environment-Variables.html#Environment-Variables">13 Environment Variables</a></li>
  151. <li><a name="toc-GNU-Free-Documentation-License-1" href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">GNU Free Documentation License</a>
  152. <ul class="no-bullet">
  153. <li><a name="toc-ADDENDUM_003a-How-to-use-this-License-for-your-documents" href="GNU-Free-Documentation-License.html#ADDENDUM_003a-How-to-use-this-License-for-your-documents">ADDENDUM: How to use this License for your documents</a></li>
  154. </ul></li>
  155. <li><a name="toc-Index-of-Directives-1" href="Index-of-Directives.html#Index-of-Directives">Index of Directives</a></li>
  156. <li><a name="toc-Option-Index-1" href="Option-Index.html#Option-Index">Option Index</a></li>
  157. <li><a name="toc-Concept-Index-1" href="Concept-Index.html#Concept-Index">Concept Index</a></li>
  158. </ul>
  159. </div>
  160. <a name="Top"></a>
  161. <div class="header">
  162. <p>
  163. Next: <a href="Overview.html#Overview" accesskey="n" rel="next">Overview</a>, Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index-of-Directives.html#Index-of-Directives" title="Index" rel="index">Index</a>]</p>
  164. </div>
  165. <hr>
  166. <a name="SEC_Top"></a>
  167. <p>The C preprocessor implements the macro language used to transform C,
  168. C++, and Objective-C programs before they are compiled. It can also be
  169. useful on its own.
  170. </p>
  171. <table class="menu" border="0" cellspacing="0">
  172. <tr><td align="left" valign="top">&bull; <a href="Overview.html#Overview" accesskey="1">Overview</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  173. </td></tr>
  174. <tr><td align="left" valign="top">&bull; <a href="Header-Files.html#Header-Files" accesskey="2">Header Files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  175. </td></tr>
  176. <tr><td align="left" valign="top">&bull; <a href="Macros.html#Macros" accesskey="3">Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  177. </td></tr>
  178. <tr><td align="left" valign="top">&bull; <a href="Conditionals.html#Conditionals" accesskey="4">Conditionals</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  179. </td></tr>
  180. <tr><td align="left" valign="top">&bull; <a href="Diagnostics.html#Diagnostics" accesskey="5">Diagnostics</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  181. </td></tr>
  182. <tr><td align="left" valign="top">&bull; <a href="Line-Control.html#Line-Control" accesskey="6">Line Control</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  183. </td></tr>
  184. <tr><td align="left" valign="top">&bull; <a href="Pragmas.html#Pragmas" accesskey="7">Pragmas</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  185. </td></tr>
  186. <tr><td align="left" valign="top">&bull; <a href="Other-Directives.html#Other-Directives" accesskey="8">Other Directives</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  187. </td></tr>
  188. <tr><td align="left" valign="top">&bull; <a href="Preprocessor-Output.html#Preprocessor-Output" accesskey="9">Preprocessor Output</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  189. </td></tr>
  190. <tr><td align="left" valign="top">&bull; <a href="Traditional-Mode.html#Traditional-Mode">Traditional Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  191. </td></tr>
  192. <tr><td align="left" valign="top">&bull; <a href="Implementation-Details.html#Implementation-Details">Implementation Details</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  193. </td></tr>
  194. <tr><td align="left" valign="top">&bull; <a href="Invocation.html#Invocation">Invocation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  195. </td></tr>
  196. <tr><td align="left" valign="top">&bull; <a href="Environment-Variables.html#Environment-Variables">Environment Variables</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  197. </td></tr>
  198. <tr><td align="left" valign="top">&bull; <a href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">GNU Free Documentation License</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  199. </td></tr>
  200. <tr><td align="left" valign="top">&bull; <a href="Index-of-Directives.html#Index-of-Directives">Index of Directives</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  201. </td></tr>
  202. <tr><td align="left" valign="top">&bull; <a href="Option-Index.html#Option-Index">Option Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  203. </td></tr>
  204. <tr><td align="left" valign="top">&bull; <a href="Concept-Index.html#Concept-Index">Concept Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  205. </td></tr>
  206. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  207. </pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> &mdash; The Detailed Node Listing &mdash;
  208. Overview
  209. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Character-sets.html#Character-sets">Character sets</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  210. </td></tr>
  211. <tr><td align="left" valign="top">&bull; <a href="Initial-processing.html#Initial-processing">Initial processing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  212. </td></tr>
  213. <tr><td align="left" valign="top">&bull; <a href="Tokenization.html#Tokenization">Tokenization</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  214. </td></tr>
  215. <tr><td align="left" valign="top">&bull; <a href="The-preprocessing-language.html#The-preprocessing-language">The preprocessing language</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  216. </td></tr>
  217. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  218. Header Files
  219. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Include-Syntax.html#Include-Syntax">Include Syntax</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  220. </td></tr>
  221. <tr><td align="left" valign="top">&bull; <a href="Include-Operation.html#Include-Operation">Include Operation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  222. </td></tr>
  223. <tr><td align="left" valign="top">&bull; <a href="Search-Path.html#Search-Path">Search Path</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  224. </td></tr>
  225. <tr><td align="left" valign="top">&bull; <a href="Once_002dOnly-Headers.html#Once_002dOnly-Headers">Once-Only Headers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  226. </td></tr>
  227. <tr><td align="left" valign="top">&bull; <a href="Alternatives-to-Wrapper-_0023ifndef.html#Alternatives-to-Wrapper-_0023ifndef">Alternatives to Wrapper #ifndef</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  228. </td></tr>
  229. <tr><td align="left" valign="top">&bull; <a href="Computed-Includes.html#Computed-Includes">Computed Includes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  230. </td></tr>
  231. <tr><td align="left" valign="top">&bull; <a href="Wrapper-Headers.html#Wrapper-Headers">Wrapper Headers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  232. </td></tr>
  233. <tr><td align="left" valign="top">&bull; <a href="System-Headers.html#System-Headers">System Headers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  234. </td></tr>
  235. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  236. Macros
  237. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Object_002dlike-Macros.html#Object_002dlike-Macros">Object-like Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  238. </td></tr>
  239. <tr><td align="left" valign="top">&bull; <a href="Function_002dlike-Macros.html#Function_002dlike-Macros">Function-like Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  240. </td></tr>
  241. <tr><td align="left" valign="top">&bull; <a href="Macro-Arguments.html#Macro-Arguments">Macro Arguments</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  242. </td></tr>
  243. <tr><td align="left" valign="top">&bull; <a href="Stringizing.html#Stringizing">Stringizing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  244. </td></tr>
  245. <tr><td align="left" valign="top">&bull; <a href="Concatenation.html#Concatenation">Concatenation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  246. </td></tr>
  247. <tr><td align="left" valign="top">&bull; <a href="Variadic-Macros.html#Variadic-Macros">Variadic Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  248. </td></tr>
  249. <tr><td align="left" valign="top">&bull; <a href="Predefined-Macros.html#Predefined-Macros">Predefined Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  250. </td></tr>
  251. <tr><td align="left" valign="top">&bull; <a href="Undefining-and-Redefining-Macros.html#Undefining-and-Redefining-Macros">Undefining and Redefining Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  252. </td></tr>
  253. <tr><td align="left" valign="top">&bull; <a href="Directives-Within-Macro-Arguments.html#Directives-Within-Macro-Arguments">Directives Within Macro Arguments</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  254. </td></tr>
  255. <tr><td align="left" valign="top">&bull; <a href="Macro-Pitfalls.html#Macro-Pitfalls">Macro Pitfalls</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  256. </td></tr>
  257. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  258. Predefined Macros
  259. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Standard-Predefined-Macros.html#Standard-Predefined-Macros">Standard Predefined Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  260. </td></tr>
  261. <tr><td align="left" valign="top">&bull; <a href="Common-Predefined-Macros.html#Common-Predefined-Macros">Common Predefined Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  262. </td></tr>
  263. <tr><td align="left" valign="top">&bull; <a href="System_002dspecific-Predefined-Macros.html#System_002dspecific-Predefined-Macros">System-specific Predefined Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  264. </td></tr>
  265. <tr><td align="left" valign="top">&bull; <a href="C_002b_002b-Named-Operators.html#C_002b_002b-Named-Operators">C++ Named Operators</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  266. </td></tr>
  267. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  268. Macro Pitfalls
  269. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Misnesting.html#Misnesting">Misnesting</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  270. </td></tr>
  271. <tr><td align="left" valign="top">&bull; <a href="Operator-Precedence-Problems.html#Operator-Precedence-Problems">Operator Precedence Problems</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  272. </td></tr>
  273. <tr><td align="left" valign="top">&bull; <a href="Swallowing-the-Semicolon.html#Swallowing-the-Semicolon">Swallowing the Semicolon</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  274. </td></tr>
  275. <tr><td align="left" valign="top">&bull; <a href="Duplication-of-Side-Effects.html#Duplication-of-Side-Effects">Duplication of Side Effects</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  276. </td></tr>
  277. <tr><td align="left" valign="top">&bull; <a href="Self_002dReferential-Macros.html#Self_002dReferential-Macros">Self-Referential Macros</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  278. </td></tr>
  279. <tr><td align="left" valign="top">&bull; <a href="Argument-Prescan.html#Argument-Prescan">Argument Prescan</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  280. </td></tr>
  281. <tr><td align="left" valign="top">&bull; <a href="Newlines-in-Arguments.html#Newlines-in-Arguments">Newlines in Arguments</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  282. </td></tr>
  283. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  284. Conditionals
  285. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Conditional-Uses.html#Conditional-Uses">Conditional Uses</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  286. </td></tr>
  287. <tr><td align="left" valign="top">&bull; <a href="Conditional-Syntax.html#Conditional-Syntax">Conditional Syntax</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  288. </td></tr>
  289. <tr><td align="left" valign="top">&bull; <a href="Deleted-Code.html#Deleted-Code">Deleted Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  290. </td></tr>
  291. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  292. Conditional Syntax
  293. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Ifdef.html#Ifdef">Ifdef</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  294. </td></tr>
  295. <tr><td align="left" valign="top">&bull; <a href="If.html#If">If</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  296. </td></tr>
  297. <tr><td align="left" valign="top">&bull; <a href="Defined.html#Defined">Defined</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  298. </td></tr>
  299. <tr><td align="left" valign="top">&bull; <a href="Else.html#Else">Else</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  300. </td></tr>
  301. <tr><td align="left" valign="top">&bull; <a href="Elif.html#Elif">Elif</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  302. </td></tr>
  303. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  304. Implementation Details
  305. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior">Implementation-defined behavior</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  306. </td></tr>
  307. <tr><td align="left" valign="top">&bull; <a href="Implementation-limits.html#Implementation-limits">Implementation limits</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  308. </td></tr>
  309. <tr><td align="left" valign="top">&bull; <a href="Obsolete-Features.html#Obsolete-Features">Obsolete Features</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  310. </td></tr>
  311. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  312. Obsolete Features
  313. </pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Obsolete-Features.html#Obsolete-Features">Obsolete Features</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  314. </td></tr>
  315. <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
  316. </pre></th></tr></table>
  317. <p>Copyright &copy; 1987-2020 Free Software Foundation, Inc.
  318. </p>
  319. <p>Permission is granted to copy, distribute and/or modify this document
  320. under the terms of the GNU Free Documentation License, Version 1.3 or
  321. any later version published by the Free Software Foundation. A copy of
  322. the license is included in the
  323. section entitled &ldquo;GNU Free Documentation License&rdquo;.
  324. </p>
  325. <p>This manual contains no Invariant Sections. The Front-Cover Texts are
  326. (a) (see below), and the Back-Cover Texts are (b) (see below).
  327. </p>
  328. <p>(a) The FSF&rsquo;s Front-Cover Text is:
  329. </p>
  330. <p>A GNU Manual
  331. </p>
  332. <p>(b) The FSF&rsquo;s Back-Cover Text is:
  333. </p>
  334. <p>You have freedom to copy and modify this GNU Manual, like GNU
  335. software. Copies published by the Free Software Foundation raise
  336. funds for GNU development.
  337. </p>
  338. <hr>
  339. <div class="header">
  340. <p>
  341. Next: <a href="Overview.html#Overview" accesskey="n" rel="next">Overview</a>, Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index-of-Directives.html#Index-of-Directives" title="Index" rel="index">Index</a>]</p>
  342. </div>
  343. </body>
  344. </html>