मेरा प्रोग्राम एक लॉग और stdout लिखता है। प्रत्येक संदेश, हालांकि, एक निश्चित प्राथमिकता है और उपयोगकर्ता प्राथमिकताओं में निर्दिष्ट करता है जो प्राथमिकताएं स्ट्रीम (लॉग या stdout) पर जाती हैं।रैपर printf फ़ंक्शन जो उपयोगकर्ता वरीयताओं के अनुसार फ़िल्टर करता है
unsigned short PRIO_HIGH = 0x0001;
unsigned short PRIO_NORMAL = 0x0002;
unsigned short PRIO_LOW = 0x0003;
वरीयताओं कुछ झंडे द्वारा नियंत्रित किया जाता है:
unsigned short PRIO_LOG = (PRIO_HIGH | PRIO_NORMAL);
unsigned short PRIO_STD = (PRIO_HIGH);
write_log
समारोह unsigned short priority
का जोड़ा पैरामीटर के साथ, printf समारोह के रूप में ही मानकों के साथ काम करना चाहिए।
write_log((PRIO_NORMAL|PRIO_LOW), "HELLO %s, take %d", "World", 1);
(यहां तक कि अगर PRIO_NORMAL|PRIO_LOW
थोड़ा समझ में आता है ...)
झंडे जाँच हो रही है आसान है: if(priority & PRIO_LOG)
(रिटर्न> 1 यदि कोई झंडा दोनों बहस में सेट किया गया है)
मैं हालांकि नहीं मिल सकता है मैं स्ट्रिंग शाब्दिक और प्रिंटफ फ़ंक्शन के प्रारूप तर्कों को पार करने के बारे में कैसे जाउंगा। क्या कोई मुझे पॉइंटर की मदद या दे सकता है (एक वैकल्पिक विधि के लिए संभव है जो एक ही प्रभाव प्राप्त करता है)? यह बहुत सराहनीय होगा।
दृश्य सी ++ में आप इसके बजाय _____VA_ARGS_____ का उपयोग कर सकते हैं। संदर्भ: http://msdn.microsoft.com/en-us/library/ms177415(v=vs.110).aspx –
कृपया आवश्यक दिखाने के लिए संपादित करें '# शामिल करें ' –
robisrob