繁体   English   中英

C中的静态常量结构

[英]Static const structs in C

我们正在开展一个涉及不同语言部分的大项目。 我们决定在编译时将某个部分从JSON转换为必要的C structs (以及其他系统部分的其他结构)。

结构在.h定义,声明将类似于const static struct MCSCommandOptionsMessage mcs_command_message_list[] =然后以所需格式列出参数。

问题是:带有struct声明的自动生成的文件应该是.h ,还是只有这个结构的.c更好? 为什么?

两者都是可能的,在.h或只有一个.c文件中声明可以访问结构。 如果结构定义类似于接口和/或生成多个结构,如果将它们放在.h文件中是好的。 它将定义合同。 如果存在结构的多个实例,则必须将结构定义放在.h文件中。

如果您要表达Isolation并强调结构是私有的,您可以在.c文件中定义它。

通常.h文件用作“包含”文件而不是直接编译,这是因为它们中的代码不应该改变太多,因为它们应该定义一个接口。 请记住,如果结构中有任何更改,并且它们位于.h文件中,那么您必须重新编译使用该结构的任何内容。 如果结构在.c文件中,则每次编译时都会重新编译。

此外,如果结构位于.h文件中,您可以在不同的.c文件中轻松使用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM