gpt4 book ai didi

c - 是否有推荐的整数类型来存储标准 C 中的函数指针

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

C99 标准有 uintptr_t,这是一种推荐的整数类型,用于将数据指针(指向对象的指针)转换为,但我没有找到等效的整数类型来存储函数指针。我忽略了吗?

一个特定的编译器可以定义这样一个类型,即使它不在标准中,但是编译器更有可能声明一个函数指针可以存储在(比如)a uint64_t 中而不是定义一个新类型。

另一个不同之处在于,以不对函数指针执行的方式对数据指针执行整数运算是有意义的。一个常见的习惯用法是 (int*)(((uintptr_t)p + 15) & ~(uintptr_t)15) 但没有理由将此习惯用法应用于函数指针。

最佳答案

没有这样推荐的指针类型。

存储指针,您可以使用任何其他函数指针类型,只要您不通过它调用您的函数。

如果您将指针转换回原始类型,您可以调用您的函数。这始终保证有效。

关于c - 是否有推荐的整数类型来存储标准 C 中的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18418202/

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