[分析其他人编写的软件的一部分,发现下面的代码行:
typedef const struct rpc_method *(*super_t)(RPC*);
好吧,我知道,
typedef rpc_method *(*super_t)(RPC*);
声明类型super_t
,它是一个函数指针...我也知道typedef struct
的意思,但是两者的结合?它是具有单个条目的结构吗???在这种情况下,const
是什么意思?可能是const
和struct
交换了吗???尽管如此,似乎与我的gcc eabi一起编译。
如果声明不带 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
的指针的函数)。
更多详细信息: