source: public/doc/gnu-c/Deleted-Code.html@ 02598c2

Last change on this file since 02598c2 was 02598c2, checked in by Mikhail Kirillov <w96k@…>, on Oct 6, 2022 at 12:36:29 PM

Add gnu-c

  • Property mode set to 100644
File size: 4.1 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- Copyright (C) 2022 Richard Stallman and Free Software Foundation, Inc.
4
5(The work of Trevis Rothwell and Nelson Beebe has been assigned or
6licensed to the FSF.)
7
8Permission is granted to copy, distribute and/or modify this document
9under the terms of the GNU Free Documentation License, Version 1.3 or
10any later version published by the Free Software Foundation; with the
11Invariant Sections being "GNU General Public License," with the
12Front-Cover Texts being "A GNU Manual," and with the Back-Cover
13Texts as in (a) below. A copy of the license is included in the
14section entitled "GNU Free Documentation License."
15
16(a) The FSF's Back-Cover Text is: "You have the freedom to copy and
17modify this GNU manual. Buying copies from the FSF supports it in
18developing GNU and promoting software freedom." -->
19<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
20<head>
21<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
22<title>Deleted Code (GNU C Language Manual)</title>
23
24<meta name="description" content="Deleted Code (GNU C Language Manual)">
25<meta name="keywords" content="Deleted Code (GNU C Language Manual)">
26<meta name="resource-type" content="document">
27<meta name="distribution" content="global">
28<meta name="Generator" content="makeinfo">
29<link href="index.html" rel="start" title="Top">
30<link href="Symbol-Index.html" rel="index" title="Symbol Index">
31<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
32<link href="Conditionals.html" rel="up" title="Conditionals">
33<link href="Diagnostics.html" rel="next" title="Diagnostics">
34<link href="elif.html" rel="prev" title="elif">
35<style type="text/css">
36<!--
37a.summary-letter {text-decoration: none}
38blockquote.indentedblock {margin-right: 0em}
39div.display {margin-left: 3.2em}
40div.example {margin-left: 3.2em}
41div.lisp {margin-left: 3.2em}
42kbd {font-style: oblique}
43pre.display {font-family: inherit}
44pre.format {font-family: inherit}
45pre.menu-comment {font-family: serif}
46pre.menu-preformatted {font-family: serif}
47span.nolinebreak {white-space: nowrap}
48span.roman {font-family: initial; font-weight: normal}
49span.sansserif {font-family: sans-serif; font-weight: normal}
50ul.no-bullet {list-style: none}
51-->
52</style>
53
54
55</head>
56
57<body lang="en">
58<span id="Deleted-Code"></span><div class="header">
59<p>
60Previous: <a href="Conditional-Syntax.html" accesskey="p" rel="prev">Conditional Syntax</a>, Up: <a href="Conditionals.html" accesskey="u" rel="up">Conditionals</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Symbol-Index.html" title="Index" rel="index">Index</a>]</p>
61</div>
62<hr>
63<span id="Deleted-Code-1"></span><h4 class="subsection">26.6.3 Deleted Code</h4>
64<span id="index-commenting-out-code"></span>
65
66<p>If you replace or delete a part of the program but want to keep the
67old code in the file for future reference, commenting it out is not so
68straightforward in C. Block comments do not nest, so the first
69comment inside the old code will end the commenting-out. The probable
70result is a flood of syntax errors.
71</p>
72<p>One way to avoid this problem is to use an always-false conditional
73instead. For instance, put <code>#if 0</code> before the deleted code and
74<code>#endif</code> after it. This works even if the code being turned
75off contains conditionals, but they must be entire conditionals
76(balanced <code>#if</code> and <code>#endif</code>).
77</p>
78<p>Some people use <code>#ifdef notdef</code> instead. This is risky, because
79<code>notdef</code> might be accidentally defined as a macro, and then the
80conditional would succeed. <code>#if 0</code> can be counted on to fail.
81</p>
82<p>Do not use <code>#if 0</code> around text that is not C code. Use a real
83comment, instead. The interior of <code>#if 0</code> must consist of complete
84tokens; in particular, single-quote characters must balance. Comments
85often contain unbalanced single-quote characters (known in English as
86apostrophes). These confuse <code>#if 0</code>. They don&rsquo;t confuse
87&lsquo;<samp>/*</samp>&rsquo;.
88</p>
89
90
91
92</body>
93</html>
Note: See TracBrowser for help on using the repository browser.