宏定义宏函数 if else语句报错:error: ‘else’ without a previous ‘if’(看似解决实际上没解决)
Posted Dontla
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宏定义宏函数 if else语句报错:error: ‘else’ without a previous ‘if’(看似解决实际上没解决)相关的知识,希望对你有一定的参考价值。
代码
#include <stdio.h>
#include <stdlib.h>
#define ALOGE(...) printf(__VA_ARGS__); printf("\\n");
#define fprintf(x, ...) if(x==stderr) ALOGE(__VA_ARGS__);else fprintf(x, __VA_ARGS__);
static void usage_tip(FILE *fp, int argc, char **argv)
fprintf(fp, "Usage: %s [options]\\n"
"Version %s\\n"
"Options:\\n"
"-d | --debug Debug option\\n"
"-n | --no-mediaserver without mediaserver\\n"
"-h | --help For help \\n"
"\\n",
argv[0], "V1.0");
int main(int argc, char **argv)
usage_tip(stderr, argc, argv);
return(0);
ubuntu编译时报错
解决办法
真见鬼,代码应该是没问题的,因为我是从RXWbrcm_patchram_plus1.c
抄过来的
然后我在if语句的后一句代码套上(或者去掉ALOGE(__VA_ARGS__);
后的分号)就好了
#include <stdio.h>
#include <stdlib.h>
#define ALOGE(...) printf(__VA_ARGS__); printf("\\n");
#define fprintf(x, ...) if(x==stderr) ALOGE(__VA_ARGS__); else fprintf(x, __VA_ARGS__);
static void usage_tip(FILE *fp, int argc, char **argv)
fprintf(fp, "Usage: %s [options]\\n"
"Version %s\\n"
"Options:\\n"
"-d | --debug Debug option\\n"
"-n | --no-mediaserver without mediaserver\\n"
"-h | --help For help \\n"
"\\n",
argv[0], "V1.0");
int main(int argc, char **argv)
usage_tip(stderr, argc, argv);
return(0);
编译运行:
以上是关于宏定义宏函数 if else语句报错:error: ‘else’ without a previous ‘if’(看似解决实际上没解决)的主要内容,如果未能解决你的问题,请参考以下文章