আমি যেমন কিছু করতে সক্ষম হতে চাই
#print "C Preprocessor got here!"
ডিবাগিং উদ্দেশ্যে। এটি করার সেরা / সবচেয়ে বহনযোগ্য উপায় কী?
আমি যেমন কিছু করতে সক্ষম হতে চাই
#print "C Preprocessor got here!"
ডিবাগিং উদ্দেশ্যে। এটি করার সেরা / সবচেয়ে বহনযোগ্য উপায় কী?
উত্তর:
warning
নির্দেশ সম্ভবত নিকটতম আপনি পাবেন, কিন্তু এটি সম্পূর্ণরূপে প্ল্যাটফর্ম-স্বাধীন নয়:
#warning "C Preprocessor got here!"
এএফআইএকি এটি এমএসভিসি ব্যতীত বেশিরভাগ সংকলকগুলিতে কাজ করে, যার ভিত্তিতে আপনাকে একটি pragma
নির্দেশিকা ব্যবহার করতে হবে :
#pragma message ( "C Preprocessor got here!" )
#define WARNING(msg) _Pragma("message " #msg)
আর একটি সমাধান হ'ল মন্তব্যগুলি এবং তাদের প্রক্রিয়া করার জন্য একটি শেল স্ক্রিপ্ট ব্যবহার করা। এটি কিছু শৃঙ্খলা নেয় (বা শেল স্ক্রিপ্ট যা টাইপস ক্যাচ করে)।
উদাহরণস্বরূপ, আমি মন্তব্যগুলি ফর্ম্যাট করে //TODO
এবং তারপরে একটি শেল স্ক্রিপ্ট যুক্ত করি যা তাদের সমস্তকে একটি প্রতিবেদনে সংগ্রহ করে।
আরও জটিল ব্যবহারের ক্ষেত্রে আপনি নিজের সাধারণ প্রিপ্রোসেসরটি লেখার চেষ্টা করতে পারেন। উদাহরণস্বরূপ, আপনি *.c2
ফাইলগুলি হিসাবে আপনার উত্সগুলি সম্পাদনা করতে পারেন । সাধারণ প্রিপ্রোসেসর উত্সটি পড়বে, অনুসন্ধান করবে //TODO
এবং printf("TODO ...")
আউটপুট *.c
ফাইলে লিখবে ।
আপনি পারবেন না। প্রিপ্রসেসরগুলি সি কোডের আগে প্রক্রিয়া করা হয়। স্ক্রিনে মুদ্রণের জন্য কোনও প্রিপ্রোসেসর নির্দেশ নেই, কারণ প্রিপ্রসেসর কোড কার্যকর করা হয় নি, এটি সি কোড তৈরি করতে ব্যবহৃত হয় যা এক্সিকিউটেবল কোডে সংকলিত হবে।
এর সাথে যে কোনও সমস্যা:
#ifdef ...
printf("Hello");
#endif
কারণ প্রিপ্রোসেসরগুলি যতদূর যেতে পারে আপনি এটি করতে পারেন।
#ifdef _LINUX #define #preprocmsg "#warning" else #define #preprocmsg "#pragma message"
... আমাকে চেষ্টা করে দেখতে হবে তবে প্রবৃত্তি আমাকে উত্তরটি বলে, এটি হ'ল না।