为什么函数类型的以下typedef声明没有编译?
typedef void( int ) void_from_int_t;
答案 0 :(得分:2)
它应该是typedef void(void_from_int_t)(int);
等。声明跟随使用,spiral rule,或者你最喜欢的助记符。
答案 1 :(得分:0)
通常,要创建类型定义,只需将typedef
添加到变量定义:
// array of ten integers, instance and type
int a[10];
typedef int a_t[10];
// function, declaration and type
void function(int);
typedef void function_t(int);
请注意,这是一个函数类型,而不是函数指针类型,可以通过添加星形来获得:
function_t* pf = &function;