【发布时间】:2020-11-18 14:12:47
【问题描述】:
我应该使用什么标准定义的整数类型来保存指向函数的指针?是否有类似(void*) 的函数类型可以容纳任何函数?
很确定它不是[u]intptr_t,因为标准明确表示它是用于指向对象的指针,并且标准明确区分了指向对象的指针和指向函数的指针。
【问题讨论】:
-
我相信可以保证在任何类型的函数指针之间进行转换是安全的,因此您可以使用
void (*)()作为void *的替代品。我不知道整数类型。 -
@NateEldredge 它不完全符合标准。该类型是没有原型的函数类型,在“未来语言方向”中,标准说:“使用没有原型的函数声明符是一个过时的特性”
-
"Obsolecent" 现在仍然很流行,对吧?如果您愿意,请使用
void (*)(void)。
标签: c pointers integer language-lawyer