头文件里面能调用函数吗?

bolin123 2011-11-30 12:54:35
大家好:
我的代码是类似于这样的:
这是一个头文件aaa.h

#include "bbb.h"

#if ((getValue() == 1))
#define MODE (1)
#else
...
#endif


然后getValue()是在bbb.c中定义的一个函数类似于这样:

int getValue(void)
{
int x;
if(条件为真)
x=1;
else
x=0;
return x;
}


然后我编译以后会提示头文件aaa.h中调用函数那句话出错,error: missing binary operator before token "("
请问我应该如何修改呢?
...全文
345 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bolin123 2011-12-04
  • 打赏
  • 举报
回复
多谢大家
qq120848369 2011-12-01
  • 打赏
  • 举报
回复
#if ((getValue() == 1))

编译和运行。。。混了
SURE_bd 2011-12-01
  • 打赏
  • 举报
回复
预处理的时候比较早。。。
lrmliang 2011-12-01
  • 打赏
  • 举报
回复
大家的说得对,#if是预编译指令,所以 #if n 指令中的n必须为一个已经存在的定量,不能是函数或者变量
xunxun 2011-11-30
  • 打赏
  • 举报
回复
预处理还没到编译呢
AnYidan 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xrunning 的回复:]
#if 条件编译中不能使用函数,因为条件编译是在编译前处理的,这是后还没有函数生成
[/Quote]
++
鲤鱼 2011-11-30
  • 打赏
  • 举报
回复
不可以的
绿野耕夫 2011-11-30
  • 打赏
  • 举报
回复
不可以的,
#if #else等等都是预处理指令,是在编译之前需要进行的步骤!预处理完毕后才能编译,编译成功后才能运行。而函数调用发生在运行的时候。
七擒关羽 2011-11-30
  • 打赏
  • 举报
回复
函数需要在被定义后引用,宏在编译的时候被包含,所以无法引用函数
小时了了 2011-11-30
  • 打赏
  • 举报
回复
#if 条件编译中不能使用函数,因为条件编译是在编译前处理的,这是后还没有函数生成

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧