为什么将signal()的结果强制转换为(void)?

毛里齐奥·卡尔卡索纳

在一般情况下,一些问题可以解决该问题。但是,在这种情况下,我所看到的只是一个函数返回的值。自己看看:

第三行(void) signal (SIGALRM, myAlarm);应该执行系统调用signal如果我理解正确的,它会返回指向函数的指针。

在一般情况下,我可以看到为什么将函数指针强制转换为void但是,除了C的隐式转换外,该行本身对返回的值“在内存中”完全不起作用,因为它只是一个值。

我想念什么吗?(void)实际上在第三行(以及程序的其余部分)是否有任何作用?即使函数指针的类型不同于void的类型,第三行也不会仅对返回值起作用,而不是(假设地)存储一个返回值吗?简而言之,这是必要的还是多余的?

苏拉夫·戈什(Sourav Ghosh)

这是为了禁止编译器警告有关未使用的返回值(来自函数调用)的警告。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将volatile表达式的结果强制转换为void

来自分类Dev

使用reinterpret_cast将函数强制转换为void *,为什么它不是非法的?

来自分类Dev

为什么不可能将`(()-> Void)`强制转换为`(()-> Void)`?

来自分类Dev

为什么Clang将结构参数强制转换为int

来自分类Dev

为什么Clang将结构参数强制转换为int

来自分类Dev

为什么将NULL强制转换为结构指针?

来自分类Dev

将static void *强制转换为NSObject *

来自分类Dev

将void *强制转换为struct *

来自分类Dev

为什么不能将lambda强制转换为void *,然后再强制转换为函数指针?

来自分类Dev

为什么不能将lambda强制转换为void *,然后再强制转换为函数指针?

来自分类Dev

为什么将指向int的指针转换为void *但将指向函数的指针转换为bool?

来自分类Dev

在C语言中,为什么我们需要将char *强制转换为void?

来自分类Dev

为什么必须强制转换为void **(例如在cudaMalloc调用中)?

来自分类Dev

为什么在将其强制转换为void *类型之前需要复制Objective-C处理程序?

来自分类Dev

将参数传递给可变参数函数时,强制转换为void *有什么作用?

来自分类Dev

在C语言中,将指针强制转换为struct ao void *的指针有什么用?

来自分类Dev

为什么将IQueryable强制转换为.toList()以将数据包含到对象DbContext中?

来自分类Dev

强制转换为“ void”到底有什么用?

来自分类Dev

将结构ProcessSerialNumber强制转换为UnsafePointer <Void>

来自分类Dev

将std :: shared_ptr <T>强制转换为void *

来自分类Dev

C / C ++将void *强制转换为int(*())(int,...);

来自分类Dev

将结构ProcessSerialNumber强制转换为UnsafePointer <Void>

来自分类Dev

将UnsafeMutablePointer <Void>强制转换为我的结构类型

来自分类Dev

函数指针将参数强制转换为 void

来自分类Dev

为什么从void指针*强制转换的数组无法迭代for循环?

来自分类Dev

为什么将枚举数组强制转换为两种不同的IEnumerable <T>类型?

来自分类Dev

为什么将数组强制转换为IEnumerable忽略延迟执行?

来自分类Dev

为什么我没有收到将指针强制转换为int的警告?

来自分类Dev

与列表相乘时为什么将float64强制转换为int?

Related 相关文章

  1. 1

    将volatile表达式的结果强制转换为void

  2. 2

    使用reinterpret_cast将函数强制转换为void *,为什么它不是非法的?

  3. 3

    为什么不可能将`(()-> Void)`强制转换为`(()-> Void)`?

  4. 4

    为什么Clang将结构参数强制转换为int

  5. 5

    为什么Clang将结构参数强制转换为int

  6. 6

    为什么将NULL强制转换为结构指针?

  7. 7

    将static void *强制转换为NSObject *

  8. 8

    将void *强制转换为struct *

  9. 9

    为什么不能将lambda强制转换为void *,然后再强制转换为函数指针?

  10. 10

    为什么不能将lambda强制转换为void *,然后再强制转换为函数指针?

  11. 11

    为什么将指向int的指针转换为void *但将指向函数的指针转换为bool?

  12. 12

    在C语言中,为什么我们需要将char *强制转换为void?

  13. 13

    为什么必须强制转换为void **(例如在cudaMalloc调用中)?

  14. 14

    为什么在将其强制转换为void *类型之前需要复制Objective-C处理程序?

  15. 15

    将参数传递给可变参数函数时,强制转换为void *有什么作用?

  16. 16

    在C语言中,将指针强制转换为struct ao void *的指针有什么用?

  17. 17

    为什么将IQueryable强制转换为.toList()以将数据包含到对象DbContext中?

  18. 18

    强制转换为“ void”到底有什么用?

  19. 19

    将结构ProcessSerialNumber强制转换为UnsafePointer <Void>

  20. 20

    将std :: shared_ptr <T>强制转换为void *

  21. 21

    C / C ++将void *强制转换为int(*())(int,...);

  22. 22

    将结构ProcessSerialNumber强制转换为UnsafePointer <Void>

  23. 23

    将UnsafeMutablePointer <Void>强制转换为我的结构类型

  24. 24

    函数指针将参数强制转换为 void

  25. 25

    为什么从void指针*强制转换的数组无法迭代for循环?

  26. 26

    为什么将枚举数组强制转换为两种不同的IEnumerable <T>类型?

  27. 27

    为什么将数组强制转换为IEnumerable忽略延迟执行?

  28. 28

    为什么我没有收到将指针强制转换为int的警告?

  29. 29

    与列表相乘时为什么将float64强制转换为int?

热门标签

归档