zlib函数声明中'OF'的含义

时间:2017-04-28 08:02:05

标签: c zlib compression

我想对C中的数据实施deflate解压缩。我有一个指向数据和压缩数据长度的指针。

在浏览zlib文档时,我看到所有函数声明在函数名和参数列表之间都有'OF'。

例如

ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
...

有人可以解释一下这是什么吗? 并建议在c

中使用zlib库的链接

1 个答案:

答案 0 :(得分:4)

阅读消息来源一分钟就会发现这一点,来自zconf.h

#ifndef OF /* function prototypes */
#  ifdef STDC
#    define OF(args)  args
#  else
#    define OF(args)  ()
#  endif
#endif

基本上如果定义了符号STDC,函数参数列表将包含在声明中,否则它们将被删除并替换为旧C编译器的空括号。

所以链接的副本是完全正确的,但我选择发布这个,因为这是在那里提出的理论的“证据”。