指向函数指针数组的指针
问题描述:
int (*rdPtrList[4])(unsigned int addr, unsigned int data);
上面声明了返回int并带两个unsigned int的函数的指针大小为4的数组。我想创建一个指向这个数组的指针。这可能在C吗?指向函数指针数组的指针
答
啊,棘手的棘手!
我认为这个工程
int (*(*rdPtrList)[4])(unsigned int addr, unsigned int data);
因为编译器告诉我_countof(*rdPtrList)
是4
(我希望你能只说int function(unsigned int addr, unsigned int data)[4]*
就像你可以在d,它是这么多更具可读性:它将是一个“函数数组指针”。)
答
离开了参数牢记以下更易于阅读:
p -- p *p -- is a pointer (*p)[4] -- to a 4-element array *(*p)[4] -- of pointers (*(*p)[4])() -- to functions int (*(*p)[4])(); -- returning int.
这编译,我将不得不回到你是否它的工作! – jliu83 2011-04-06 22:10:42
@ jliu83:哈哈好吧! (它可能是。:P) – Mehrdad 2011-04-06 22:11:24
验证您正确声明指针的正确方法是将数组地址指定给它,即'ptr_to_fixed_length_function_array =&array_of_functions;'。如果类型不正确,你的编译器应该抱怨这个任务。 – 2015-07-07 23:46:06