首先,声明结构体时可以使用一种良好技巧,用typedef创建一种新的类型
- 使用typedef的情况
typedef struct //注意没有结构体标签
{
}XX;
用法:XX a;
这是个匿名结构体,XX是匿名结构体的别名
- 另一种使用typedef的情况 (能用这个就不要用别的)
typedef struct tagXX
{
}XX;
用法:XX a;(或者 tagXX a; 也可以)
这是最常用的写法,清晰不言自明,tagXX是结构体标签,XX是 struct tagXX的别名
struct声明定义总结
(1)传统C语言中,定义结构体的标准语法是: //先声明结构体类型再定义变量名
struct tagXX
{
};
声明struct新对象时,必须带上struct,即struct tagXX a;写成tagXX a的形式是错误的,但是在C++中却是可以的。
(2)在声明类型的同时定义变量
struct tagXX
{
}a,b;
(3)直接定义结构体类型变量
struct //注意没有结构体类型名
{
}a;
这种写法是最没人用的,因为它的定义是一次性的