我对下面的声明有一点困惑--你能帮我澄清一下吗?
typedef struct {
int a;
int b;
} example;还有这个
struct something {
int a;
int b;
} ob;我甚至不确定下面这句话是什么意思?
typedef struct foo {
int a;
int b;
} bar;发布于 2019-01-11 20:11:52
typedef struct {
int a;
int b;
} example;它定义了一个未命名的结构类型,并引入example作为该结构类型的类型别名。因此,您只能将该结构类型称为“示例”。
struct something {
int a;
int b;
} ob;它定义了一个结构类型something,还声明了一个该类型的对象ob。只能将结构类型称为struct something。
typedef struct foo {
int a;
int b;
} bar;它定义了一个名为foo的结构类型,并引入bar作为该结构类型的类型别名。您可以将该结构类型称为struct foo或bar。
发布于 2019-01-11 20:12:15
使用
typedef struct {
int a;
int b;
} example;您定义了一个未命名的结构,但为该结构定义了一个类型别名example。这意味着您只能使用类型“example”创建结构的实例,例如
example my_example_structure;使用
struct something {
int a;
int b;
} ob;您定义了一个名为something的结构和一个名为ob的结构的实例(变量)。您可以使用struct something创建结构的新变量:
struct something my_second_ob;变量ob可以像该结构的任何其他实例一样使用:
printf("b = %d\n", ob.b);最后,使用
typedef struct foo {
int a;
int b;
} bar;您定义了一个名为foo的结构,因此您可以使用例如struct foo来定义变量。您还可以定义一个类型别名bar,也可以使用它。举个例子
struct foo my_first_foo;
bar my_second_foo;typedef的一般语法为
typedef <actual type> <alias name>;在示例的最后一个例子中,<actual type>是
struct foo {
int a;
int b;
}<alias name是bar。
https://stackoverflow.com/questions/54146269
复制相似问题