Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
代码使用的是什么C语法?_C_Function_Syntax_Prototype - Fatal编程技术网

代码使用的是什么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

…其他来源

上面的C源代码来自unzip.C

我想知道函数原型行的语法是什么?
特别是“来源”的关键工作在哪里?它是干什么用的?

搜索该行的标题:

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();