#define N 10;
int main()
{
int x;
for (int i=0; i<N; i++)
x = i;
return 0;
}
結果:的#define導致「預期主表達式」錯誤以g ++編譯此的
test-define.cpp: In function ‘int main()’:
test-define.cpp:7:22: error: expected primary-expression before ‘;’ token
test-define.cpp:7:22: error: expected ‘)’ before ‘;’ token
test-define.cpp:7:24: error: name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive]
test-define.cpp:7:24: note: (if you use ‘-fpermissive’ G++ will accept your code)
test-define.cpp:7:27: error: expected ‘;’ before ‘)’ token
但是,當我改變線7到for (int i=0; i<10; i++)
它編譯罰款。
這是爲什麼?我怎樣才能使用#define
指令來實現我想要的?
這應該是'#define N 10'。額外的分號導致編譯器期待的for語句中有兩個分號。 –