C结构定义标准

时间:2015-03-19 20:24:40

标签: c++ c struct standards standards-compliance

我在过去几年中使用C语言进行编程,并养成了将结构的typedef放在头文件中并将其定义保留在源文件中的习惯,以便其他人可以使用我的文件而不让它们搞砸了。

// header file
typedef struct s_example EXAMPLE

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

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

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

1 个答案:

答案 0 :(得分:9)

仅在头文件中声明的缺点是所有其他不包含struct定义的源文件都无法实例化该struct的实例,而只是指向它。这是因为,对于其他源文件,您的structincomplete type。如果这对你的应用程序来说没问题,那么在标题中只有一个声明就没有错。