\
, जब तुरंत एक नई लाइन के बाद, प्रीप्रोसेसिंग द्वारा उपभोग किया जाता है और अगली "भौतिक" रेखा को वर्तमान तार्किक रेखा में शामिल किया जाता है। यह लंबे समय preprocessing निर्देशों, सभी एक तार्किक लाइन पर होना है जो लिखने के लिए बहुत महत्वपूर्ण है:
#define SHORT very log macro \
consisting of lots and \
lots of preprocessor \
tokens
आप बैकस्लैश-न्यू लाइन दृश्यों निकालते हैं, तो यह अब सही है। यूनिक्स संस्कृति से कुछ अन्य भाषाओं में एक समान बैकस्लैश लाइन निरंतरता वाक्यविन्यास है: बोर्स शैल से व्युत्पन्न पॉज़िक्स शैल भाषा, और मेकफ़ाइल भी।
$ this is \
one shell command
बारे "\n";
, कि एक प्राथमिक एक अभिव्यक्ति बयान बनाने के लिए इस्तेमाल अभिव्यक्ति है। सी में, अभिव्यक्तियों को कथन के रूप में उपयोग किया जा सकता है, और इसका हर समय शोषण किया जाता है। उदाहरण के लिए, आपका printf
कॉल एक अभिव्यक्ति कथन है। printf("hello world\n")
एक पोस्टफिक्स अभिव्यक्ति है जो एक फ़ंक्शन को कॉल करती है, वापसी मूल्य प्राप्त करती है। चूंकि आपने इस अभिव्यक्ति को एक कथन के रूप में उपयोग किया है, इसलिए वापसी मूल्य फेंक दिया जाता है। printf
का वापसी मूल्य इंगित करता है कि कितने पात्र मुद्रित किए गए थे, या फिर यह सफल रहा था, इसलिए इसे फेंक कर, आपका प्रोग्राम स्वयं को अनजान कर देता है कि printf
कॉल वास्तव में काम करता है या नहीं।
चूंकि अभिव्यक्ति-कथन का मूल्य त्याग दिया गया है, यदि ऐसे कथन का कोई दुष्प्रभाव नहीं है, तो यह एक बेकार बयान है जो कुछ भी नहीं करता है (जैसे आपके "\n"
)। लेकिन ऐसे बेकार अभिव्यक्ति बयान गलत नहीं हैं। यदि आप अपने कंपाइलर कमांड लाइन में चेतावनी विकल्प जोड़ते हैं तो आपको "चेतावनी के साथ कथन" या ऐसा कुछ चेतावनी मिल सकती है।
"\ n"; यह किसी भी प्रभाव के बिना एक बयान है। यह संकलक द्वारा पूरी तरह से अनदेखा हो जाता है और एक चेतावनी उत्पन्न करता है। Gcc -Wall ध्वज के साथ संकलन करने का प्रयास करें जो संकलन चेतावनियां सक्षम करता है। – dAm2K
आपका मुख्य प्रश्न कई बार उत्तर दिया गया है। '" \ N "; 'के बारे में भाग के संदर्भ में, एक सी प्रोग्राम बयान की सूची (अधिक या कम) है। एक शाब्दिक मूल्य (जैसे '3', या' "\ n" ', या' "हैम्बर्गर" ') एक पूरी तरह से वैध कथन है, भले ही यह कुछ भी _do_ नहीं करता है। – jpm