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...
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
Evita los #define, usa 'const' siempre que puedas para constantes.
pista: ojo a los puntos y comas
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.
En general siempre será mejor usar cosas que te aporte el lenguaje, evitarás problemas como ese.
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.
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