我目前正在开发一个项目(在C中),我们使用#defines
作为默认变量。
此变量用于布置电池缓冲柱塞结构。
现在我们有不同的客户,他们有不同的布局。 在过去,我们只会创建一个全新的软件 现在我们正试图摆脱这种碎片并使用相同的代码库。
我们有一个通用库(用于所有项目),它有一组#define
s并声明结构。目前我们有一个自定义头文件(包含该项目的#defines),并将它们与常规库中的#define
进行比较。如果不同则会引发错误。
我们希望保留自定义头文件,但我正在尝试找到替换常规库中#define
的解决方案。一个想法是用某种变量替换它们另一种是使用某种预处理器定义。
过去我们使用ifdef
但是代码真的很杂乱而且可怕,所以我们也试图摆脱它。
有人有任何解决方案吗?
答案 0 :(得分:4)
您可以将所有#define
括在
#ifndef HUI
# define HUI 1023
#endif
然后将您想要更改的内容放在使用-DHUI=1033
的编译命令行上进行单独编译。
答案 1 :(得分:2)
快速解决方案: 将定义放入单独的头文件中。 在主文件中包含#fidef
的头文件如果不同标头的数量不超过满手数,这将有效。
另一个解决方案: 像上面这样的分隔头文件,而不是通过ifdef选择包含 将这些定义放入单独的文件夹并制作一个单独的make文件,将该文件夹添加到包含路径中。 - >保持代码干净,但你现在有#customer makefile