← eetop.cn_Perl语言入门(第四版小骆驼书)

推荐答案 测试一下

6.2空参数列表

问答题 中等 经典问答问答题

参考答案

初次遇到这个问题时 ,可能认为其过于深奥 。毕竟,谁会调用 &max而不给其参数呢 ?但是,某人可能如下书写 : $maximum = &max(@numbers); 而@numbers 可能为空 ,例如可能从空文件读入 。因此,你需要知道 ,&max此时会怎样处理呢 ? 子程序第一行将 @_的第一个元素赋给 $max_so_far 。这不会有什么坏影响 ;数组为空 ,shift操作返回 undef给$max_so_f ar。 现在进入 foreach循环体,由于为空 ,循环体一次都不执行 。 现在,Perl返回 $max_so_far 的值 undef。在某种意义下 ,这是正确的答案 ,因为空表中没有最大的元素 。 当然,当调用此子程序时注意返回值可能为 undef,或者保证调用的参数非空 。

涉及知识点

  • 可变参数函数va_start要求至少一个命名参数
  • C空参数列表的语法错误
  • C++可变参数模板空包处理
  • max函数空参数的无意义性
  • stdarg.h实现原理
← 上一题
登录后反馈错题
下一题 →