arr //arr
arr [] //is an array (so index it)
* arr [] //of pointers (so dereference them)
(* arr [])() //to functions taking nothing (so call them with())
void (* arr [])() //returning void
तो आपका जवाब
void (* arr [])() = {};
है लेकिन स्वाभाविक रूप से, इस, बस typedefs
:)
अतिरिक्त का उपयोग एक बुरी बात है: आश्चर्य है कि कैसे की एक सरणी घोषित करने के लिए दो पॉइंटर्स int लेने और दो पॉइंटर्स की सरणी में पॉइंटर वापस करने के लिए काम करने के लिए डबल और लौटने वाले कार्यों के लिए? (कैसे शांत है कि, है ना? :))
arr //arr
arr [3] //is an array of 3 (index it)
* arr [3] //pointers
(* arr [3])(int) //to functions taking int (call it) and
*(* arr [3])(int) //returning a pointer (dereference it)
(*(* arr [3])(int))[4] //to an array of 4
*(*(* arr [3])(int))[4] //pointers
(*(*(* arr [3])(int))[4])(double) //to functions taking double and
char (*(*(* arr [3])(int))[4])(double) //returning char
:))
स्रोत
2011-02-23 15:39:48
दिलचस्प सवाल है, लेकिन "असली" कोड में आप सिर्फ समारोह संकेत के स्वर्ण नियम का पालन करना चाहिए: का उपयोग 'typedef' अन्यथा कोई भी अपने कोड को समझने में सक्षम हो जाएगा । ':)' –