在初始化数组时使用#define
#include <stdio.h>
#define TEST 1;
int main(int argc, const char *argv[])
{
int array[] = { TEST };
printf("%d\n", array[0]);
return 0;
}
编译器抱怨:
test.c: In function ‘main’:
test.c:7: error: expected ‘}’ before ‘;’ token
make: *** [test] Error 1
使用 #define 作为函数输入参数
#include <stdio.h>
#define TEST 1;
void print_arg(int arg)
{
printf("%d", arg);
}
int main(int argc, const char *argv[])
{
print_arg(TEST);
return 0;
}
编译器抱怨:
test.c: In function ‘main’:
test.c:12: error: expected ‘)’ before ‘;’ token
make: *** [test] Error 1
如何解决这两个问题?我以为C只是对源文件进行搜索和替换,替换TEST
为1
,不是吗?