解读c的声明
1 首先着眼于标识符(变量名或者函数名)
2 从距离标识符最近的地方开始,依照优先顺序解释派生类型(指针,数组和函数)
优先顺序如下:
(1)用于整理声明内容的括弧
(2)用于表示数组的[],用于表示函数的()
(3)用于表示指针的*
例如
int (*func_p)(double) :func_p是指向返回int类型的函数的指针
double(*hoge)[3] :hoge是指向返回double类型的数组(元素个数为3)的指针
double* hoge[3] :hoge是返回double类型的指针的数组(元素个数为3)
int fun(int a) :fun是指向返回int类型的函数(参数为int a)
int (*func_a)(int a) :func_a是指向返回为int类型的函数(参数为int a)的指针
int (*func_table[10])(int a):指向返回为int类型的参数(参数为int a)的指针数组(元素个数10 )