這種寫法會報錯
typedef int A;
int main()
{
int a = 2;
if (a == 1)
a = 2;
A tmp = 3;
return 0;
}
這樣就不會報錯
typedef int A;
int main()
{
int a = 2;
if (a == 1)
{a = 2;}
A tmp = 3;
return 0;
}
這樣也不會報錯
typedef int A;
int main()
{
int a = 2;
if (a == 1)
a = 2;
int tmp = 3;
return 0;
}
請問,這個現象的根本原因是什麼?為什麼if語句後面如果,用typedef重命名的關鍵字 定義變量時,必須加大括號?
剛才給你跑了下,正確的揭發應該是這樣的
typedef int A;
int main()
{
int a = 2;
A tmp = 3;
if (a == 1)
a = 2;
return 0;
}
因為變量的定義必須要位於控制語句之前,你在if語句之後再另外定義新的變量肯定是不行的。