<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1987-2015 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 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".

This manual contains no Invariant Sections.  The Front-Cover Texts are
(a) (see below), and the Back-Cover Texts are (b) (see below).

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

A GNU Manual

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

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. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The C Preprocessor: If</title>

<meta name="description" content="The C Preprocessor: If">
<meta name="keywords" content="The C Preprocessor: If">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index-of-Directives.html#Index-of-Directives" rel="index" title="Index of Directives">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Conditional-Syntax.html#Conditional-Syntax" rel="up" title="Conditional Syntax">
<link href="Defined.html#Defined" rel="next" title="Defined">
<link href="Ifdef.html#Ifdef" rel="prev" title="Ifdef">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="If"></a>
<div class="header">
<p>
Next: <a href="Defined.html#Defined" accesskey="n" rel="next">Defined</a>, Previous: <a href="Ifdef.html#Ifdef" accesskey="p" rel="prev">Ifdef</a>, Up: <a href="Conditional-Syntax.html#Conditional-Syntax" accesskey="u" rel="up">Conditional Syntax</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>
</div>
<hr>
<a name="If-1"></a>
<h4 class="subsection">4.2.2 If</h4>

<p>The &lsquo;<samp>#if</samp>&rsquo; directive allows you to test the value of an arithmetic
expression, rather than the mere existence of one macro.  Its syntax is
</p>
<div class="smallexample">
<pre class="smallexample">#if <var>expression</var>

<var>controlled text</var>

#endif /* <var>expression</var> */
</pre></div>

<p><var>expression</var> is a C expression of integer type, subject to stringent
restrictions.  It may contain
</p>
<ul>
<li> Integer constants.

</li><li> Character constants, which are interpreted as they would be in normal
code.

</li><li> Arithmetic operators for addition, subtraction, multiplication,
division, bitwise operations, shifts, comparisons, and logical
operations (<code>&amp;&amp;</code> and <code>||</code>).  The latter two obey the usual
short-circuiting rules of standard C.

</li><li> Macros.  All macros in the expression are expanded before actual
computation of the expression&rsquo;s value begins.

</li><li> Uses of the <code>defined</code> operator, which lets you check whether macros
are defined in the middle of an &lsquo;<samp>#if</samp>&rsquo;.

</li><li> Identifiers that are not macros, which are all considered to be the
number zero.  This allows you to write <code>#if&nbsp;MACRO<!-- /@w --></code> instead of
<code>#ifdef&nbsp;MACRO<!-- /@w --></code>, if you know that MACRO, when defined, will
always have a nonzero value.  Function-like macros used without their
function call parentheses are also treated as zero.

<p>In some contexts this shortcut is undesirable.  The <samp>-Wundef</samp>
option causes GCC to warn whenever it encounters an identifier which is
not a macro in an &lsquo;<samp>#if</samp>&rsquo;.
</p></li></ul>

<p>The preprocessor does not know anything about types in the language.
Therefore, <code>sizeof</code> operators are not recognized in &lsquo;<samp>#if</samp>&rsquo;, and
neither are <code>enum</code> constants.  They will be taken as identifiers
which are not macros, and replaced by zero.  In the case of
<code>sizeof</code>, this is likely to cause the expression to be invalid.
</p>
<p>The preprocessor calculates the value of <var>expression</var>.  It carries
out all calculations in the widest integer type known to the compiler;
on most machines supported by GCC this is 64 bits.  This is not the same
rule as the compiler uses to calculate the value of a constant
expression, and may give different results in some cases.  If the value
comes out to be nonzero, the &lsquo;<samp>#if</samp>&rsquo; succeeds and the <var>controlled
text</var> is included; otherwise it is skipped.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Defined.html#Defined" accesskey="n" rel="next">Defined</a>, Previous: <a href="Ifdef.html#Ifdef" accesskey="p" rel="prev">Ifdef</a>, Up: <a href="Conditional-Syntax.html#Conditional-Syntax" accesskey="u" rel="up">Conditional Syntax</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>
</div>



</body>
</html>
