【问题标题】:C variant with last value implicit return [closed]具有最后一个值隐式返回的 C 变体
【发布时间】:2016-01-07 10:58:45
【问题描述】:

在 LISP、Ruby、Tcl 和其他几种动态语言中,过程/方法/函数默认返回最后一个值。即,无需在最后评估的语句中显式使用 return 命令。
是否有具有相同功能的 C 变体?

【问题讨论】:

  • @Samidamaru 这个问题不适合程序员 - 它会很快被否决并在那里关闭,请参阅meta.programmers.stackexchange.com/questions/6483/… 推荐阅读:What goes on Programmers.SE? A guide for Stack Overflow
  • 从技术上讲,如果您有一个具有返回类型的函数,但缺少 return 语句,那么可能您将有可能返回您最后接触的值在你的函数体中:“从函数的末尾流出相当于没有表达式的返回。在任何一种情况下,返回值都是未定义的。”但是,这是 UB,所以你也可以不小心杀死了所有小马并将您的银行详细信息发送给您的邻居......任何事情都可能发生

标签: c return return-value


【解决方案1】:

没有 C“变体”;有C,还有其他语言。而 C 并不如你所愿。

对于它的价值,我认为这种编程风格一点也不清晰。
我建议您重新评估您是否真的想要使用它。

【讨论】:

  • 这是一个样式选项,而不是主要的东西。我个人更喜欢使用 return,因为它使代码更具可读性。在 LISP 中,这是一个问题......我在 Tcl 和 Ruby 中使用 return,在编程时,即使功能保持不变而没有使用它。它使代码更具可读性。这是为了测试快速代码样式检查器的适用性。
【解决方案2】:

如果你想返回最后一个表达式的值,那么:

  1. 你必须使用return声明或

  2. 使用pointer 变量使调用函数中的最后一个值可用或

  3. 将该值保存在外部文件中,然后在调用函数中从该文件中读取该值。

没有其他方法可以访问 C 中被调用函数中的“最后一个值”。

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 2012-07-21
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    相关资源
    最近更新 更多