फ़ंक्शन पॉइंटर्स के रूप में फ़ंक्शन नामों का उपयोग करना
C90 का तर्क दस्तावेज़ फ़ंक्शन पॉइंटर्स के साथ फ़ंक्शन नामों को समान करने के डिज़ाइन विकल्प में अंतर्दृष्टि प्रदान करता है। यह सुविधा विशिष्ट संदर्भों में फ़ंक्शन पॉइंटर्स का उपयोग करना सरल बनाती है।
फ़ंक्शन घोषणाएँ
घोषणाओं पर विचार करें:
int f(); int (*pf)();
Function Calls
निम्नलिखित सभी एक्सप्रेस वैध फ़ंक्शन कॉल:
(&f)(); f(); (*f)(); (**f)(); (***f)(); pf(); (*pf)(); (**pf)(); (***pf)();
प्रत्येक पंक्ति पर पहली अभिव्यक्ति पहले कवर की गई थी। दूसरा पारंपरिक है. बाद की अभिव्यक्तियाँ अधिकांश संदर्भों में फ़ंक्शन डिज़ाइनर के सूचक मान में एक अंतर्निहित रूपांतरण का संकेत देती हैं। उन्हें अत्यधिक प्रयास के रूप में गैरकानूनी घोषित करना। इस प्रकार, फ़ंक्शन डिज़ाइनर और फ़ंक्शन पॉइंटर्स के बीच समानता पॉइंटर उपयोग में सुविधा प्रदान करती है। पैरामीटर के रूप में लेकिन रिटर्न प्रकार के रूप में नहीं:
typedef bool FunctionType(int); शून्य जी(फ़ंक्शन प्रकार); // स्पष्ट रूप से शून्य जी (फ़ंक्शन टाइप *) में परिवर्तित हो जाता है फ़ंक्शन प्रकार h(); // गलती फ़ंक्शन प्रकार *j(); // bool(int) प्रकार के साथ एक फ़ंक्शन पॉइंटर लौटाता है
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3