<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Compiler Pragma Check constant value</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/47789dc4c6/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/47789dc4c6/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/47789dc4c6/</id><updated>2020-02-27T13:52:10.097000Z</updated><subtitle>Recent posts to Compiler Pragma Check constant value</subtitle><entry><title>Compiler Pragma Check constant value</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/47789dc4c6/?limit=25#0786" rel="alternate"/><published>2020-02-27T13:52:10.097000Z</published><updated>2020-02-27T13:52:10.097000Z</updated><author><name>tomas.krajcar</name><uri>https://forge.codesys.com/u/tomas-krajcar/</uri></author><id>https://forge.codesys.com7e3c8d89462eab62f123b1370bdcba38bc2256ba</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi is there some possibility to skip some part in code during compiling code. Based on if with Constant value?&lt;br/&gt;
Something like this in C#. I've found pragmas in CODESYS, but my idea is that based on constant value will be called certain lines of code.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;C&lt;/span&gt;#
\#&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;DEBUG&lt;/span&gt;
    &lt;span class="nv"&gt;Console&lt;/span&gt;.&lt;span class="nv"&gt;WriteLine&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Debug version&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
\#&lt;span class="k"&gt;endif&lt;/span&gt;
&lt;span class="nv"&gt;Possibility&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;CODESYS&lt;/span&gt;?
&lt;span class="nv"&gt;VAR&lt;/span&gt;
   &lt;span class="nv"&gt;diNumber&lt;/span&gt;: &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt; &lt;span class="nv"&gt;CONSTANT&lt;/span&gt;
   &lt;span class="nv"&gt;iDebug&lt;/span&gt;:&lt;span class="nv"&gt;INT&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;case&lt;/span&gt; &lt;span class="nv"&gt;that&lt;/span&gt; &lt;span class="nv"&gt;iDebug&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="nv"&gt;whole&lt;/span&gt; &lt;span class="nv"&gt;code&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;skipped&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;compilation&lt;/span&gt;
{&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;hasvalue&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;iDebug&lt;/span&gt;,&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;}
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;  &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;following&lt;/span&gt; &lt;span class="nv"&gt;code&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;only&lt;/span&gt; &lt;span class="nv"&gt;processed&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;App1&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
{&lt;span class="nv"&gt;info&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;value is 1&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;}
&lt;span class="nv"&gt;getnumberofadapters&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;diNumber&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;y&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
{&lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="nv"&gt;hasvalue&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;iDebug&lt;/span&gt;,&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;}
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;  &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;following&lt;/span&gt; &lt;span class="nv"&gt;code&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;only&lt;/span&gt; &lt;span class="nv"&gt;processed&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;App2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
{&lt;span class="nv"&gt;info&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;value is 2&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;}
&lt;span class="nv"&gt;y&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
{&lt;span class="k"&gt;ELSE&lt;/span&gt;}
{&lt;span class="nv"&gt;info&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;value is none&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;}
&lt;span class="nv"&gt;y&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
{&lt;span class="nv"&gt;END_IF&lt;/span&gt;}
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Reason why I'm asking is that in some PLC is unsupported some library and I want to avoid error during download such as unresolved reference to getnumberofadapters&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>