表达指向 const 函数的指针

问题描述 投票:0回答:1

在 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

c gcc c23
1个回答
0
投票

void (*const fp)(void);
已经使用了几十年。

© www.soinside.com 2019 - 2024. All rights reserved.