कहें कि मेरे पास यह फ़ंक्शन है:मैं एक बहुत से तर्क के साथ एक सूचक के माध्यम से एक समारोह क्यों बुला सकता हूं?
int func2() {
printf("func2\n");
return 0;
}
अब मैं एक पॉइंटर घोषित करता हूं:
int (*fp)(double);
यह एक फ़ंक्शन को इंगित करना चाहिए जो double
तर्क लेता है और int
देता है।
func2
में कोई तर्क नहीं है, लेकिन फिर भी जब मैं लिखता हूं:
fp = func2;
fp(2);
(2
केवल एक मनमाना संख्या होने के साथ), func2` सही ढंग से लागू किया जाता है।
वह क्यों है? क्या फ़ंक्शन पॉइंटर के लिए घोषित पैरामीटर की संख्या का कोई अर्थ नहीं है?
संक्षिप्त उत्तर "किसी भी तर्क के साथ एक फ़ंक्शन घोषित करना है ... और फिर जानबूझकर एक तर्क पारित करना ... गलत है"। – paulsm4