【发布时间】:2013-10-29 20:42:30
【问题描述】:
我从遗留代码库中遇到了一些 C 代码,这让我摸不着头脑。
代码中到处都有 typedef 的结构,如下所示。
typedef struct Foo {
char *data;
int stuff;
} *Foo;
使用 GCC 可以很好地编译。
我的问题是将结构类型定义为结构指针的目的是什么?这是几年前的标准做法吗?有什么我想念的吗?这似乎是一种非常糟糕的风格,因为它混淆了结构指针。任何有助于理解此遗留代码的帮助将不胜感激。
【问题讨论】:
-
不,虽然更好一点的是在名称中暗示它是一个指针,例如FooPtr
-
您不是“将结构定义为结构指针”,而是将名称
Foo定义为struct Foo指针。你不能“typedef a struct”,这没有任何意义。