gpt4 book ai didi

c - 是否可以使用一些项目设置或 makefile 选项将一些宏定义到头文件中?

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:43 24 4
gpt4 key购买 nike

是否可以根据项目设置中的一些选项在我的头文件中添加一个#define _MYDEFINE_。例如:假设在我公开的头文件(与库一起提供)中,我有一些如下所示的宏:

#ifdef _MYDEFINE_
#define ABC 2
#else
#define ABC 4
#endif

现在,在构建我的库时,我可以在我的设置中添加 _MYDEFINE_,但我不希望库的用户在他的项目设置中添加 _MYDEFINE_或代码。相反,我希望“#define _MYDEFINE_”自动添加到 header 的开头。

注意 #define _MYDEFINE_ 只有在我的预处理器设置中定义时才应该被添加。对于其他设置,不应添加它。

如果无法通过项目设置实现,是否有任何创新的方法来完成它?欢迎任何想法。

最佳答案

大多数 C 编译器接受选项 -D 来定义符号:

gcc -D_MYDEFINE_ file.c

在那种形式下,它被隐式设置为 1。否则可以显式设置一个值:

gcc -D_MYDEFINE_=4 file.c

多个 -D 是允许的,即使在很难实现的操作系统(例如 VMS)上也是如此。

gcc -DSYMBOL1 -DSYMBOL2 -DSYMBOL3 file.c

这些行为就好像相应的 #define 语句出现在每个命令行文件的第一行之前。

#define SYMBOL1 1  (these are virtually present due to command line -D options)
#define SYMBOL2 1
#define SYMBOL3 1

(actual source code begins)
/*
* file.c:
*/
#include <ctype.h>
#include <stdlib.h>
...

关于c - 是否可以使用一些项目设置或 makefile 选项将一些宏定义到头文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2254044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com