index.html 26 KB

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