代码使用的是什么C语法?
…其他来源 上面的C源代码来自unzip.C 我想知道函数原型行的语法是什么?代码使用的是什么C语法?,c,function,syntax,prototype,C,Function,Syntax,Prototype,…其他来源 上面的C源代码来自unzip.C 我想知道函数原型行的语法是什么? 特别是“来源”的关键工作在哪里?它是干什么用的?搜索该行的标题: local uLong unzlocal_SearchCentralDir OF(( const zlib_filefunc_def* pzlib_filefunc_def, voidpf filestream)); local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,fi
特别是“来源”的关键工作在哪里?它是干什么用的?搜索该行的标题:
local uLong unzlocal_SearchCentralDir OF((
const zlib_filefunc_def* pzlib_filefunc_def,
voidpf filestream));
local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
const zlib_filefunc_def* pzlib_filefunc_def;
voidpf filestream;
{
这里,x和。。。可能是别的。OF不是关键字,而是宏。来自zconf.h:
这是用来允许相同的代码在1989年或1989年以前的ANSI C编译器上编译。我们不再关心那么旧的编译器,但是zlib自1995年以来已经存在很长时间了,他们还没有放弃对旧编译器的支持。在LibPNG中可以找到类似的定义
1995年,DOS在桌面上仍然很常见。现在用这种方式编程是没有用的。搜索行的标题:
local uLong unzlocal_SearchCentralDir OF((
const zlib_filefunc_def* pzlib_filefunc_def,
voidpf filestream));
local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
const zlib_filefunc_def* pzlib_filefunc_def;
voidpf filestream;
{
这里,x和。。。可能是别的。OF不是关键字,而是宏。来自zconf.h:
这是用来允许相同的代码在1989年或1989年以前的ANSI C编译器上编译。我们不再关心那么旧的编译器,但是zlib自1995年以来已经存在很长时间了,他们还没有放弃对旧编译器的支持。在LibPNG中可以找到类似的定义
1995年,DOS在桌面上仍然很常见。现在用这种方式编程是没有用的。它已被宏化,可以成功地在多个编译器上工作 在大多数平台上,本地无疑是定义本地静态的 OF在大多数现代编译器上保持参数不变,但使用旧的仅K&R样式的参数,它会将Const zlib_filefunc_def*pzlib_filefunc_def、voidpf filestream的unzlocal_SearchCentralDir重构为
它已成功地在多个编译器上工作 在大多数平台上,本地无疑是定义本地静态的 OF在大多数现代编译器上保持参数不变,但使用旧的仅K&R样式的参数,它会将Const zlib_filefunc_def*pzlib_filefunc_def、voidpf filestream的unzlocal_SearchCentralDir重构为
该代码中两个有趣的词是local和of 在gzguts.h中,单词local默认定义为static。评论解释了原因:
unzlocal_SearchCentralDir (pzlib_filefunc_def, filestream)
const zlib_filefunc_def* pzlib_filefunc_def;
voidpf filestream;
{ // begin function body...
所以我们推断,在过去的某个时候,有人不得不使用调试器,而调试器不能很好地处理静态函数。您可以使用所有全局函数编译zlib来解决该问题
zconf.h中定义了“的”一词:
此定义允许使用不支持函数原型的前ANSI标准编译器编译zlib。在ANSI C之前的版本中,函数声明必须如下所示:
#ifndef OF /* function prototypes */
# ifdef STDC
# define OF(args) args
# else
# define OF(args) ()
# endif
#endif
不管函数采用什么参数。此宏允许函数与其原型参数列表一起声明,但如果编译器不支持ANSI C,则参数列表将被省略。该代码中两个有趣的内容是local和of 在gzguts.h中,单词local默认定义为static。评论解释了原因:
unzlocal_SearchCentralDir (pzlib_filefunc_def, filestream)
const zlib_filefunc_def* pzlib_filefunc_def;
voidpf filestream;
{ // begin function body...
所以我们推断,在过去的某个时候,有人不得不使用调试器,而调试器不能很好地处理静态函数。您可以使用所有全局函数编译zlib来解决该问题
zconf.h中定义了“的”一词:
此定义允许使用不支持函数原型的前ANSI标准编译器编译zlib。在ANSI C之前的版本中,函数声明必须如下所示:
#ifndef OF /* function prototypes */
# ifdef STDC
# define OF(args) args
# else
# define OF(args) ()
# endif
#endif
不管函数采用什么参数。此宏允许函数与其原型参数列表一起声明,但如果编译器不支持ANSI C,则参数列表将被省略。OF可能是一个在非常旧的编译器上删除原型的宏。OF可能是一个在非常旧的编译器上删除原型的宏。
uLong unzlocal_SearchCentralDir();