【问题标题】:C - casting function call return values to void [duplicate]C - 将函数调用返回值转换为 void [重复]
【发布时间】:2018-05-14 14:27:21
【问题描述】:

在我们的源代码中有这样的函数调用,其中返回值被强制转换为void

(void) pthread_mutex_lock(&mutex);

这样做的目的是什么?

【问题讨论】:

标签: c


【解决方案1】:

这不是功能或任何东西。这只是记录或向未来的编码人员或维护人员显示返回值被忽略并且编码人员意识到这一点的一种简单方法。除了这个没有别的。

某些函数(为 gcc 应用 warn_unused_result 属性)在隐式忽略返回值时强制执行警告 - 可以使用 void 强制转换来抑制此警告。 (在某些编译器版本上,单独使用 (void)cast 是不行的 - 但那是另一回事)

【讨论】:

  • 这也可能抑制警告。某些函数标有编译器特定的属性,以在隐式忽略返回值时强制发出警告。
  • @Ivan.: 是的,没错。
【解决方案2】:

基本上你不必这样做。

大多数情况下,这样做是因为您知道返回了一个值并将其显示给从事该项目的其他开发人员。

【讨论】:

    猜你喜欢
    • 2016-11-20
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多