我想知道 struct tag_name 在 C 编程中的实际使用。在不使用 tag_name 的情况下,我也得到了与使用 tag_name 一样的输出。我想要这个过程背后的确切原因。
例如:
//With tag_name st1
struct st1 { int x; char c;}x={100,'a'},y={70,'e'};
//Without any tag_name
struct { int x; char c;}x={100,'a'},y={70,'e'};
printf("x.x= %d \t x.c= %c \n",x.x,x.c); //Output: x.x=100 x.c=a
printf("y.x= %d \t y.c= %c \n",y.x,y.c); //Output: y.x=70 y.c=e
最佳答案
第一种情况:
struct st1 {
int x;
char c;
} x = {100, 'a'}, y = {70, 'e'};
您声明了一个名称为 struct st1
的类型,并且您还创建了两个该类型的对象,x
和 y
。所以你可以随时创建这种类型的对象,就像这样:
struct st1 obj1;
但是在第二种情况下:
struct {
int x;
char c;
} x = {100, 'a'}, y = {70, 'e'};
您创建了一个 struct
和两个对象,x
和 y
,但是您无法访问这个struct
再次。这意味着您不能创建任何这种类型的新对象。
关于c - C编程中Struct Tag名称的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44180120/