Ich begann, Programme auf Strukturen zu tun. Ich bin verwirrt über die Deklaration von Strukturen selbst, weil es mehrere Deklarationen derselben Variablen erlaubt, was in c nicht üblich ist.Warum kein Fehler bei mehreren Deklarationen der gleichen Strukturvariablen
uns den folgenden Code Lassen Sie betrachten:
#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;
}
Im Allgemeinen C mehrere Erklärung derselben Variablen nicht zulässt, auch hier ist es, wenn ich die zweite Aussage in Haupt nicht auf Kommentar. Aber mein Zweifel ist der, warum es die mehrfache Deklaration derselben Variablen vernachlässigt, wenn man innerhalb von main und nicht anders ist?
Das innere "u" unterscheidet sich vom äußeren "u". Allen gemeinsam ist der Name, wobei das innere "u" das äußere "u" beschattet (versteckt). Gleiches für "v". – alk
'Zeichen x; void foo (int x) {{float x; {double x;}}} ist gültig. :-) – alk