कार्यक्रम के अनुवाद 1 के चरण 3 के दौरान टिप्पणियों को हटा दिया जाता है : प्रत्येक टिप्पणी को एक स्थान वर्ण द्वारा बदल दिया जाता है। तो टिप्पणी /*nt*/
निश्चित रूप से एक टोकन नहीं है।
कोई भी अगर int
, main
, i
, a
या return
मैक्रो preprocessing के रूप में, परिभाषित कर रहे हैं कार्यक्रम पार्स करने का उत्पादन 14 टोकन (नहीं 13):
int
main
(
)
{
i
a
=
10
;
return
0
;
}
जब तक i
कि एक typedef
बयान के साथ एक प्रकार के रूप में परिभाषित नहीं किया जाता है, तब तक एक वाक्यविन्यास त्रुटि होती है क्योंकि i a
सी व्याकरण में एक नियम से मेल नहीं खाता है।
इसलिए आप चर नामों के अंदर टिप्पणी नहीं लिख सकते , टिप्पणी पहचानकर्ता को 2 अलग टोकन में विभाजित करती है। यह किसी भी प्रीप्रोसेसिंग और सी भाषा टोकन 2 के लिए सही है ।
ध्यान दें कि आप असामान्य स्थानों जैसे कि अपर संचालक और उनके ऑपरेटर के बीच या #
प्रीप्रोसेसिंग निर्देश और उसके तर्कों के बीच टिप्पणी डाल सकते हैं :
#include<stdio.h>
#defineSTAT(a)-1
#ifdefSTAT
intmain(){
inta=+1;
printf("Hello ""world!\n");
returnSTAT;
}
#endif
लेकिन उपरोक्त मैक्रो परिभाषा फ़ंक्शन-जैसे मैक्रो को परिभाषित नहीं करती है, लेकिन एक नियमित मैक्रो STAT
जो फैलता है ( a ) - 1
।
परिवर्तनीय नाम, किसी भी अन्य टोकन की तरह बच गई नई सुर्खियों से विभाजित हो सकते हैं। बची हुई नई सुर्खियाँ सीक्वेंस हैं या इसके \
तुरंत बाद एक नई पंक्ति है। ये अनुक्रम प्रोग्राम अनुवाद के चरण 2 के दौरान स्रोत कोड से हटा दिए जाते हैं। उनका मुख्य उद्देश्य कई लाइनों पर लंबी मैक्रो परिभाषाओं को तोड़ना है।
नीचे एक कोड टुकड़ा 3 है जो समान 14 टोकन का उत्पादन करता है:
\
i\
nt\
ma\
in()
{\
i/\
*nt\
*/a \
= 10;
r\
et\
urn\
0;}
सूचना कैसे कोड colorizer कटा हुआ और diced खोजशब्दों और टिप्पणी याद किया :)
1) यह व्यवहार ANSI-C उर्फ C89 में निर्दिष्ट किया गया था। कुछ प्राचीन संकलक में समान रूप से अलग-अलग व्यवहार होता था, जिसके परिणामस्वरूप टोकन चिपकाने लगते थे, लेकिन इस तरह की ख़ासियतें केवल ऐतिहासिक रुचि की होती हैं।
2) आप इस तथ्य का लाभ उठाते हुए एक स्ट्रिंग स्थिरांक के अंदर लगभग एक टिप्पणी डाल सकते हैं कि आसन्न स्ट्रिंग स्थिरांक को कार्यक्रम अनुवाद के चरण 6 में समाहित किया गया है: printf("Hello "/* my name is Luca */"world!\n");
3) इस क्रिसमस ट्री प्रस्तुति शैली का वास्तविक कार्यक्रमों में उपयोग करने के लिए नहीं है, यह दिखाता है कि सी की इनपुट हैंडलिंग क्षमताओं का दुरुपयोग कैसे किया जाता है। अधिक विस्तृत तरकीबों ने द इंटरनेशनल ऑबफुसकेटेड सी कोड प्रतियोगिता जीती है
cpp -traditional
द्वारा लागू किया गया है , इसका विस्तार होगाia = 10;
।