7
यह दोषपूर्ण कोडत्रुटि चिपकाने "" हैलो "" और "" WORLD "" नहीं देता है एक वैध preprocessing टोकन
#include<stdio.h>
#define CAT_I(A, B) A ## B
#define CAT(A, B) CAT_I(A,B)
void main (void)
{
printf(CAT("HELLO","WORLD"));
}
ऐसा क्यों है कि त्रुटि देता है? मैं इसे कैसे ठीक कर सकता हूं?
संपादित
यह है कि मैं क्या
#define TAG "TAG"
#define PRE CAT(CAT("<",TAG),">")
#define POS CAT(CAT("</",TAG),">")
#define XML CAT(CAT(PRE,"XML SOMETHING"),POS)
करने के लिए तो
printf(XML);
आप "एक टोकन" के साथ क्या संदर्भित करते हैं? मैं प्रीप्रोसेसर के साथ संगतता कैसे कर सकता हूं? – trucos
@trucos: उत्तर की अंतिम वाक्य पढ़ें। यहां एक मैक्रो के लिए वास्तव में कोई ज़रूरत नहीं है; संकलक पहले से ही आपके लिए concatenation करता है। – cHao
अगर मैं एक मैक्रो नहीं चाहता हूं तो मैं पूछूंगा, मेरा सवाल यह है कि मैक्रो = के साथ इसे कैसे करें)। शायद यह संभव नहीं है – trucos