一个和宏#if相关的有关问题
一个和宏#if相关的问题。
上面是我写的C代码,我是希望通过这个宏函数SERACH来决定自己编译的代码。
但是用GCC编译时,提示下面的错误:
不知道哪位高手能指点一下,分数不多,还请见谅。
------解决方案--------------------
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E
------解决方案--------------------
你不是用 -o 指定生成的文件叫 test 了么?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MY_CONTENT "123hello123"
#define SEARCH(TARGET, CONTENT) \
({int ret = 0; do { \
if (strstr(CONTENT, TARGET)) \
ret = 1; \
else \
ret = 0; \
} while (0); ret;})
int main()
{
#if (SEARCH("hello", MY_CONTENT))
printf("I found hello\n");
#else
printf("I am so sad\n");
#endif
}
上面是我写的C代码,我是希望通过这个宏函数SERACH来决定自己编译的代码。
但是用GCC编译时,提示下面的错误:
gg.c:18:32: error: token "{" is not valid in preprocessor expressions
不知道哪位高手能指点一下,分数不多,还请见谅。
------解决方案--------------------
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E
------解决方案--------------------
你不是用 -o 指定生成的文件叫 test 了么?