【发布时间】:2013-12-06 08:35:32
【问题描述】:
我不能在#define 指令中使用if/else, if/else if/else 吗?下面的代码给出了错误:
#include <stdio.h>
#define makro(a) if(a%2 == 0) 1 else 0;
int main(void) {
// your code goes here
int a = makro(5);
printf("%d\n", a);
return 0;
}
prog.c: In function ‘main’:
prog.c:3:18: error: expected expression before ‘if’
#define makro(a) if(a%2 == 0) 1 else 0;
^
prog.c:7:10: note: in expansion of macro ‘makro’
int a = makro(5);
^
【问题讨论】:
-
这与宏无关。
if不是 C 中的表达式。阅读初学者 C 书籍/教程。