मैं एक सी मैक्रो बनाना चाहता हूं जो लाइन नंबर के आधार पर नाम के साथ एक फ़ंक्शन बनाता है। मुझे लगा कि मैं कुछ कर सकता हूं (वास्तविक कार्य में ब्रेस के भीतर कथन होंगे):
#define UNIQUE static void Unique_##__LINE__(void) {}
मुझे उम्मीद थी कि इसका विस्तार कुछ इस तरह होगा:
static void Unique_23(void) {}
यह काम नहीं करता है। टोकन संघनन के साथ, पोजिशनिंग मैक्रोज़ का शाब्दिक रूप से इलाज किया जाता है, जिसका विस्तार करने के लिए अंत किया जाता है:
static void Unique___LINE__(void) {}
क्या ऐसा करना संभव है?
(हां, इसका एक वास्तविक कारण है कि मैं यह करना चाहता हूं चाहे यह कितना भी बेकार क्यों न हो)।
__LINE__
(हालांकि यह एक सामान्य उपयोग का मामला है।