⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conditionals.html

📁 gcc手册
💻 HTML
字号:
<html lang="en">

<head>

<title>The C Preprocessor</title>

<meta http-equiv="Content-Type" content="text/html">

<meta name="description" content="The C Preprocessor">

<meta name="generator" content="makeinfo 4.3">

<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">

<!--

Copyright &copy; 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,

1997, 1998, 1999, 2000, 2001, 2002, 2003

Free Software Foundation, Inc.



   <p>Permission is granted to copy, distribute and/or modify this document

under the terms of the GNU Free Documentation License, Version 1.1 or

any later version published by the Free Software Foundation.  A copy of

the license is included in the

section entitled "GNU Free Documentation License".



   <p>This manual contains no Invariant Sections.  The Front-Cover Texts are

(a) (see below), and the Back-Cover Texts are (b) (see below).



   <p>(a) The FSF's Front-Cover Text is:



   <p>A GNU Manual



   <p>(b) The FSF's Back-Cover Text is:



   <p>You have freedom to copy and modify this GNU Manual, like GNU

     software.  Copies published by the Free Software Foundation raise

     funds for GNU development. 

-->

</head>

<body>

<div class="node">

<p>

Node:<a name="Conditionals">Conditionals</a>,

Next:<a rel="next" accesskey="n" href="Diagnostics.html#Diagnostics">Diagnostics</a>,

Previous:<a rel="previous" accesskey="p" href="Macros.html#Macros">Macros</a>,

Up:<a rel="up" accesskey="u" href="index.html#Top">Top</a>

<hr><br>

</div>



<h2 class="chapter">Conditionals</h2>



   <p>A <dfn>conditional</dfn> is a directive that instructs the preprocessor to

select whether or not to include a chunk of code in the final token

stream passed to the compiler.  Preprocessor conditionals can test

arithmetic expressions, or whether a name is defined as a macro, or both

simultaneously using the special <code>defined</code> operator.



   <p>A conditional in the C preprocessor resembles in some ways an <code>if</code>

statement in C, but it is important to understand the difference between

them.  The condition in an <code>if</code> statement is tested during the

execution of your program.  Its purpose is to allow your program to

behave differently from run to run, depending on the data it is

operating on.  The condition in a preprocessing conditional directive is

tested when your program is compiled.  Its purpose is to allow different

code to be included in the program depending on the situation at the

time of compilation.



   <p>However, the distinction is becoming less clear.  Modern compilers often

do test <code>if</code> statements when a program is compiled, if their

conditions are known not to vary at run time, and eliminate code which

can never be executed.  If you can count on your compiler to do this,

you may find that your program is more readable if you use <code>if</code>

statements with constant conditions (perhaps determined by macros).  Of

course, you can only use this to exclude code, not type definitions or

other preprocessing directives, and you can only do it if the code

remains syntactically valid when it is not to be used.



   <p>GCC version 3 eliminates this kind of never-executed code even when

not optimizing.  Older versions did it only when optimizing.



<ul class="menu">

<li><a accesskey="1" href="Conditional-Uses.html#Conditional%20Uses">Conditional Uses</a>: 

<li><a accesskey="2" href="Conditional-Syntax.html#Conditional%20Syntax">Conditional Syntax</a>: 

<li><a accesskey="3" href="Deleted-Code.html#Deleted%20Code">Deleted Code</a>: 

</ul>



   </body></html>



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -