सी में, मुझे एक संरचना के आकार को जानने की आवश्यकता है, जिसमें फ़ंक्शन पॉइंटर्स हैं। क्या मुझे गारंटी दी जा सकती है कि सभी प्लेटफ़ॉर्म और आर्किटेक्चर पर:फ़ंक्शन पॉइंटर के आकार के बारे में क्या गारंटी है?
- शून्य का आकार * फ़ंक्शन पॉइंटर के समान आकार है?
- फ़ंक्शन पॉइंटर का आकार इसके रिटर्न प्रकार के कारण भिन्न नहीं है?
- फ़ंक्शन पॉइंटर का आकार इसके पैरामीटर प्रकारों के कारण भिन्न नहीं है?
मुझे लगता है कि उत्तर इन सभी के लिए हाँ है, लेकिन मैं यह सुनिश्चित करना चाहता हूं। संदर्भ के लिए, मैं sizeof(struct mystruct)
पर कॉल कर रहा हूं और कुछ भी नहीं।
अधिक आम तौर पर: किसी भी फ़ंक्शन पॉइंटर को किसी अन्य फ़ंक्शन पॉइंटर प्रकार और पीछे में परिवर्तित किया जा सकता है। (सी 99 6.3.2.3/8) – schot
@ स्कोट: ठीक है, उस स्थिति में यह वास्तव में उन्हें अलग-अलग आकार बनाने के लिए विपरीत होगा, क्योंकि आकार के बावजूद सभी फ़ंक्शन पॉइंटर प्रकारों को मानों के समान सेट का प्रतिनिधित्व करना होता है। अर्थात्, प्रत्येक समारोह का पता, साथ ही एक शून्य सूचक। –
उत्कृष्ट जवाब। दूसरे दिन से मेरा प्रश्न संभावित नुकसान को यहां दिखाता है: http://stackoverflow.com/questions/3889541/issue-with-null-pointers-on-harvard-architecture-platform – Vicky