为什么以下函数类型的 typedef 声明不能编译?
typedef void( int ) void_from_int_t;
为什么以下函数类型的 typedef 声明不能编译?
typedef void( int ) void_from_int_t;
它应该是typedef void(void_from_int_t)(int);
等。声明遵循使用、螺旋规则或任何你最喜欢的助记符。
通常,要创建类型定义,只需添加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;