[英]Typedef struct declared as two types: “typedef struct x { .. } X, *XPointer”
[英]What is the advantage of specifying two types when creating a typedef'd struct?
例1:
struct T{
int a;
};
创建类型struct T
例2:
typedef struct {
int a;
} T;
创建类型T.
例3:
typedef struct T{
int a;
} T;
创建struct T和T两种类型
我倾向于经常看到示例3,我不确定为什么有人会在示例1或2中选择它。
我想避免在示例3中使用它,因为它对类型的维护较少,并且它限制了多种声明同一事物的方式。 但是,如果这种“双重命名”技术有好处,我会重新考虑它。
我倾向于经常看到示例3,我不确定为什么有人会在示例1或2中选择它。
- 这样做有什么好处吗?
我认为这个事实是不言而喻的,即繁琐的代码很麻烦。 每个人都愿意写作
T object;
代替
struct T object;
然而,一个顽固的C编码器可能会认为嘿, T
是一个结构,更好地称之为它,并且它减少了你在做的时候会遇到混淆的机会
struct {int a; } T; typedef int T;
- 人们是否有理由这样做兼容?
是。 这样,C中的结构可以像在C ++中使用一样使用。
- 某种范围的原因是否有利?
不,不是我知道的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.