指向函数指针数组的指针

jli*_*u83 4 c pointers function

int (*rdPtrList[4])(unsigned int addr, unsigned int data);
Run Code Online (Sandbox Code Playgroud)

上面声明了一个返回int的函数指针大小为4的数组,并带有两个unsigned int.我想做一个指向这个数组的指针.这可能在C?

Joh*_*ode 16

省略参数以使以下内容更易于阅读:

        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. 


Meh*_*dad 7

啊,棘手棘手!

觉得这很有效

int (*(*rdPtrList)[4])(unsigned int addr, unsigned int data);
Run Code Online (Sandbox Code Playgroud)

因为编译器告诉我_countof(*rdPtrList)是4.


(我希望你可以int function(unsigned int addr, unsigned int data)[4]*像D 一样说,它可读性更高:它将是一个"函数数组指针".)


lda*_*nko 5

尝试这个:

typedef int(*rdPtrList_t[4])(unsigned int addr, unsigned int data);
rdPtrList_t *ptrToArray;
Run Code Online (Sandbox Code Playgroud)