读书人

这是什么诡谲的语法

发布时间: 2013-03-26 09:54:34 作者: rapoo

这是什么诡异的语法
阅读别人代码,

发现用zlib库,

于是跳转到头文件,看到函数声明:

ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));


ZEXTERN---extern
ZEXPORT---导出符号


# define inflatez_inflate //这个估计是一个函数名

OF是什么?

是一个简单的宏?




[解决办法]
也许是一个用来 生成参数列表的宏
信息不足 我只能这样猜测了
[解决办法]
貌似是
#define OF(x) x
[解决办法]
EXTERN 就没有找到。估计是extern吧!


179 #ifndef OF /* function prototypes */
180 # ifdef STDC
181 # define OF(args) args
182 # else
183 # define OF(args) ()
184 # endif
185 #endif

237 #if (defined(_WINDOWS)
[解决办法]
defined(WINDOWS)) && defined(ZLIB_DLL)
238 # include <windows.h>
239 # define EXPORT WINAPI
240 #else
241 # define EXPORT
242 #endif

[解决办法]
刚好看过一点源码。
#ifndef OF /* function prototypes */
# ifdef STDC
# define OF(args) args
# else
# define OF(args) ()
# endif
#endif

我猜可能有些编译器支持的函数原型就是这样....

读书人网 >C语言

热点推荐