您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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>Deleted Code (The C Preprocessor)</title>
  21. <meta name="description" content="Deleted Code (The C Preprocessor)">
  22. <meta name="keywords" content="Deleted Code (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="index.html#Top" rel="start" title="Top">
  27. <link href="Index-of-Directives.html#Index-of-Directives" rel="index" title="Index of Directives">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Conditionals.html#Conditionals" rel="up" title="Conditionals">
  30. <link href="Diagnostics.html#Diagnostics" rel="next" title="Diagnostics">
  31. <link href="_005f_005fhas_005finclude.html#g_t_005f_005fhas_005finclude" rel="prev" title="__has_include">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; 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">
  61. <a name="Deleted-Code"></a>
  62. <div class="header">
  63. <p>
  64. Previous: <a href="Conditional-Syntax.html#Conditional-Syntax" accesskey="p" rel="prev">Conditional Syntax</a>, Up: <a href="Conditionals.html#Conditionals" accesskey="u" rel="up">Conditionals</a> &nbsp; [<a href="index.html#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>
  65. </div>
  66. <hr>
  67. <a name="Deleted-Code-1"></a>
  68. <h3 class="section">4.3 Deleted Code</h3>
  69. <a name="index-commenting-out-code"></a>
  70. <p>If you replace or delete a part of the program but want to keep the old
  71. code around for future reference, you often cannot simply comment it
  72. out. Block comments do not nest, so the first comment inside the old
  73. code will end the commenting-out. The probable result is a flood of
  74. syntax errors.
  75. </p>
  76. <p>One way to avoid this problem is to use an always-false conditional
  77. instead. For instance, put <code>#if 0</code> before the deleted code and
  78. <code>#endif</code> after it. This works even if the code being turned
  79. off contains conditionals, but they must be entire conditionals
  80. (balanced &lsquo;<samp>#if</samp>&rsquo; and &lsquo;<samp>#endif</samp>&rsquo;).
  81. </p>
  82. <p>Some people use <code>#ifdef notdef</code> instead. This is risky, because
  83. <code>notdef</code> might be accidentally defined as a macro, and then the
  84. conditional would succeed. <code>#if 0</code> can be counted on to fail.
  85. </p>
  86. <p>Do not use <code>#if 0</code> for comments which are not C code. Use a real
  87. comment, instead. The interior of <code>#if 0</code> must consist of complete
  88. tokens; in particular, single-quote characters must balance. Comments
  89. often contain unbalanced single-quote characters (known in English as
  90. apostrophes). These confuse <code>#if 0</code>. They don&rsquo;t confuse
  91. &lsquo;<samp>/*</samp>&rsquo;.
  92. </p>
  93. </body>
  94. </html>