繁体   English   中英

在创建typedef'd结构时指定两种类型有什么好处?

[英]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 TT两种类型


我倾向于经常看到示例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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM