सवाल यह सब कुछ कहता है।सी: परिवर्तनीय पैरामीटर गणना वाले कार्यों के लिए मैं एक फ़ंक्शन पॉइंटर सरणी का उपयोग कैसे कर सकता हूं?
मुझे यकीन नहीं है कि यह कैसे करें और काम करने वाली किसी भी चीज़ के पास कहीं भी न आएं।
यहां कुछ उदाहरण कार्यों है:
add(int x, int y) {
return x+y;
}
और,
mean(int x1, int y1, int x2, int y2) {
return (x1 + y1 + x2 + y2)/4;
}
अब तक मैं दोनों के साथ typedef का उपयोग कर की कोशिश की है, लेकिन मैं समझ नहीं सकता कैसे में से एक के लिए कुछ बिंदु बनाने के लिए या तो टाइप करें:
typedef int (*mathfunc2)(int x, int y);
typedef int (*mathfunc4)(int x1, int y1, int x2, int y2);
????? func_table[2] = {add, mean};
यह वास्तव में चाल है! धन्यवाद एक गुच्छा, महोदय। मुझे उम्मीद है कि अगर मुझे कभी 15 प्रतिष्ठा मिलती है और आपको एक तीर देता है :) – vaughanj
मैं इंप्रेशन फ़ंक्शन पॉइंटर्स के तहत पैरामीटर के कारण नियमित शून्य पॉइंटर्स से अलग व्यवहार करता था। कि आप फ़ंक्शन पॉइंटर्स को विभिन्न पैरामीटर के साथ मिश्रित नहीं कर सके क्योंकि स्टैक क्लीनअप पर दूषित हो जाएगा। क्या मैंने कुछ गलत समझा है? – Ioan
@Ioan: आपको फ़ंक्शन को घोषित प्रकार के साथ संगत एक पॉइंटर के माध्यम से कॉल करना होगा - जिसका अर्थ यह है कि यदि आप फ़ंक्शन पॉइंटर को स्टोरेज के लिए किसी भिन्न प्रकार में डालते हैं, तो आपको इसे सही प्रकार पर कॉल करने के लिए सही तरीके से डालना होगा कार्यक्रम। इस जवाब में उदाहरण यह करता है। – caf