有没有理由不输入结构?

时间:2013-08-11 11:31:24

标签: c struct typedef

关于结构,是否有任何理由不使用typedef

像:

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

而不是:

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

2 个答案:

答案 0 :(得分:1)

Typedef可能会使调试变得困难,因为myType的实例将显示为anonymous type,除非调试器足够聪明以加入点。为了安全起见,我更喜欢这两种方式:

typedef struct tag_myType {
    ⋮
} myType;

但是,如果我不得不放弃其中一个,那么,出于同样的原因,我会在任何地方写struct myType

答案 1 :(得分:1)

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

myType x;

如果没有,你必须输入:

struct myType x;

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

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