<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>({A stupid question.})</title>
		<link>http://www.allegro.cc/forums/view/591571</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 25 May 2007 19:26:12 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have a question, that I had been thinking about for long time..</p><p>Is there ANY difference between </p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>something<span class="k2">)</span>
    <span class="k2">{</span>
    variable<span class="k3">+</span><span class="k3">=</span><span class="k2">(</span><span class="n">25</span><span class="k3">*</span><span class="n">17</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k2">}</span>
</pre></div></div><p>

and</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>something<span class="k2">)</span>
    variable<span class="k3">+</span><span class="k3">=</span><span class="n">25</span><span class="k3">*</span><span class="n">17</span><span class="k2">;</span>
</pre></div></div><p>

If there is, what exactly, if no.. Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (type568)</author>
		<pubDate>Fri, 25 May 2007 14:38:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nope.</p><p>However, there would be a substantial difference between:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span> <span class="k2">(</span>something<span class="k2">)</span>
<span class="k2">{</span>
  variable1 <span class="k3">+</span><span class="k3">=</span> <span class="n">25</span> <span class="k3">*</span> <span class="n">17</span><span class="k2">;</span>
  variable2 <span class="k3">-</span><span class="k3">=</span> <span class="n">15</span> <span class="k3">*</span> <span class="n">28</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

and</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span> <span class="k2">(</span>something<span class="k2">)</span>
  variable1 <span class="k3">+</span><span class="k3">=</span> <span class="n">25</span> <span class="k3">*</span> <span class="n">17</span><span class="k2">;</span>
  variable2 <span class="k3">-</span><span class="k3">=</span> <span class="n">15</span> <span class="k3">*</span> <span class="n">28</span><span class="k2">;</span>
</pre></div></div><p>

All the { } brackets do is group blocks of code together. To the compiler, a section inside { } brackets is sort of like a single command which does everything inside it.</p><p>The compiler doesn&#39;t actually check indents, new-lines, or anything like that. (Excepting # commands like #include and #define which are normally terminated by new lines as they are compiler directives, not code.)</p><p>For instance, if I wanted to set a sprite to random pixels, I might do something like this in my code:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">for</span> <span class="k2">(</span>z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> z <span class="k3">&lt;</span> sprite-&gt;w<span class="k2">;</span> z<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k1">for</span> <span class="k2">(</span>zz <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> zz <span class="k3">&lt;</span> sprite-&gt;h<span class="k2">;</span> zz<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
  <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>sprite,z,zz,rand_val<span class="k2">(</span><span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Which is effectively the same thing as:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">for</span> <span class="k2">(</span>z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> z <span class="k3">&lt;</span> sprite-&gt;w<span class="k2">;</span> z<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">for</span> <span class="k2">(</span>zz <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> zz <span class="k3">&lt;</span> sprite-&gt;h<span class="k2">;</span> zz<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
  <span class="k2">{</span>
    <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>sprite,z,zz,rand_val<span class="k2">(</span><span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>

Those semicolons aren&#39;t just for show. They tell the compiler to terminate processing of a specific command or assignment. You can write an entire program without ever using indents or carriage returns. Of course, it would be almost impossible to read, but it would work!</p><p>--- Kris Asick (Gemini)<br />--- <a href="http://www.pixelships.com">http://www.pixelships.com</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Fri, 25 May 2007 15:15:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks, i know that though.. except for the #..</p><p>But, I mean ANY difference in the resulting BIN/EXE/DLL file, and the performance..</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>something<span class="k2">)</span>
    <span class="k2">{</span><span class="k2">{</span>
    something<span class="k3">=</span>anything<span class="k2">;</span>
    <span class="k2">}</span><span class="k2">}</span>
</pre></div></div><p>


</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>something<span class="k2">)</span>
    <span class="k2">{</span>
    something<span class="k3">=</span>anything<span class="k2">;</span>
    <span class="k2">}</span>
</pre></div></div><p>

Does this somehow differ? (i.e. second performed 0.001NS faster?)</p><p>EDIT:<br />Also printf(&quot;%f&quot;,(((hi))));<br />and  printf(&quot;%f&quot;,hi);
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (type568)</author>
		<pubDate>Fri, 25 May 2007 15:43:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nope.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (spellcaster)</author>
		<pubDate>Fri, 25 May 2007 15:46:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Does this somehow differ? (i.e. second performed 0.001NS faster?)
</p></div></div><p>
The resulting binary should be exactly the same. If it&#39;s not, your compiler is probably ancient, and you shouldn&#39;t be using it.</p><p>Extra brackets will increase compile time though, but probably not by any measureable amount of time (unless you surround each statement by thousands of extra {} brackets).</p><p>Anyway, this is nothing that should concern you. Code readably; if it&#39;s slow, optimize algorithms; if it&#39;s still slow, find the 1% of your code that causes the major part of the slowdown, and optimize that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Fri, 25 May 2007 16:45:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks Tobias. Thanks all, question is answered to my satisfaction. ^^
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (type568)</author>
		<pubDate>Fri, 25 May 2007 19:26:12 +0000</pubDate>
	</item>
</rss>
