【问题标题】:Meaning in 'OF' in zlib function declarations [duplicate]zlib函数声明中'OF'的含义[重复]
【发布时间】:2017-04-28 08:02:04
【问题描述】:

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

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

例如。

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

有人能解释一下这是什么吗? 并且还建议在 c 中使用 zlib 库的链接

【问题讨论】:

    标签: c zlib compression


    【解决方案1】:

    阅读源代码一分钟即可发现,来自zconf.h

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

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

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

    【讨论】:

    • 谢谢。我应该通过 zconf.h
    猜你喜欢
    • 1970-01-01
    • 2022-11-25
    • 2016-12-09
    • 1970-01-01
    • 2018-02-04
    • 2012-06-17
    • 2011-07-27
    • 2013-01-05
    相关资源
    最近更新 更多