引用宏出现的问题

diaoli2012 2014-02-12 09:35:44
#ifndef ZEXTERN
#define ZEXTERN(x) static x
#endif

#ifndef ZEXPORT
#define ZEXPORT(x) static x
#endif

#ifndef OF
#define OF(args) args
#endif

#define zlib_version zlibVersion()

在编译时,遇到ZEXTERN const char * ZEXPORT zlibVersion OF((void));这句报错:
1>c:\users\12120813\desktop\sfxcp\sfx\zlib123\zlib.h(212): error C2054: 在“ZEXTERN”之后应输入“(”
1>c:\users\12120813\desktop\sfxcp\sfx\zlib123\zlib.h(212): error C2085: “ZEXPORT”: 不在形参表中
1>c:\users\12120813\desktop\sfxcp\sfx\zlib123\zlib.h(212): error C2146: 语法错误: 缺少“,”(在标识符“zlibVersion”的前面)
1>c:\users\12120813\desktop\sfxcp\sfx\zlib123\zlib.h(212): error C2143: 语法错误 : 缺少“;”(在“(”的前面)
1>c:\users\12120813\desktop\sfxcp\sfx\zlib123\zlib.h(212): error C2059: 语法错误:“)”。

这些错误怎么解决啊,应该是宏引用出现的异常,请各位高手支招,拜谢!
...全文
160 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
勉励前行 2014-02-12
  • 打赏
  • 举报
回复
没见过宏这样的用法。 如果是确认可行,或许是绑定在某个C编译器中的用法。 看宏展开错误是很头痛的,所以,宏定义是越简单越好。
diaoli2012 2014-02-12
  • 打赏
  • 举报
回复
中国源码网上可以搜一下zlib.h在这个文件里第212行:ZEXTERN const char * ZEXPORT zlibVersion OF((void));这种用法我也没有见过,看起来很费神。

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧