【发布时间】:2022-10-02 05:11:26
【问题描述】:
int (*x(int))[5] 说 x 是一个函数,它接受一个 int 参数,并返回一个指向 5 个元素的整数数组的指针。
我也可以使用typedef 来简化 x:
typedef int Array[5];
typedef Array *Array_ptr;
typedef Array_ptr Array_ptr_fn(int);
我的问题是,如何使用这种类型的 Array_ptr_fn?
// Define some_x to have type Array_ptr_fn,
Array_ptr_fn some_x;
// But then how do I use some_x since function cannot return array.
-
除非你传递函数,否则直接声明你的函数,如
Array_ptr someFunction(int);即使你传递函数,你仍然可以使用这个声明作为函数参数。我认为您根本不需要第三个 typedef;它只是混淆了。 -
some_x不尝试返回数组。它返回一个指针。
标签: c declaration typedef