0

关于结构,有什么不使用的理由typedef吗?

喜欢:

typedef struct{
    int member1;
    unsigned long member2;
    char *member3;
} myType;

代替:

struct myType{
    int member1;
    unsigned long member2;
    char *member3;
};
4

2 回答 2

1

Typedef 会使调试变得困难,因为 myType 的实例将显示为anonymous type除非调试器足够聪明,可以连接点。为了安全起见,我更喜欢两者都做:

typedef struct tag_myType {
    ⋮
} myType;

然而,如果我不得不放弃其中一个,我会忍受struct myType到处写作,出于同样的原因。

于 2013-08-11T11:37:53.667 回答
1

使用 typedef 关键字,您可以编写

myType x;

如果没有,你必须输入:

struct myType x;

因此,您键入的内容更少,如果您编写大型程序,这是必要的。

秒,有人争辩说,如果你使用 typedef,你可以对代码的用户隐藏实现。作为示例,您使用size_t类型而不必知道它是如何定义的。

于 2013-08-11T11:38:20.610 回答