C和C++中struct的typedef用法建议
参考文章(建议先读)
根据参考的文章,总结一下:
情况1 C语言中:
typedef struct{
···;
}aaa;
则aaa是struct类的"数据类型",用法:aaa xxx;
情况2 C语言中:
struct aaa{
···;
};
则aaa是struct类的"数据类型",用法:struct aaa xxx;//注意比情况1多了"struct"
情况3 C语言中:
struct {
···;(比如int x;)
}aaa;
则aaa是该自定义数据类型的一个实例(对象),用法:aaa.x=xxx;
情况4 C++语言中:
struct aaa{
···;
};
则aaa是struct类的"数据类型",用法:aaa xxx;//注意注意!定义形式同情况2,但是用法却同情况1!
总结:
结合参考的文章和本篇文章,这四种是比较基本的情况;
建议:不管在C还是C++中,都使用
typedef struct{
···;
}aaa;//用法:aaa xxx;
这一种格式,因为这种定义的定义形式和用法在C和C++中都是相同的!
而且不建议情况3中的直接定义一个实例,容易混淆。