我知道odd
表示一个函数指针,它不带参数并返回一个整数指针,但以下语法在C中的含义是什么:
int *(*func)()
关于如何在C中阅读此类语法的任何解释都非常有用。
答案 0 :(得分:3)
func
是一个函数,返回一个指向int的指针数组的指针。
答案 1 :(得分:1)
这是一个返回数组指针的函数。写得更明确,这里是各个部分的含义:
item_type (*function_name(parameters))[array bounds];
其中item_type
是指向数组的数组项的类型。
数组指针是指向未知大小which is actually allowed by C的数组的指针,但不过分有用。
总的来说,这个功能看起来并不是很有用,如果你需要这样一个奇怪的结构,你就不应该把它写成像这样的乱码。这是带有typedef的等效形式:
typedef int* array_t[];
array_t* func();