c - C编程中Struct Tag名称的用途是什么?

标签 c struct

我想知道 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 的类型,并且您还创建了两个该类型的对象,xy。所以你可以随时创建这种类型的对象,就像这样:

struct st1 obj1;

但是在第二种情况下:

struct { 
    int x; 
    char c;
} x = {100, 'a'}, y = {70, 'e'};

您创建了一个 struct 和两个对象,xy,但是您无法访问这个struct 再次。这意味着您不能创建任何这种类型的新对象。

关于c - C编程中Struct Tag名称的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44180120/

相关文章:

c++ - 如果 cmdline 有多个管道,如何获取用于调用程序的完整 cmdline

c - 在两个字符串文字之间放置定义宏

使用 Linux netfilter 将源 IP 地址从 struct iphdr* 转换为等效字符串

c - 一道简单的c题

ios - 为一副纸牌中的每个 Card 实例赋值

c - 如何将多个结构传递给一个函数 (ANSI C)

c - 如何优化 malloc() 或动态填充未知大小的内存?

c - 如何释放 C 结构?

c++ - 如何为套接字编程序列化 8 位整数结构?

json - 结构列表作为 json golang