<?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"
	>
<channel>
	<title>Comentarios en: Donde pongo el ++ al incrementar una variable?</title>
	<atom:link href="http://asiermarques.com/2007/11/20/donde-pongo-el-al-incrementar-una-variable/feed/" rel="self" type="application/rss+xml" />
	<link>http://asiermarques.com/2007/11/20/donde-pongo-el-al-incrementar-una-variable/</link>
	<description>Bitácora y apuntes técnicos</description>
	<pubDate>Fri, 09 Jan 2009 22:08:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>Por: Asier Marqués</title>
		<link>http://asiermarques.com/2007/11/20/donde-pongo-el-al-incrementar-una-variable/#comment-2912</link>
		<dc:creator>Asier Marqués</dc:creator>
		<pubDate>Wed, 21 Nov 2007 17:43:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.asiermarques.com/2007/11/20/donde-pongo-el-al-incrementar-una-variable/#comment-2912</guid>
		<description>@alberto en java probé el mismo código que he puesto en el post y me ha funcionado de la misma forma que en php.

La explicación de mi post está expuesta de una forma similar en la guía de certificación de zend para php5.

Pero coincido contigo en que no puede ser nada bueno complicar  una línea de código en la que se use el operador ++. 

En tu ejemplo me parece una locura tener la línea a=(a++)+(a++); No se si en algún caso sería necesario hacerlo asi, pero yo lo evitaría. 

En fin, tu sabes infinito más que yo de programación, gracias por tu comentario.

Un saludo</description>
		<content:encoded><![CDATA[<p>@alberto en java probé el mismo código que he puesto en el post y me ha funcionado de la misma forma que en php.</p>
<p>La explicación de mi post está expuesta de una forma similar en la guía de certificación de zend para php5.</p>
<p>Pero coincido contigo en que no puede ser nada bueno complicar  una línea de código en la que se use el operador ++. </p>
<p>En tu ejemplo me parece una locura tener la línea a=(a++)+(a++); No se si en algún caso sería necesario hacerlo asi, pero yo lo evitaría. </p>
<p>En fin, tu sabes infinito más que yo de programación, gracias por tu comentario.</p>
<p>Un saludo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Alberto de Tena</title>
		<link>http://asiermarques.com/2007/11/20/donde-pongo-el-al-incrementar-una-variable/#comment-2909</link>
		<dc:creator>Alberto de Tena</dc:creator>
		<pubDate>Wed, 21 Nov 2007 16:28:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.asiermarques.com/2007/11/20/donde-pongo-el-al-incrementar-una-variable/#comment-2909</guid>
		<description>Mmmmmm, hay algunos casos al utilizar un operador de incremento que no estan definidos en el estandar ANSI y que son interpretados de una u otra forma segun el compilador que uses. Por ejemplo

#include 

void main()
{
int a;
a=5;
a=(a++)+(a++);
printf("%d\n",a);
}

Codigo simple en C, dependiendo del compilador que tengas te puede dar desde 23, hasta 22 o 21 incluso.

Lo he probado en un gcc bajo cygwin, bajo AIX y bajo Solaris y me da siempre 12.

Mira lo que dice el compilador de AIX

cc: Warning: test.c, line 7: In this statement, the expression "a=(a++)+(a++)" modifies the variable "a" more than once without an intervening sequence point.  This behavior is undefined. (undefvarmod)

En resumen, no suele ser una buena idea usar este operador de formas compuestas, al no estar definido y al ser difícil de leer y de interpretar.

Te dejo la sorpresa de ver cuanto da en Java un código equivalente.</description>
		<content:encoded><![CDATA[<p>Mmmmmm, hay algunos casos al utilizar un operador de incremento que no estan definidos en el estandar ANSI y que son interpretados de una u otra forma segun el compilador que uses. Por ejemplo</p>
<p>#include </p>
<p>void main()<br />
{<br />
int a;<br />
a=5;<br />
a=(a++)+(a++);<br />
printf(&#8221;%d\n&#8221;,a);<br />
}</p>
<p>Codigo simple en C, dependiendo del compilador que tengas te puede dar desde 23, hasta 22 o 21 incluso.</p>
<p>Lo he probado en un gcc bajo cygwin, bajo AIX y bajo Solaris y me da siempre 12.</p>
<p>Mira lo que dice el compilador de AIX</p>
<p>cc: Warning: test.c, line 7: In this statement, the expression &#8220;a=(a++)+(a++)&#8221; modifies the variable &#8220;a&#8221; more than once without an intervening sequence point.  This behavior is undefined. (undefvarmod)</p>
<p>En resumen, no suele ser una buena idea usar este operador de formas compuestas, al no estar definido y al ser difícil de leer y de interpretar.</p>
<p>Te dejo la sorpresa de ver cuanto da en Java un código equivalente.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
