Estoy tratando de pasar el valor de una macro C al preprocesador con la opción -Dmacro = value de gcc. Sin embargo, no hace lo que espero. Esto es lo básico de mi código:¿Por qué gcc no pasa el valor de macro desde la línea de comando?
#define T0 0
#define T1 0
#define T2 0
#define T3 0
int main(){
int f[9];
start(f[T0], f[T1], f[T2], f[T3]);
return 0;
}
Correr gcc -DT3=1 -E
muestra el preprocesador no pretende sustituir el valor original de T3. ¿Qué me estoy perdiendo y cómo se puede pasar el valor correctamente?
Acabo de toparme con este problema y me sorprendió un poco b/c Siempre pensé que la definición de la línea de comandos debería anular la definición en línea. Recuerdo vagamente que el compilador de Microsoft hace eso, pero desafortunadamente, no tengo acceso a uno durante un tiempo. Cualquier persona con MSVC puede probar eso y publicar la información, eso estará bien. – ysap