"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C90 में फ़ंक्शन नामों को फ़ंक्शन पॉइंटर्स के रूप में क्यों उपयोग किया जा सकता है?

C90 में फ़ंक्शन नामों को फ़ंक्शन पॉइंटर्स के रूप में क्यों उपयोग किया जा सकता है?

2024-12-23 को प्रकाशित
ब्राउज़ करें:177

Why Can Function Names Be Used as Function Pointers in C90?

फ़ंक्शन पॉइंटर्स के रूप में फ़ंक्शन नामों का उपयोग करना

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