source: public/doc/gnu-c/Conditional-Uses.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>Conditional Uses (GNU C Language Manual)</title>
23
24<meta name="description" content="Conditional Uses (GNU C Language Manual)">
25<meta name="keywords" content="Conditional Uses (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="Conditional-Syntax.html" rel="next" title="Conditional Syntax">
34<link href="Conditionals.html" rel="prev" title="Conditionals">
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="Conditional-Uses"></span><div class="header">
59<p>
60Next: <a href="Conditional-Syntax.html" accesskey="n" rel="next">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="Uses-of-Conditional-Directives"></span><h4 class="subsection">26.6.1 Uses of Conditional Directives</h4>
64
65<p>There are three usual reasons to use a preprocessing conditional.
66</p>
67<ul>
68<li> A program may need to use different code depending on the machine or
69operating system it is to run on. In some cases the code for one
70operating system may be erroneous on another operating system; for
71example, it might refer to data types or constants that do not exist on
72the other system. When this happens, it is not enough to avoid
73executing the invalid code. Its mere presence will cause the compiler
74to reject the program. With a preprocessing conditional, the offending
75code can be effectively excised from the program when it is not valid.
76
77</li><li> You may want to be able to compile the same source file into two
78different programs. One version might make frequent time-consuming
79consistency checks on its intermediate data, or print the values of
80those data for debugging, and the other not.
81
82</li><li> A conditional whose condition is always false is one way to exclude code
83from the program but keep it as a sort of comment for future reference.
84</li></ul>
85
86<p>Simple programs that do not need system-specific logic or complex
87debugging hooks generally will not need to use preprocessing
88conditionals.
89</p>
90
91
92
93</body>
94</html>
Note: See TracBrowser for help on using the repository browser.