我開始在結構上執行程序。我對於聲明結構本身感到困惑,因爲它允許多個同一個變量的聲明,這在c中不常見。爲什麼在相同結構變量的多個聲明中沒有錯誤
讓我們看看下面的代碼:
#include<stdio.h>
struct {
int x;
int y;
}u, v;
int main()
{
struct {int x; int y;} u = {3, 4}, v = {5, 6};
/* struct {int x; int y;} u, v*/
printf("%d\n", u.x);
printf("%d\n", v.y);
return 0;
}
一般來說,C不允許同一個變量的多次聲明,在這裏也它,如果我沒有在主註釋掉第二條語句。但是我的疑問是,爲什麼它忽略了同一變量的多重聲明,如果其中一個是主要的而不是其他的?
內部'u'與外部'u'不同。所有這兩者都有一個共同點,就是名稱,內部的'u'陰影(隱藏)外部的'u'。 'v'一樣。 – alk
'char x; void foo(int x){{float x; {double x;}}}'是有效的。 :-) – alk