index.html 24 KB

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