在 C 中,我可以像这样表达指向
const
函数的指针:
typedef void fun_t(void);
const fun_t *fp;
(我不知道
fp
的类型是否有任何实际用途,但它是一个真实且不同的类型;例如,声明void (*f)(const fun_t *fp);
是有效的,并且用(void (*)(fun_t *fp))NULL
初始化该变量是无效的C)
在 C23 或 GCC 中,我发现无需 typedef 即可表达此类型,使用
typeof
:
const typeof(void (void)) *fp_c23;
有没有一种方法可以更直接地表达类型,既不使用
typedef
也不使用typeof
?
void (*const fp)(void);
已经使用了几十年。