Monday, 15 June 2015

c preprocessor - What is the output of following program in C -


इस प्रोग्राम का आउटपुट क्या है और मुझे यह समझाएं?

  #include & LT; stdio.h & gt; #define foo (m, n) m ## n int main () {printf ("% s \ n", foo (k, l)); }  

जब मैंने इस प्रोग्राम को संकलित करने की कोशिश की तो मुझे यह त्रुटि मिली > [त्रुटि] इस दायरे में 'केएल' को घोषित नहीं किया गया था

असल में, ## ऑपरेटर दो अलग टोकन लेता है और एक टोकन बनाने के लिए उन्हें एक साथ पेस्ट करता है। परिणामी टोकन एक वैरिएबल नाम, वर्ग का नाम या कोई अन्य पहचानकर्ता हो सकता है।

तो यहां आप एक भी पहचानकर्ता "kl" को बिना किसी घोषणा के भी मुद्रित करने का प्रयास कर रहे हैं। अब बस इस लाइन को जोड़ें

चार kl [16] = "हैलो दुनिया!";

आपको आउटपुट नमस्कार दुनिया मिलेगी! < / Strong>


No comments:

Post a Comment