Foros del Web » Programación para mayores de 30 ;) » Programación General »

(c++) Algo rarísimo

Estas en el tema de (c++) Algo rarísimo en el foro de Programación General en Foros del Web. 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; } ...
  #1 (permalink)  
Antiguo 03/10/2005, 09:56
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
(c++) Algo rarísimo

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

Última edición por tunait; 10/02/2006 a las 12:00
  #2 (permalink)  
Antiguo 03/10/2005, 11:14
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
¿Tiene alguna logica o sentido lo que estas haciendo? No es C ni C++ standard por cierto.

En C no compila de ninguna forma al buscar el compilador la funcion 0 que obviamente no existe ni puede existir.

Cuando usas el VC++ te da un warning:

raro.cpp(6) : warning C4353: se ha utilizado una extensión no estándar: constante 0 como expresión de función. Utilice en su lugar la función intrínseca '__noop'

Entonces el reemplaza la llamada por un mov a la variable con el valor 0.

Cuando intentas usar el 1 directamente te da el error.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:38.