首页 > 解决方案 > 从 c 文件写入 h 文件,然后在 C 中写入另一个 h 文件

问题描述

我有一个头文件,我可以在其中使用以下#define DEF_LOGGING_PRINT 激活日志记录,如果我评论 //#define DEF_LOGGING_PRINT 则日志记录将被停用。我在头文件中添加了以下内容:

#define activated 1

#define deactivated 2
 
#define act_or_dea_log_(x)

#if x == activated

#define DEF_LOGGING_PRINT

#elif x == deactivated

#define DEF_LOGGING_PRINT
#endif

是否可以从另一个头文件写入这个 x,像这样:

#define act_or_dea_log(x) act_or_dea_log_(x)

然后最后从一个 c 文件中执行“act_or_dea_log("activated");” 选择激活日志记录,即替代#if x == 已激活?

尝试了很多选择,但似乎没有任何效果。

标签: cheader-files

解决方案


好吧,如果我正确解释了您编写的内容,则不,因为它们是预处理器的意思,所有代码运行之前都已完成,这意味着编译时我建议您使用程序的起始参数 Gengetopt 是一种轻松实现的好方法

https://www.gnu.org/software/gengetopt/gengetopt.html


推荐阅读