না করার কারণগুলি
প্রথমত, এখানে কোনও আন্ডারস্কোর না লেখার বা এটির অনুকরণের জন্য কোনও কৌশল ব্যবহার না করার কারণ: কোডগুলিতে সীমাবদ্ধতাগুলি খুঁজে পাওয়া শক্ত করে তোলে। মনে করুন যে কিছু প্রোগ্রাম প্রদর্শিত হয়েছে, কোথাও এর ক্রিয়াকলাপে, কিছু কোডের জন্য হার্ড-কোডড মান 1500000। আমি জানতে চাই যে প্রোগ্রামটির উত্স কোডটিতে এটি আসলে ঘটে থাকে, তাই আমি কোডটি গ্রেপ করে দেখি 1500000এবং কিছুই খুঁজে পাই না। কেন? এটি হেক্সাডেসিমালে থাকতে পারে (তবে কেন এমন গোলাকার দশমিক সংখ্যার জন্য)। আমার অজানা, ধ্রুবকটি আসলে লিখেছে 1_500_000। আমি Regex প্রয়োজন 1_?500_?000।
মন্তব্যে চরিত্র গাইডিং
কেবলমাত্র এক ধরণের ভিজ্যুয়াল সহায়তা উপলব্ধ না হওয়ার কারণে, বা আমরা উপরের কারণে এটি ব্যবহার করতে চাই না, এর অর্থ এই নয় যে আমরা বিকল্প চাক্ষুষ সহায়তা তৈরি করতে পাঠ্য ফাইলের দুটি মাত্রার সুবিধা নিতে পারি না:
foo = bar / 1000000000;
// --^--^--^
এটির সাহায্যে আমরা সহজেই নিজেকে বোঝাতে পারি যে তিনটি শূন্যের তিনটি দল রয়েছে। তবুও, আমরা এর জন্য উত্স কোডটি গ্রেপ করতে 1000000000এবং এটি খুঁজে পেতে পারি।
সিনট্যাক্স রঙ
প্রোগ্রামেবল সিনট্যাক্স রঙিন সহ একটি পাঠ্য সম্পাদককে আরও ভাল পাঠযোগ্যতার জন্য বিকল্প রঙগুলির সাথে সংখ্যক ধ্রুবকগুলিতে গোষ্ঠীগুলির অঙ্কগুলিতে রঙ করা যেতে পারে। কোডে আমাদের কিছু করার দরকার নেই।
প্রাক প্রসেসিং: সি, সি ++, উদ্দেশ্য সি
এখন, আমরা যদি সত্যিই অঙ্কগুলির মধ্যে কিছু কমা চাই, সি এবং সি ++ তে আমরা কিছু প্রাকপ্রসেসিং ব্যবহার করতে পারি:
/* Four digit base TH-ousand constant macro */
/* Condensed using Horner's rule */
#define TH(A,B,C,D) ((((((A) * 1000) + (B)) * 1000) + (C)) * 1000 + D)
tv_sec = nanoseconds / TH(1,000,000,000)
মত সংখ্যার জন্য কাজ করে TH(1,234,567,890)।
টিএইচের মতো একটি ম্যাক্রো পাটিগণিতের চেয়ে টোকেন পেস্টিংয়ের সাথেও কাজ করতে পারে। সি প্রিপ্রোসেসরে, বাইনারি ##অপারেটর ("টোকেন পেস্ট") ম্যাক্রো বডিতে দুটি অপারেন্ডকে এক সাথে টোকনে পেস্ট করার জন্য ব্যবহার করা যেতে পারে। অপারেটরগুলির একটি বা উভয়ই ম্যাক্রো আর্গুমেন্ট হতে পারে। এখানে নেতিবাচক দিক (আমাদের জন্য ঝুঁকি তৈরি করা) হ'ল ফলস্বরূপ কাটেনেশন যদি একটি বৈধ টোকেন না হয় তবে আচরণটি অপরিবর্তিত।
#define TOK4(A, B, C, D) A ## B ## C ## D
এখন
TOK4(1,000,000,000) /* produces the single token 1000000000 */
TOK4(1,123,000,000.0E+2) /* produces the single token 1123000000.0E+2 */
TOK4(pr,in,t,f) /* produces the token printf */
TOK4(#,*,a,b) /* undefined behavior, #*ab is not valid token syntax */
সি প্রোগ্রামগুলি যা সনাক্তকারীদের একসাথে পেস্ট করে এবং ফলাফলগুলি বিশ্বব্যাপী ভেরিয়েবল এবং ফাংশনগুলির নামকরণে ব্যবহার করে এবং এগুলি কাজ করতে ভয়ঙ্কর কারণ তারা জিএনইউ আইডি-ইউটিস এবং সিটি্যাগের মতো সরঞ্জামগুলিতে অভেদ্য।