C结构定义标准

C struct definition standard

本文关键字:标准 定义 结构      更新时间:2023-10-16

过去几年我用C语言编程,我养成了一个习惯,把结构的typedef放在头文件中,并把它的定义留在源文件中,这样其他人就可以使用我的文件,而不会让它们把事情搞砸。

// header file
typedef struct s_example EXAMPLE

// source file
struct s_example {
       // something
};

这样做有什么不对吗?我应该让别人知道我对我的结构做了什么吗?

我之所以这么问,是因为我看到很多人在头文件中显示所有内容。

只有头文件中的声明的缺点是,所有其他不包括struct定义的源文件都无法实例化该struct的实例,而只能实例化指向它的指针。这是因为,对于其他源文件,struct是不完整的类型。如果这对您的应用程序来说是可以的,那么只在头中声明就没有什么问题。