c - Deciding prototype of functions -


मेरे पास निम्न के रूप में 2 डेटा स्ट्रक्चर हैं:

  struct data_type {char name [20] ; Int (* check_equal) (शून्य * ए, शून्य * बी); }  

और

  संरचना attr_data {int data_type; शून्य * (* get_func) (शून्य * रिकॉर्ड); // इस फ़ंक्शन के प्रोटोटाइप के बारे में निश्चित नहीं है}  

वास्तव में एक स्ट्रिंग और इंट जैसे विभिन्न तार्किक डेटाटाइपों के लिए इस्तेमाल की जाने वाली एक संरचना है (सी का छोटा डेटासेट और इंट "इंट" "तार्किक प्रकार) इसलिए, मेरे पास इस डेटा_प्रकार संरचना की एक सरणी है जिसमें 2 तत्व हैं: स्ट्रिंग के नाम से एक और पूर्णांक के रूप में नाम के साथ दूसरे कोई। स्ट्रिंग के लिए "check_equal" फ़ंक्शन केवल एआरजी ए और बी के उपयोग से strcmp () फ़ंक्शन करने के लिए एक कॉल है, जो कि चार * प्रकार के हैं "पूर्णांक" तत्व के लिए check_equal फ़ंक्शन के साथ ऐसा ही मामला है लेकिन यहां ध्यान दें कि इस क्रियान्वयन में, "चेक_एजल" फ़ंक्शन को 2 इंटिजर्स के पास पॉइंटर्स की आवश्यकता होगी दूसरी डेटा संरचना वास्तव में किसी भी अन्य डेटा संरचना के लिए मेटा डेटा है जैसे:

  struct abc {char * a; Int b; }  

संरचना एबीसी में हर सदस्य चर के लिए, मानना ​​है कि मैं कुछ सरणी में struct attr_data का एक उदाहरण रखता हूं। आदर्श रूप से कुछ सदस्य चर के लिए एक फ़ंक्शन को उस सदस्य चर के मूल्य को हमेशा वापस करना चाहिए और उस पर एक सूचक नहीं होना चाहिए। इस प्रकार सदस्य के लिए फ़ंक्शन प्राप्त करें, एबीसी में एक एआरसी को चार * लौटना चाहिए, लेकिन बी के लिए, एक इंट को वापस करना चाहिए। अब मुझे इन get_funcs का उपयोग करने के लिए स्ट्रेट डेटा_प्रकार के चेक_एजंक्शन फ़ंक्शन को सीधे तर्क से पास करना होगा। लेकिन चूंकि check_equal फ़ंक्शन का प्रोटोटाइप (शून्य *, शून्य *) है, इस get_func का उपयोग करने में विफल रहता है। क्या कोई मुझे यहां उपयोग किए जाने वाले फ़ंक्शन पॉइंटर्स के प्रोटोटाइप का निर्णय लेने में सहायता कर सकता है? क्या किसी व्यक्ति को टाइपिंगिंग इंट के लिए शून्य * *

ईन्म ई {CHAR, INT, फ्लोट, डबल, चार्ट, INTP, ......}

आप एक संदर्भ के रूप में इन डेटा प्रकारों का उपयोग कर सकते हैं और स्विच मामले का उपयोग करके आप इच्छित डेटा को विभिन्न डेटा के साथ कर सकते हैं टाइप करें।


Comments

Popular posts from this blog

asp.net - Procedure or function "Procedure name" expects a parameter "Param name" which was not supplied occurs rarely -

c++ - Redefined variable in the other module -

c# - The item with identity 'Id' already exists in the metadata collection. Parameter name: item -