我正在使用这样的结构.我不喜欢typedef,因为我告诉它可以隐藏错误.但是,我正在查看一些示例代码,我看到这样的结构声明了.这是我宣布它们的正常方式.
struct person
{
int age;
char name[32];
};
Run Code Online (Sandbox Code Playgroud)
像这样使用:
struct person person_a;
person_a.age = 20;
etc.
Run Code Online (Sandbox Code Playgroud)
但是,我看到结构声明如下:
struct
{
int age;
char name[32];
}person;
Run Code Online (Sandbox Code Playgroud)
和
struct _person
{
int age;
char name[32];
}person;
Run Code Online (Sandbox Code Playgroud)
所有这些不同技术之间的区别是什么,以及您如何决定何时使用每个特定技术.
非常感谢任何建议,
Chr*_*utz 17
这个:
struct
{
int age;
char name[32];
}person;
Run Code Online (Sandbox Code Playgroud)
声明一个变量,person这是一个struct.在struct还没有名字,但你仍然使用person变量的方式相同.
struct _person
{
int age;
char name[32];
}person;
Run Code Online (Sandbox Code Playgroud)
这与以下内容相同:
struct _person
{
int age;
char name[32];
};
struct _person person;
Run Code Online (Sandbox Code Playgroud)
它声明了一个structnamed _person,然后生成一个名为persontype 的变量struct _person.