কোনও উত্স ফাইলের মধ্যে লাইন গণনা করার জন্য, সি / সি ++ প্রিপ্রসেসর ব্যবহার করে কোনও ম্যাক্রো বা কোনও ধরনের সংকলন-সময়-উপলভ্য মানের মধ্যে এটি কি সম্ভব? যেমন আমি প্রতিস্থাপন করতে পারি MAGIC1
, MAGIC2
এবং MAGIC3
নিম্নলিখিতটিতে, এবং ব্যবহার করার সময় কোনওভাবে 4 মান পেতে MAGIC3
পারি?
MAGIC1 // can be placed wherever you like before the relevant
// lines - either right before them, or in global scope etc.
foo(); MAGIC2
bar(); MAGIC2
baz(); MAGIC2
quux(); MAGIC2
// ... possibly a bunch of code here; not guaranteed to be in same scope ...
MAGIC3
মন্তব্য:
- প্রিপ্রোসেসরের ক্ষমতাগুলিতে সংকলক-নির্দিষ্ট এক্সটেনশনগুলি গ্রহণযোগ্য তবে অযাচিত।
- যদি এটি কেবলমাত্র C ++ এর কিছু লোকের সাহায্যে সি এর বিপরীতে নির্মাণ করা সম্ভব হয় তবে এটি গ্রহণযোগ্য তবে অবাঞ্ছিত (যেমন আমি এমন কিছু চাই যা সি এর জন্য কাজ করবে)।
- স্পষ্টতই কিছু বাহ্যিক প্রসেসরের স্ক্রিপ্টের মাধ্যমে উত্স ফাইলটি চালিয়ে এটি করা যেতে পারে তবে আমি যা চাইছি তা তা নয়।
__COUNTER__
এবং / অথবা BOOST_PP_COUNTER
?
int arr[MAGIC4]
এবং আমার কোডের কিছু পূর্ব-গণনা করা বিভাগে লাইন সংখ্যা পেতে।
__LINE__
যা বর্তমান লাইন সংখ্যা প্রতিনিধিত্ব করে