Logo

¡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: ZaelSiuSEvita 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.
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.