SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: RiLaRos en Miércoles 15 de Marzo de 2006, 01:16

Título: Algo Rarisimo
Publicado por: RiLaRos en Miércoles 15 de Marzo de 2006, 01:16
Para este sencillo codigo c++:

#include "stdafx.h"

int main(int argc, char* argv[])
{
int aux;
aux = (0) ( 44);

printf("%d patata",aux);
return 0;
}

Si yo hago eso, compila bien, y aux es igual a 0.
En cambio si hago
aux = (1) ( 44);
Como es logico da error de compilacion porque eso no hay quien lo evalue.
Entonces... porque no da error de compilacion con el
aux = (0) ( 44);
?????

Graciasssss
Título: Re: Algo Rarisimo
Publicado por: Geo en Miércoles 15 de Marzo de 2006, 05:58
Pues debe ser algo relacionado con la implementación de Microsoft, porque en MinGW te manda este error:

'0' cannot be used as a function

Ahora, en Visual C++ te manda también una advertencia:

warning C4353: nonstandard extension used: constant 0 as function expression. Use '__noop' function intrinsic instead


Donde se puede ver que es una extensión "no estándar" implementada por Microsoft, en algún lado está 0 declarada como ¿constante?

Saludos,
José Jorge (Geo).