আমার আগের অনেক প্রশ্নে উল্লিখিত হিসাবে, আমি কেএন্ডআর এর মাধ্যমে কাজ করছি এবং বর্তমানে প্রিপ্রোসেসর হিসাবে আছি। আরও মজাদার বিষয়গুলির মধ্যে একটি - যা আমি সি শিখার আমার পূর্বের যে কোনও প্রচেষ্টা থেকে আগে কখনও জানতাম না - এটি ##
প্রিপ্রোসেসর অপারেটর। কে অ্যান্ড আর অনুসারে:
প্রিপ্রোসেসর অপারেটর
##
ম্যাক্রো প্রসারণের সময় প্রকৃত যুক্তিগুলি সংযুক্ত করার একটি উপায় সরবরাহ করে। প্রতিস্থাপন পাঠ্যের কোনও পরামিতি যদি একটি সংলগ্ন হয়##
তবে প্যারামিটারটি আসল যুক্তি দ্বারা প্রতিস্থাপন করা হয়##
এবং আশেপাশের সাদা স্থান সরিয়ে ফেলা হয় এবং ফলাফলটি আবার স্ক্যান করা হয়। উদাহরণস্বরূপ, ম্যাক্রোpaste
তার দুটি আর্গুমেন্টকে সম্মতি জানায় :
#define paste(front, back) front ## back
সুতরাং
paste(name, 1)
টোকেন তৈরি করেname1
।
কেউ কেন এবং কেন বাস্তব বিশ্বে এটি ব্যবহার করবে? এর ব্যবহারিক ব্যবহারিক উদাহরণগুলি কী কী, এবং সেখানে কি বিবেচনা করার মতো কিছু আছে?
std::wstring BuildDate = WIDEN(__DATE__) L" " WIDEN(__TIME__);
এবং স্পষ্টভাবে একবারে পুরো স্ট্রিংটি তৈরি করতে পারেন।