প্রোগ্রামের অনুবাদ 1 এর 3 ম পর্যায়ের সময় মন্তব্যগুলি সরানো হয় : প্রতিটি মন্তব্যই একটি স্থানের অক্ষর দ্বারা প্রতিস্থাপিত হয়। সুতরাং মন্তব্যটি /*nt*/
অবশ্যই টোকেন নয়।
কেউ এর যদি int
, main
, i
, a
বা return
ম্যাক্রো preprocessing হিসেবে সংজ্ঞায়িত করা হয় প্রোগ্রাম পার্স উত্পাদন করে 14 টোকেন (13):
int
main
(
)
{
i
a
=
10
;
return
0
;
}
বিবৃতি i
সহ একটি ধরণের হিসাবে সংজ্ঞায়িত না করা থাকলে সি বাক্যারে কোনও নিয়মের সাথে মেলে না typedef
এমন একটি বাক্য গঠন ত্রুটি রয়েছে i a
।
সুতরাং আপনি পরিবর্তনশীল নামের ভিতরে মন্তব্য লিখতে পারবেন না , মন্তব্যটি সনাক্তকারীকে দুটি পৃথক টোকনে বিভক্ত করে। এই যে কোনো প্রাক-প্রক্রিয়াকরণ ও সি ল্যাঙ্গুয়েজ টোকেন জন্য সত্য 2 ।
তবে নোট করুন যে আপনি অস্বাভাবিক স্থানে যেমন আনরি অপারেটর এবং তাদের অপারেন্ডের মধ্যে #
এবং এবং প্রিপ্রসেসিং নির্দেশিকা এবং এর যুক্তিগুলির মধ্যে মন্তব্য সন্নিবেশ করতে পারেন :
#include<stdio.h>
#defineSTAT(a)-1
#ifdefSTAT
intmain(){
inta=+1;
printf("Hello ""world!\n");
returnSTAT;
}
#endif
তবে উপরের ম্যাক্রো সংজ্ঞাটি কোনও ফাংশনের মতো ম্যাক্রোর সংজ্ঞা দেয় না তবে একটি নিয়মিত ম্যাক্রো STAT
যা প্রসারিত হয়( a ) - 1
।
পরিবর্তনীয় নামগুলি, অন্যান্য টোকেনের মতো পালানো নিউলাইনগুলি দ্বারা ভাগ করা যায়। পালানো নিউলাইনগুলি সিকোয়েন্স বা হয়\
তত্ক্ষণাত্ একটি নতুন লাইন অনুসরণ করা। প্রোগ্রাম অনুচ্ছেদের দ্বিতীয় ধাপের সময় এই ক্রমগুলি উত্স কোড থেকে সরানো হয়েছে। তাদের মূল উদ্দেশ্য একাধিক লাইনে দীর্ঘ ম্যাক্রো সংজ্ঞাগুলি ভাঙ্গা।
নীচে একটি কোড টুকরা 3 রয়েছে যা একই 14 টোকেন উত্পাদন করে:
\
i\
nt\
ma\
in()
{\
i/\
*nt\
*/a \
= 10;
r\
et\
urn\
0;}
কীভাবে কোড কালারাইজারটি কাটা এবং ডাইসযুক্ত কীওয়ার্ড এবং মন্তব্যটি মিস করেছে :) দেখুন
1) এই আচরণটি এএনএসআই-সি ওরফে সি 89 এ নির্দিষ্ট করা হয়েছিল। কিছু প্রাচীন সংকলকগুলির টোকেন পেস্টের ফলস্বরূপ সম্পূর্ণ ভিন্ন আচরণ ছিল, তবে এই জাতীয় বিশেষত্বগুলি কেবল historicalতিহাসিক আগ্রহের বিষয়।
২) আপনি প্রায় স্ট্রিং ধ্রুবকটির ভিতরে একটি মন্তব্য লিখতে পারেন যে সত্যতা যে সংলগ্ন স্ট্রিং ধ্রুবকগুলি প্রোগ্রামের অনুবাদের phase ম ধাপে সংযুক্ত করা হয়েছে: printf("Hello "/* my name is Luca */"world!\n");
3) এই ক্রিসমাস ট্রি উপস্থাপনা শৈলীটি বাস্তব প্রোগ্রামগুলিতে ব্যবহার করার জন্য নয়, এটি সি এর ইনপুট হ্যান্ডলিং ক্ষমতার অপব্যবহারের চিত্র তুলে ধরে। আরও বিস্তৃত কৌশল কৌশলগত আন্তর্জাতিক কোড সিটি প্রতিযোগিতা জিতেছে
cpp -traditional
দ্বারা প্রয়োগ করা হয়েছিল , এটি প্রসারিত হবেia = 10;
।