मैं एक सामान्य प्रकार के साथ सी stdarg.h lib का उपयोग करने की कोशिश कर रहा हूँ। टाइप int, मेरा सामान्य प्रकार है> इसे समझने के लिए, कृपया पढ़ने के लिए रखें। तो, मेरी समस्या है:सी में परिवर्तनीय तर्क, सामान्य प्रकार के साथ मूल्य कैसे प्राप्त करें?
मेरे पास एक ऐसा फ़ंक्शन है जो तर्कों की परिवर्तनीय संख्या स्वीकार करता है।
void function (int paramN, ...);
मेरे कार्यक्रम में की तरह, वहाँ कोई रास्ता नहीं है पता करने के लिए है, जो चर तर्क के प्रकार है कर रहे हैं, यह एक चार, एक सरणी, एक पूर्णांक, एक छोटा है, एक समारोह बिंदु, आदि हो सकता है ... जैसे
function (paramN, "Hey, I'm a string", 1, function_pint, array, -1); // -1 is a sentinel.
तो, मुझे लगता है कि, किसी पूर्णांक, 32bits, एक 86 (32bits) प्रणाली में है, यह स्मृति के सभी पते का आयोजन करेगा। इसलिए, यदि मुझे int के साथ सभी तर्क मिलते हैं, तो यह कोई समस्या नहीं होगी, उदाहरण के लिए, "अरे, मैं एक स्ट्रिंग हूं" इस स्ट्रिंग का पता, 32 बिट्स वैरिएबल में सामान्य रूप से फिट होता है, इसलिए, मुझे केवल बनाने की आवश्यकता है अभिनेता का चयन।
मैं सही हूँ?
क्या मैं कर सकता हूं?
नोट: मैं अपने फ़ंक्शन को printf (इस समाधान में फिट नहीं करना चाहता हूं, ठीक है?)
सभी उत्तरों के लिए धन्यवाद।
और मेरी खराब अंग्रेजी के लिए खेद है।
नोट: मैं अपने फ़ंक्शन को printf (यह समाधान, इस मामले में फिट नहीं करना चाहता हूं ठीक है?) – drigoSkalWalker
वाह, धन्यवाद क्रिस, आप एक विशेषज्ञ हैं, आपके समय के लिए धन्यवाद, जवाब बहुत अच्छा है! बहुत बहुत धन्यवाद; डी – drigoSkalWalker