Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Orden de los productos en C++

Iniciado por 1cacalvo, 27 de Abril de 2007, 01:41:31 PM

« anterior - próximo »

1cacalvo

Pues me he encontrado una cosa curiosa en C++ a ver si me comentais porque es (tengo una ligera idea o sospecha)...

Tengo definido:


Citar
#define DESPLY 100;

//Desplazamiento inicial
int desp = 3 * DESPLY;  //Linea correcta
int desp = DESPLY * 3;  //Error de Comp:  error C2100: direccionamiento indirecto no válido


La verdad es que me ha parecido curioso...

sés

Cita de: "1cacalvo"
Citar#define DESPLY 100;

//Desplazamiento inicial
int desp = 3 * DESPLY;  //Linea correcta
int desp = DESPLY * 3;  //Error de Comp:  error C2100: direccionamiento indirecto no válido

La verdad es que me ha parecido curioso...

A mí no tanto :P
Soy indeciso... ¿o no?

Zaelsius

Evita los #define, usa 'const' siempre que puedas para constantes.

ethernet


Pogacha

Cita de: "ZaelSiuS"Evita los #define, usa 'const' siempre que puedas para constantes.
Exactamente.
Los defines tienen una utilidad pero en la mayoria de los casos es mejor usar otras cosas ... const y templates generalmente.

ethernet

En general siempre será mejor usar cosas que te aporte el lenguaje, evitarás problemas como ese.

kbks

Como ya te han dicho el problema está en el ;.

Esto:

#define DESPLY 100;

//Desplazamiento inicial
int desp = 3 * DESPLY; //Linea correcta
int desp = DESPLY * 3; //Error de Comp: error C2100: direccionamiento indirecto no válido


Es lo mismo que esto otro:


int desp = 3 * 100;;
int desp = 100;* 3;

Es decir, en la primera multiplica 3*100 y lo almacena en desp y despues compila una instrucción vacia. La segunda es claramente erronea.

1cacalvo

Upsss pero que tonto parece uno cuando te explican estas cosillas....

Pues muchas gracias a todos por la aclaración y ya he cambiado ese DEFINE por una constante... :P






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.