a44f221996-02-24Fredrik Hübinette (Hubbe) <html><head> <style type='text/css'> svg line { stroke:#343434; stroke-width:2; } svg text { fill:#343434; } svg a { fill:#0768b2; text-decoration: underline; } </style> <title>Pike Reference Manual - #if</title> <link rel='stylesheet' href='../../style.css' /></head> <body topmargin='0' leftmargin='0' marginheight='0' marginwidth='0' bgcolor='#ffffff' text='#000000' link='#000099' alink='#002040' vlink='#000099'> <table widht="100%"> <tr> <td colspan='3'></td> <td colspan='2' align='right'>Extracted from at .</td> </tr> <tr> <td width="0%"><img src="../../../images/unit.gif" alt="" width="10" height="1"></td> <td width="1%"> <a href="http://pike.lysator.liu.se/"><img src="../../../images/pike_logo.gif" border="0" alt="pike.lysator.liu.se" width="181" height="41" hspace="5"></a></td> <td width="0%"><img src="../../../images/unit.gif" alt="" width="10" height="1"></td> <td width="99%"> <table align="center" border="0" width="100%" cellspacing="0" cellpadding="0" valign="center"> <tr> <td width="1%"> <img src="../../../images/pike_line_left.gif" alt="" border="0" width="5" height="11"> </td> <td background="../../../images/pike_line_middle.gif" width="98%"> <img src="../../../images/unit.gif" alt="" border="0" width="11" height="11"> </td> <td width="1%"> <img src="../../../images/pike_line_right.gif" alt="" border="0" width="5" height="11"> </td> </tr> </table> </td> <td width="0%"><img src="../../../images/unit.gif" alt="" width="10" height="1"></td> </tr> <tr> <td colspan="5"><img src="../../../images/unit.gif" alt="" width="1" height="10"></td> </tr> </table> <table> <tr> <td width='180' valign='top' bgcolor='#f0f0f0'><a href='../../index.html'><b class='top head'>Top</b></a> <a href='../../ex/cpp_3A_3A.html'><b class='head'>cpp::</b></a> <script></script> <noscript> <div class='sidebar'> <a href='../../ex/cpp_3A_3A/index.html'><b>Symbol index</b></a><br /> </div> </noscript> </td> <td width='520' valign='top'> <table border="0" width="520" bgcolor="#e0e0e0" cellpadding="0" cellspacing="4" class='sidebar'> <tr> <td valign="middle"> <a href="../../ex/cpp_3A_3A/_23error.html"><img src="../../../images/prev.gif" hspace="3" border="0" alt="previous" >#error</a> <br /> </td> <td align="right" valign="middle"> <a href="../../ex/cpp_3A_3A/_23include.html">#include<img src="../../../images/next.gif" hspace="3" border="0" alt="next" ></a> <br /> </td> </tr> </table> <h1>Directive #if</h1> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Directive</span> <span class='homogen--name'><b>#if</b></span> </dt> <dd><p><code class='directive'>#if</code><br> <code class='directive'>#elif</code><br> <code class='directive'>#elseif</code><br> <code class='directive'>#else</code><br> <code class='directive'>#endif</code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'> <p>The #if directive causes conditional compiling of code depending on the expression after the #if directive. That is, if the expression is true, the code up to the next #else, #elif, #elseif or #endif is compiled. If the expression is false, that code will be skipped. If the skip leads up to a #else, the code after the else will be compiled. #elif and #elseif are equivialent and causes the code that follow them to be compiled if the previous #if or #elif evaluated false and the expression after the #elif evaluates true. </p> <p>Expressions given to #if, #elif or #endif are special, all identifiers evaluate to zero unless they are defined to something else. Integers, strings and floats are the only types that can be used, but all lpc operators can be used on these types. </p> <p>Also, two special functions can be used, defined() and efun(). defined(&lt;identifer&gt;) expands to '1' if the identifier is defined, '0' otherwise. efun(&lt;identifier&gt;) expands to '1' if identifer is an efun, '0' otherwise.</p> </dd> <dt class='head--doc'>Example</dt> <dd class='example'><pre> <tt><p>#if 1<br /> <dl class='group--doc'><dd>write("foo");<br /> </dd> </dl>#else<br /> <dl class='group--doc'><dd>write("bar");<br /> </dd> </dl>#endif<br /> </p> <p>#if defined(FOO)<br /> <dl class='group--doc'><dd>write(FOO);<br /> </dd> </dl>#elif defined(BAR)<br /> <dl class='group--doc'><dd>write(BAR);<br /> </dd> </dl>#else<br /> <dl class='group--doc'><dd>write("default");<br /> </dd> </dl>#endif<br /> </p> <p>#if !efun(write_file)<br /> inherit "simulate.lpc"<br /> #endif<br /> <br /> </p> </tt></pre></dd></dl> <hr size='1' noshade='1' /> </td> </tr> </table> </body> <script>PikeDoc.current = {"link":"ex/cpp_3A_3A/_23if.html","name":"#if"};</script> <script src='../../ex/cpp_3A_3A/index.js'></script> <script src='../../ex/cpp_3A_3A/load_index.js'></script> </html>