<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Bizarro&#8230; mas muito útil!</title>
	<atom:link href="http://log4dev.com/2008/08/27/bizarro-mas-muito-util/feed/" rel="self" type="application/rss+xml" />
	<link>http://log4dev.com/2008/08/27/bizarro-mas-muito-util/</link>
	<description></description>
	<lastBuildDate>Fri, 25 Nov 2011 22:30:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: Insane</title>
		<link>http://log4dev.com/2008/08/27/bizarro-mas-muito-util/comment-page-1/#comment-815</link>
		<dc:creator>Insane</dc:creator>
		<pubDate>Tue, 02 Sep 2008 12:16:54 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/08/27/bizarro-mas-muito-util/#comment-815</guid>
		<description>&lt;p&gt;Bom dia pessoas,&lt;/p&gt;

&lt;p&gt;Pesquisei um pouco, e essa trick é válida sim.&lt;/p&gt;

&lt;p&gt;Visitem: http://www.noveltheory.com/TechPapers/while.htm&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Bom dia pessoas,</p>

<p>Pesquisei um pouco, e essa trick é válida sim.</p>

<p>Visitem: <a href="http://www.noveltheory.com/TechPapers/while.htm" rel="nofollow">http://www.noveltheory.com/TechPapers/while.htm</a></p>]]></content:encoded>
	</item>
	<item>
		<title>By: Leonardo</title>
		<link>http://log4dev.com/2008/08/27/bizarro-mas-muito-util/comment-page-1/#comment-814</link>
		<dc:creator>Leonardo</dc:creator>
		<pubDate>Sat, 30 Aug 2008 00:10:31 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/08/27/bizarro-mas-muito-util/#comment-814</guid>
		<description>&lt;p&gt;Insane e Raphael,&lt;/p&gt;

&lt;p&gt;Confesso que eu não pensei muito sobre as coisas que vocês estão comentando. Eu simplesmente vi o código uma vez, fiquei curioso, fui atrás, achei útil e comecei a usar em alguns projetos pessoais.&lt;/p&gt;

&lt;p&gt;Mas a indagação de vocês faz todo o sentido. Aí fui lá eu testar. Fiz um pequeno programa de teste e compilei com &quot;gcc -std=c99 -pedantic -Wall -o test test.c&quot;. Tive que alterar um pouco as macros porque elas tinham construções não totalmente compatíveis com C99 (como, por exemplo, declaração de variável dentro dos argumentos do loop for). O resultado é que usando apenas chaves para delimitar o bloco funciona também. Ou seja, o do-while(false) realmente parece ser desnecessário.&lt;/p&gt;

&lt;p&gt;Eu li em um fórum que este tipo de construção é útil quando se quer especificar statements em C/C   dentro de macros. No entanto, pelo teste que eu fiz usar apenas chaves já seria suficiente para isso. Pelo menos no caso que eu testei (não sei se eu consigo testar casos genéricos de todas as situações em que é possível se colocar statements em C/C  ).&lt;/p&gt;

&lt;p&gt;Como o do-while(false) certamente é eliminado pelo compilador durante a compilação, imagino que o fato de este tipo de construção ainda aparecer deve ser por estilo de programação ou alguma coisa assim. Mas, tanto faria usar apenas as chaves ou até mesmo um if (1) imagino eu.&lt;/p&gt;

&lt;p&gt;Concluíndo, se tem alguma coisa de realmente especial em se usar do-while (false) ao invés de alguma outra construção como as que vocês sugeriram, eu não sei dizer. Alguém especialista em C por aí que saiba com segurança a resposta para esta pergunta?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Insane e Raphael,</p>

<p>Confesso que eu não pensei muito sobre as coisas que vocês estão comentando. Eu simplesmente vi o código uma vez, fiquei curioso, fui atrás, achei útil e comecei a usar em alguns projetos pessoais.</p>

<p>Mas a indagação de vocês faz todo o sentido. Aí fui lá eu testar. Fiz um pequeno programa de teste e compilei com &#8220;gcc -std=c99 -pedantic -Wall -o test test.c&#8221;. Tive que alterar um pouco as macros porque elas tinham construções não totalmente compatíveis com C99 (como, por exemplo, declaração de variável dentro dos argumentos do loop for). O resultado é que usando apenas chaves para delimitar o bloco funciona também. Ou seja, o do-while(false) realmente parece ser desnecessário.</p>

<p>Eu li em um fórum que este tipo de construção é útil quando se quer especificar statements em C/C   dentro de macros. No entanto, pelo teste que eu fiz usar apenas chaves já seria suficiente para isso. Pelo menos no caso que eu testei (não sei se eu consigo testar casos genéricos de todas as situações em que é possível se colocar statements em C/C  ).</p>

<p>Como o do-while(false) certamente é eliminado pelo compilador durante a compilação, imagino que o fato de este tipo de construção ainda aparecer deve ser por estilo de programação ou alguma coisa assim. Mas, tanto faria usar apenas as chaves ou até mesmo um if (1) imagino eu.</p>

<p>Concluíndo, se tem alguma coisa de realmente especial em se usar do-while (false) ao invés de alguma outra construção como as que vocês sugeriram, eu não sei dizer. Alguém especialista em C por aí que saiba com segurança a resposta para esta pergunta?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Insane</title>
		<link>http://log4dev.com/2008/08/27/bizarro-mas-muito-util/comment-page-1/#comment-818</link>
		<dc:creator>Insane</dc:creator>
		<pubDate>Thu, 28 Aug 2008 17:46:49 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/08/27/bizarro-mas-muito-util/#comment-818</guid>
		<description>&lt;p&gt;Também não sei de cabeça como é isso no Ansi C, mas acho que no início de blocos pode criar variáveis na boa.
No C   funciona, eu já testei.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Também não sei de cabeça como é isso no Ansi C, mas acho que no início de blocos pode criar variáveis na boa.
No C   funciona, eu já testei.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Raphael</title>
		<link>http://log4dev.com/2008/08/27/bizarro-mas-muito-util/comment-page-1/#comment-817</link>
		<dc:creator>Raphael</dc:creator>
		<pubDate>Thu, 28 Aug 2008 17:35:22 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/08/27/bizarro-mas-muito-util/#comment-817</guid>
		<description>&lt;p&gt;Eu estava pensando a mesma coisa. Só não sei de cabeça como é que o ANSI C lida com a parte de escopo de variáveis dentro de loops, ou se é possível fazer um bloco de código.&lt;/p&gt;

&lt;p&gt;De qualquer jeito, não vejo diferença entre fazer uma macro que usa um do{}while(false) e uma macro que faça if(1){}.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Eu estava pensando a mesma coisa. Só não sei de cabeça como é que o ANSI C lida com a parte de escopo de variáveis dentro de loops, ou se é possível fazer um bloco de código.</p>

<p>De qualquer jeito, não vejo diferença entre fazer uma macro que usa um do{}while(false) e uma macro que faça if(1){}.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Insane</title>
		<link>http://log4dev.com/2008/08/27/bizarro-mas-muito-util/comment-page-1/#comment-816</link>
		<dc:creator>Insane</dc:creator>
		<pubDate>Thu, 28 Aug 2008 16:12:51 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/08/27/bizarro-mas-muito-util/#comment-816</guid>
		<description>&lt;p&gt;Olá&lt;/p&gt;

&lt;p&gt;Essa construção é usada somente para pode criar variáveis no contexto local?
Fazendo a sua macro, somente com as chaves {} seria possível criar um contexto local, certo?&lt;/p&gt;

&lt;p&gt;Algo como:&lt;/p&gt;

&lt;h1&gt;define ROTULO&lt;em&gt;SEM&lt;/em&gt;WHILE(rot) printf(&quot;L%d:&quot;, rot); { \&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;      int n = numeroDigitos(rot); \
      IMPRIME_ESPACOS(6 - (n   2))\
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;Não teria o mesmo efeito?&lt;/p&gt;

&lt;p&gt;Fiquei curioso hehe, mas se for somente para a criação de um escopo local, o do-while é desnecessário&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Olá</p>

<p>Essa construção é usada somente para pode criar variáveis no contexto local?
Fazendo a sua macro, somente com as chaves {} seria possível criar um contexto local, certo?</p>

<p>Algo como:</p>

<h1>define ROTULO<em>SEM</em>WHILE(rot) printf(&#8220;L%d:&#8221;, rot); { \</h1>

<pre><code>      int n = numeroDigitos(rot); \
      IMPRIME_ESPACOS(6 - (n   2))\
</code></pre>

<p>}</p>

<p>Não teria o mesmo efeito?</p>

<p>Fiquei curioso hehe, mas se for somente para a criação de um escopo local, o do-while é desnecessário</p>]]></content:encoded>
	</item>
</channel>
</rss>

