gpt4 book ai didi

c++ - 在对函数指针进行 typedef 时 * 是强制性的吗?

转载 作者:太空狗 更新时间:2023-10-29 20:09:49 27 4
gpt4 key购买 nike

当我写了一段“意外”的代码并成功编译它并获得了所需的行为时,我遇到了这个问题。后来我注意到更改的奇怪之处,并意识到我使用了完全相反的顺序来执行函数指针的 typedef。现在我很困惑“意外”错误在语法上是否真的正确。

通常约定:

typedef void* (*_malloc_fail_handler_ptr)(int) __attribute__ ((unused));
_malloc_fail_handler_ptr _malloc_fail_handler = NULL;

我的“意外”代码:

typedef void* (_malloc_fail_handler_ptr)(int) __attribute__ ((unused));
_malloc_fail_handler_ptr* _malloc_fail_handler = NULL;

最佳答案

这是正确的语法。对于第二种情况,_malloc_fail_handler_ptr 的类型是函数,而不是函数指针。那么_malloc_fail_handler_ptr*的类型就是指向函数的指针。所以对于第一种和第二种情况,变量_malloc_fail_handler的类型是一样的。

关于c++ - 在对函数指针进行 typedef 时 * 是强制性的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42301979/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com