यह NULL
में आयोजित एक समारोह के लिए एक सूचक है।
void(*)()
किसी फ़ंक्शन में पॉइंटर की परिभाषा है जो कोई तर्क नहीं लेती है जो कुछ भी वापस नहीं करती है; आप इसे नाम कर सकते हैं:
typedef void(*my_func)();
तो अपने उदाहरण में आप एक डाली मिल गया है:
(my_func)0
एक my_func
करने के लिए एक समारोह सूचक पैदावार, वह है, एक समारोह में कुछ भी नहीं ले रही है और कुछ भी नहीं लौटने।
फिर आप इसे प्रमुख तारांकन (जो अनावश्यक, afaik) के साथ अव्यवस्थित करते हैं, और फिर आप इसे कॉल करते हैं।
तो आप किसी फ़ंक्शन को कोई तर्क नहीं ले रहे हैं और पता शून्य पर रहने वाले कुछ भी नहीं लौट रहे हैं।
यह (आमतौर पर) अपरिभाषित व्यवहार है, और कई प्लेटफ़ॉर्म पर तुरंत क्रैश हो जाएगा। (यह अपरिभाषित व्यवहार करता है, तो आप पता शून्य में आयोजित एक समारोह में कहें, कम से कम मुझे लगता है कि नहीं होता यह था नहीं है।)
स्रोत
2010-04-09 00:51:15
यह एक छिपी हुई विशेषता को कॉल करने के लिए अजीब है। –
"यह अपरिभाषित व्यवहार नहीं है ... यह एक विशेषता है!"। नहीं, यह अपरिभाषित व्यवहार है। –