在我最近的操作系统类中,我们定义了一堆这样的对象:
typedef struct someobj {
... stuff ...
} someobj_t;
我知道那很好。
问题在于,有时在给定的支持代码中,结构被称为
struct someobj *some
,有时也称为someobj_t *some
。是否有实际/有用的理由以这两种不同的方式来引用结构,还是仅仅是风格上的差异? 最佳答案
假设我们正在询问以下代码(我在写问题时没有typedef
,但我假设它应该在那里):
typedef struct someobj {
// content
} someobj_t;
实际上,通常只需省略名称
someobj
并始终使用someobj_t
就足够了。但是,当您希望结构引用自身时,会出现这种情况:typedef struct someobj {
struct someobj* next;
// cannot say someobj_t* yet - typedef not complete
} someobj_t;
// and from now on, both struct someobj and`someobj_t are equivalent
关于c - C中的struct x vs x_t,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4383052/