c - function parameters `...` what does it mean? -
संभव डुप्लिकेट:
मैं Win32 प्रोग्रामिंग के बारे में एक किताब पढ़ रहा था और मैंने इस तरह से एक फ़ंक्शन देखा था:
इंटेल CDECL संदेशबॉक्सप्रिंटफ (टीसीएचएआर * एसज़ कैप्शन, टीसीएचएआर * एसज़फ्रेम, ...) {टीसीएचआर एसज़बफर [1024]; Va_list pArgList; Va_start (पीआरआईएलआईस्ट, एसज़फ्रैट); _vsnprintf (szBuffer, sizeof (szBuffer) / sizeof (TCHAR), szFrmat, pArgList); Va_end (पार्लिस्ट); वापसी संदेशबॉक्स (नल, एसज़बफर, एसज़ कैपेशन, 0); }
फ़ंक्शन के मापदंडों में
, ... क्या होता है?
मैंने खोज के साथ उत्तर ढूंढने की कोशिश की लेकिन मुझे मिल गया उपयोगी कुछ भी नहीं
इसका मतलब है कि आप उस फ़ंक्शन के निरर्थक संख्या के तर्कों के बजाय वरीय संख्याओं का तर्क हो सकते हैं। एक आदर्श उपयोग के लिए
होगा उदाहरण के लिए, हम कहते हैं कि हमारे पास औसतन फ़ंक्शन है
डबल औसत (int num, ...) {va_list तर्क; // तर्क की सूची को संचित करने के लिए एक जगह डबल राशि = 0; Va_start (तर्क, संख्या); // सभी संख्याओं को जमा करने के लिए (int x = 0; x & lt; num; x ++) // लूप के सभी मूल्यों को जमा करने के लिए तर्कों को आरम्भ करने के लिए = सभी संख्याओं को जोड़ा जाता है + = va_arg (तर्क, डबल); // योग के लिए तर्क सूची में अगले मान जोड़ता है Va_end (तर्क); // सूची वापसी राशि / संख्या को साफ करता है; // औसत लौटाता है)
आप इस फ़ंक्शन को किसी भी तरह के तर्क के साथ कॉल कर सकते हैं
cout & lt; & lt; औसत (3, 12.2, 22.3, 4.5) & lt; & lt; endl;
भी पारित तर्क एक ही प्रकार का होना जरूरी नहीं है। अधिक जानकारी के लिए इसे देखें
Comments
Post a Comment