我在过去几年中使用C语言进行编程,并养成了将结构的typedef放在头文件中并将其定义保留在源文件中的习惯,以便其他人可以使用我的文件而不让它们搞砸了。
// header file
typedef struct s_example EXAMPLE
// source file
struct s_example {
// something
};
这样做有什么不对,我应该让其他人知道我对我的结构做了什么吗?
我只是问这个,因为我看到很多人在头文件中显示所有内容。答案 0 :(得分:9)
仅在头文件中声明的缺点是所有其他不包含struct
定义的源文件都无法实例化该struct
的实例,而只是指向它。这是因为,对于其他源文件,您的struct
是incomplete type。如果这对你的应用程序来说没问题,那么在标题中只有一个声明就没有错。