का स्ट्रिंगफ़िकेशन मुझे एक समस्या का सामना करना पड़ा - मुझे स्ट्रिंग और पूर्णांक दोनों के रूप में मैक्रो मान का उपयोग करने की आवश्यकता है।मैक्रो मान
#define RECORDS_PER_PAGE 10
/*... */
#define REQUEST_RECORDS \
"SELECT Fields FROM Table WHERE Conditions" \
" OFFSET %d * " #RECORDS_PER_PAGE \
" LIMIT " #RECORDS_PER_PAGE ";"
char result_buffer[RECORDS_PER_PAGE][MAX_RECORD_LEN];
/* ...and some more uses of RECORDS_PER_PAGE, elsewhere... */
इस बारे में "आवारा #" एक संदेश के साथ विफल रहता है, और यहां तक कि अगर यह काम किया, मुझे लगता है मैं मिल चाहते हैं मैक्रो नाम, stringified नहीं मान। बेशक मैं मूल्यों को अंतिम विधि ("LIMIT %d ", page*RECORDS_PER_PAGE
) पर खिला सकता हूं लेकिन यह न तो सुंदर और न ही कुशल है। यह ऐसा समय है जब मैं चाहता हूं कि प्रीप्रोसेसर तारों को विशेष तरीके से नहीं मानता और सामान्य सामग्री की तरह उनकी सामग्री को संसाधित करेगा। अभी के लिए, मैंने इसे #define RECORDS_PER_PAGE_TXT "10"
से चिपकाया लेकिन समझ में आता है, मैं इसके बारे में खुश नहीं हूं।
इसे कैसे प्राप्त करें?
जीसीसी पर मेरे लिए सही ढंग से प्रीप्रोसेस्ड। – kennytm
लिनक्स कर्नेल पर उदाहरण: http://lxr.free-electrons.com/source/include/linux/stringify.h?v=4.7 –