[typedef in c:struct or function reference?

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

[分析其他​​人编写的软件的一部分,发现下面的代码行:

typedef const struct rpc_method *(*super_t)(RPC*);

好吧,我知道,

typedef rpc_method *(*super_t)(RPC*);

声明类型super_t,它是一个函数指针...我也知道typedef struct的意思,但是两者的结合?它是具有单个条目的结构吗???在这种情况下,const是什么意思?可能是conststruct交换了吗???尽管如此,似乎与我的gcc eabi一起编译。

c struct const typedef
1个回答
0
投票

如果声明不带 typedef会将变量IDENTIFIER声明为TYPE类型的对象,则声明with typedef声明IDENTIFIER作为类型TYPE的类型别名](即与没有typedef的同一声明中的变量具有的类型相同。)>

鉴于此

struct rpc_method const*(*super_t)(RPC*);

[将super_t声明为指向函数的指针,该函数采用指向RCP的指针并返回指向struct rpc_method const的指针,

typedef struct rpc_method const*(*super_t)(RPC*);

super_t声明为上述指针的类型的类型别名(指向使用RCP的指针并返回struct rpc_method const的指针的函数)。

更多详细信息:

https://stackoverflow.com/a/57793519/1084774

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