<html lang="en">
<head>
<title>Defined - 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.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Conditional-Syntax.html#Conditional-Syntax" title="Conditional Syntax">
<link rel="prev" href="If.html#If" title="If">
<link rel="next" href="Else.html#Else" title="Else">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010
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.2 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.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Defined"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Else.html#Else">Else</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="If.html#If">If</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Conditional-Syntax.html#Conditional-Syntax">Conditional Syntax</a>
<hr>
</div>

<h4 class="subsection">4.2.3 Defined</h4>

<p><a name="index-g_t_0040code_007bdefined_007d-89"></a>The special operator <code>defined</code> is used in &lsquo;<samp><span class="samp">#if</span></samp>&rsquo; and
&lsquo;<samp><span class="samp">#elif</span></samp>&rsquo; expressions to test whether a certain name is defined as a
macro.  <code>defined </code><var>name</var> and <code>defined (</code><var>name</var><code>)</code> are
both expressions whose value is 1 if <var>name</var> is defined as a macro at
the current point in the program, and 0 otherwise.  Thus,  <code>#if&nbsp;defined&nbsp;MACRO<!-- /@w --></code> is precisely equivalent to <code>#ifdef&nbsp;MACRO<!-- /@w --></code>.

   <p><code>defined</code> is useful when you wish to test more than one macro for
existence at once.  For example,

<pre class="smallexample">     #if defined (__vax__) || defined (__ns16000__)
</pre>
   <p class="noindent">would succeed if either of the names <code>__vax__</code> or
<code>__ns16000__</code> is defined as a macro.

   <p>Conditionals written like this:

<pre class="smallexample">     #if defined BUFSIZE &amp;&amp; BUFSIZE &gt;= 1024
</pre>
   <p class="noindent">can generally be simplified to just <code>#if&nbsp;BUFSIZE&nbsp;&gt;=&nbsp;1024<!-- /@w --></code>,
since if <code>BUFSIZE</code> is not defined, it will be interpreted as having
the value zero.

   <p>If the <code>defined</code> operator appears as a result of a macro expansion,
the C standard says the behavior is undefined.  GNU cpp treats it as a
genuine <code>defined</code> operator and evaluates it normally.  It will warn
wherever your code uses this feature if you use the command-line option
<samp><span class="option">-pedantic</span></samp>, since other compilers may handle it differently.

   </body></html>

