【发布时间】:2010-02-01 15:29:01
【问题描述】:
我有核心功能,可以从产品的自定义模块中调用。
function_core 是核心函数,它将返回整数
我们在头文件中有一个宏:
#define func_cust function_core
我在打电话
func_cust 在我的自定义代码中。
但在核心内部,我们再次调用了其他一些核心函数:
#define function_core main_core
所以我不能在我的自定义代码中放入所有参数。
我在许多 C 文件中调用了这个 func_cust 函数调用。
我需要检查函数function_core的返回值,比如
如果function_core 返回 x 那么我想将返回值更改为 0 否则将返回相同的返回值。
例如我想定义一个这样的宏:
#define funct_cust ((function_core==x)?0:function_core)
这可能吗?
更具体地说,这就是我需要的!
#include<stdio.h>
#define sum_2 ((sum_1==11)?0:sum_1)
#define sum_1(a,b) sum(a,b)
int sum( int ,int);
int main()
{
int a,b,c;
a=5;
b=6;
c=sum_2(a,b);
printf("%d\n",c);
}
int sum(int x,int y)
{
return x+y;
}
这给出了一个错误:
“test_fun.c”,第 12.3 行:1506-045 (S) 未声明的标识符 sum_1。
我只能玩这个宏 sum_2。
【问题讨论】:
-
也许你应该显示你的
function_core和main_core等的代码
标签: c unix macros c-preprocessor header-files