C 结构定义标准
C struct definition standard
我这几年一直在用C编程,养成了一个习惯,就是把struct的typedef放在头文件里,而把它的定义留在源文件里,这样别人就可以不用我的文件了让他们把事情搞砸。
// header file
typedef struct s_example EXAMPLE
// source file
struct s_example {
// something
};
这样做有什么问题吗,我应该让其他人知道我对我的结构做了什么吗?
我问这个是因为我看到很多人在头文件中显示所有内容。
仅在 header 文件中声明的缺点是所有其他不包含 struct
定义的源文件无法实例化 struct
的实例,但只是指向它的指针。这是因为,对于那些其他源文件,您的 struct
是一个 incomplete type。如果这对您的应用程序没问题,那么在 header.
中声明就没有问题
我这几年一直在用C编程,养成了一个习惯,就是把struct的typedef放在头文件里,而把它的定义留在源文件里,这样别人就可以不用我的文件了让他们把事情搞砸。
// header file
typedef struct s_example EXAMPLE
// source file
struct s_example {
// something
};
这样做有什么问题吗,我应该让其他人知道我对我的结构做了什么吗?
我问这个是因为我看到很多人在头文件中显示所有内容。
仅在 header 文件中声明的缺点是所有其他不包含 struct
定义的源文件无法实例化 struct
的实例,但只是指向它的指针。这是因为,对于那些其他源文件,您的 struct
是一个 incomplete type。如果这对您的应用程序没问题,那么在 header.