求教一个和宏#if相关的问题
程序代码:
#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编译时,提示下面的错误:
C/C++ code?
1
gg.c:18:32: error: token "{" is not valid in preprocessor expressions
不知道哪位高手能指点一下,分数不多,还请见谅。