Próbuję przekazać wartość makra C do preprocesora z opcją -Dmacro = wartość gcc. Jednak nie robi to, czego się spodziewam. To podstawy mojego kodu:dlaczego nie jest przekazywana wartość makr gcc z wiersza poleceń?
#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;
}
Running gcc -DT3=1 -E
pokazuje preprocesor nie zastępuje pierwotną wartość T3. Czego mi brakuje i jak można przekazać wartość poprawnie?
Sam wpadłem na ten problem i byłem nieco zaskoczony b/c Zawsze uważałem, że definicja wiersza poleceń powinna przesłonić definicję śródliniową. Niejasno pamiętam, że robi to kompilator Microsoftu, ale niestety nie mam do niego dostępu od jakiegoś czasu. Każdy z MSVC może przetestować to i opublikować informacje, które będą miłe. – ysap