int (*rdPtrList[4])(unsigned int addr, unsigned int data);
上面聲明瞭返回int並帶兩個unsigned int的函數的指針大小爲4的數組。我想創建一個指向這個數組的指針。這可能在C嗎?指向函數指針數組的指針
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