C 是否有任何理由不键入定义结构?
关于结构,是否有任何理由不使用C 是否有任何理由不键入定义结构?,c,struct,typedef,C,Struct,Typedef,关于结构,是否有任何理由不使用typedef 比如: 而不是: struct myType{ int member1; unsigned long member2; char *member3; }; typedef可能会使调试变得困难,因为myType的实例将显示为匿名类型,除非调试器足够聪明,可以加入dots。为了安全起见,我更喜欢两种方式: typedef struct tag_myType { ⋮ } myType; 然而,如果我不得不放弃其中的一个,
typedef
比如:
而不是:
struct myType{
int member1;
unsigned long member2;
char *member3;
};
typedef可能会使调试变得困难,因为myType的实例将显示为
匿名类型
,除非调试器足够聪明,可以加入dots。为了安全起见,我更喜欢两种方式:
typedef struct tag_myType {
⋮
} myType;
然而,如果我不得不放弃其中的一个,出于同样的原因,我会到处写
struct myType
。用typedef关键字你可以写
myx型代码>
如果没有,您必须键入:
struct myType x代码>
因此,您键入的内容较少,如果您编写大型程序,这是必要的
第二,有些人认为,如果使用typedef,可以对代码用户隐藏实现。例如,您使用size\t
类型,而不必知道它是如何定义的。个人选择。typedef less typing注意,\u t
从技术上讲是保留名称。这也是不必要的<代码>类型定义结构myType{…}myType代码>很好用。@OliCharlesworth:谢谢,我不知道(讽刺的是,我通常使用标记…
;我不知道为什么我在这里更改了它)。虽然我知道你可以用同一个名字,但我一直不习惯这样做。不过,我必须承认,这只不过是一种模糊的感觉,即这不是一个好主意。
typedef struct tag_myType {
⋮
} myType;