示例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 方式,因为它对类型的维护较少,并且它限制了多种声明相同内容的方式。但是,如果这种“双重命名”技术有好处,我会重新考虑它。
答案 0 :(得分:4)
我倾向于经常看到例子3,我不确定为什么会这样 选择例子1或2。
- 这样做会有什么好处吗?
我认为这个事实是不言而喻的,即繁琐的代码很麻烦。每个人都愿意写
T object;
而不是
struct T object;
然而,一个硬核C编码器可能会认为嘿,T
是一个结构,更好地称之为,它也减轻了你混淆的机会。做什么时
struct {int a; } T; typedef int T;
- 人们是否有理由这样做兼容?
是。这样,C中的结构可以像在C ++中一样使用。
不,不是我知道的。
- 对于某种范围界定的原因是否有利?