gpt4 book ai didi

c - 函数指针的 uintptr_t/intptr_t 等价物?

转载 作者:太空狗 更新时间:2023-10-29 17:21:15 25 4
gpt4 key购买 nike

阿法克 uintptr_t intptr_t 可用于保存指向 void 的任何指针。因此,这些类型可用于存储指向数据的指针。

在 C99 或更高版本中,是否有类似的有符号和无符号整数类型能够保存指向函数的指针?

最佳答案

不,没有这样的类型。

函数指针只能可靠地转换为其他函数指针类型(然后,只有在指向正确的函数类型时才取消引用)。

C 中函数指针到整数的转换包含在 6.3.2.3/6 中:

Any pointer type may be converted to an integer type. Except as previously specified, the result is implementation-defined. If the result cannot be represented in the integer type, the behavior is undefined. The result need not be in the range of values of any integer type.

请注意,即使整数类型足够大,转换为整数并返回函数指针也不能保证检索到原始函数指针。

在 C++ 中,文本位于 [expr.reinterpret.cast] 点 4 和 6。行为类似,但它明确保证如果存在足够大的整数,则将函数指针转换为整数并再次返回检索原始函数指针。

关于c - 函数指针的 uintptr_t/intptr_t 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403711/

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