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;