当前位置: 技术问答>linux和unix
变参宏编译告警问题
来源: 互联网 发布时间:2016-07-21
本文导语: 本帖最后由 boborookie 于 2009-12-10 19:29:23 编辑 line 1: #include line 2: #define PR_TERRY(fmt, ...) printf(fmt,##__VA_ARGS__) line 3: #define PR_TERRY1(...) printf(__VA_ARGS__) line 4: #define PR_2(fmt, param...) line 5: ...
line 1: #include用gcc编译后,出现以下warning
line 2: #define PR_TERRY(fmt, ...) printf(fmt,##__VA_ARGS__)
line 3: #define PR_TERRY1(...) printf(__VA_ARGS__)
line 4: #define PR_2(fmt, param...)
line 5: printf(fmt,##param);
line 6: PR_TERRY("@@000000=============rn");
line 7: PR_TERRY("@@000000=============%drn", 0);
line 8: PR_TERRY1("@@111111=============rn");
line 9: PR_TERRY1("@@111111=============%drn", 1);
line10: PR_2("@@22222=============rn");
line11: PR_2("@@22222=============%drn", 2);
line 4: warning: ISO C does not permit named variadic macros
line 6: warning: ISO C99 requires rest arguments to be used
line10: warning: ISO C99 requires rest arguments to be used
请帮忙看下怎么解这些warning
谢谢
|
我编译了,没有任何warning。
不过我建议楼主把第5行最后的那个分号去掉。
我用的是gcc 4.3.2
用gcc -E的结果:
printf("@@000000=============rn");
printf("@@000000=============%drn", 0);
printf("@@111111=============rn");
printf("@@111111=============%drn", 1);
printf("@@22222=============rn");;
printf("@@22222=============%drn", 2);;
不过我建议楼主把第5行最后的那个分号去掉。
我用的是gcc 4.3.2
用gcc -E的结果:
printf("@@000000=============rn");
printf("@@000000=============%drn", 0);
printf("@@111111=============rn");
printf("@@111111=============%drn", 1);
printf("@@22222=============rn");;
printf("@@22222=============%drn", 2);;
|
mark