मैं संबंधित प्रीप्रोसेसर मैक्रोज़ का एक गुच्छा लिख रहा हूं, जिसमें से एक लेबल उत्पन्न करता है जो दूसरा एक कूदता है। मैं उन्हें इस फैशन में उपयोग करें:मैं सी प्रीप्रोसेसर में अद्वितीय मूल्य कैसे उत्पन्न कर सकता हूं?
MAKE_FUNNY_JUMPING_LOOP(
MAKE_LABEL();
MAKE_LABEL();
)
मैं किसी तरह से अद्वितीय लेबल, प्रत्येक भीतरी MAKE_LABEL
कॉल के लिए एक, पूर्वप्रक्रमक के साथ उत्पन्न करने के लिए की जरूरत है। मैंने __LINE__
का उपयोग करने का प्रयास किया है, लेकिन चूंकि मैं MAKE_LABEL
को किसी अन्य मैक्रो के अंदर कॉल करता हूं, इसलिए उनके पास एक ही पंक्ति होती है और लेबल टकराते हैं।
MAKE_FUNNY_JUMPING_LOOP(
my_cool_label_1: // from first inner macro
...
my_cool_label_2: // from second inner macro
...
)
वहाँ एक रास्ता पूर्वप्रक्रमक साथ हैश या ऑटो बढ़ाने पूर्णांकों उत्पन्न करने के लिए है:
मैं चाहता क्या यह करने के लिए विस्तार करने के लिए कुछ की तरह है?
क्या संकलक आप उपयोग कर रहे हैं? –
मैं आईसीसी (एसटीएम प्रोटोटाइप 3.0; वी 11 के आधार पर, मुझे लगता है) का उपयोग कर रहा हूं। –
सी ++ के लिए: http://stackoverflow.com/questions/9949532/generate-unique-numbers-at-compile-time?lq=1 –