【发布时间】:2021-08-08 10:37:01
【问题描述】:
input.c 和 output.h 两个文件,位于不同的位置,在激活宏“HEXA”时会打印出 output.c 中的数据。
考虑宏“HEXA”被禁用,当我在 input.c 中调用“active_fun”函数时,我想打印 output.h 文件中的数据。所以我使用了一个全局变量,它的值在调用函数“active_fun”时更新,并且在 .h 文件中使用全局变量来打印数据,如下所示
input.c -->
int var=0;
int active_fun (void)
{
var =1;
}
输出.h --->
#ifdef HEXA|| (var ==1)
printf("var value is one");
#endif
(我也使用过#ifdef HEXA || defined(var ==1) 即使这个逻辑也没有用)
我想在激活宏“HEXA”和通过 active_fun(禁用宏“HEXA”时)打印 .h 文件中的数据。
有没有其他方法可以打印 .h 文件中的数据。
【问题讨论】:
-
您可以使用
if ( HEXA || (var ==1) { printf("var value is one"); }[但在这种情况下您需要将 HEXA #定义为零] -
“打印
.h文件中的数据”这句话看不懂。通常头文件应该只包含声明、宏定义等,并且不应该包含实际执行类似printf的代码。
标签: c embedded logic automotive