সি এর পুরানো দিনগুলিতে কোনও বুলিয়ান টাইপ ছিল না। লোকেরা int
বুলিয়ান ডেটা সংরক্ষণ করার জন্য ব্যবহার করে এবং এটি বেশিরভাগ ক্ষেত্রেই কাজ করে। জিরো মিথ্যা ছিল এবং সমস্ত কিছু সত্য ছিল।
এর অর্থ যদি আপনি int flag = 0;
পরে নেন এবং flag++
মানটি সত্য হয়। পতাকার মান কী ছিল তা বিবেচনা করেই এটি কাজ করবে (যদি আপনি এটি অনেক কিছু না করেন তবে এটি গড়িয়ে পড়ে এবং আপনি শূন্যে ফিরে এসেছিলেন তবে এটিকে উপেক্ষা করতে দিন) - পতাকাটির মূল্য 1 হবে যখন 2 প্রদান করবে যা এখনও ছিল সত্য।
কিছু লোক এটি নিঃশর্তভাবে সত্যের জন্য বুলিয়ান মান সেট করার জন্য ব্যবহার করে। আমি নিশ্চিত না যে এটি কখনও মূর্খ হয়ে উঠেছে , তবে এটি কিছু কোডে।
এটি কখনই কার্যকর হয় নি --
, কারণ মানটি 1 (যা এটি হতে পারে) ব্যতীত অন্য কিছু হলে মানটি এখনও মিথ্যা হত না। এবং যদি এটি ইতিমধ্যে মিথ্যা ( 0
) থাকে এবং আপনি এটিতে একটি হ্রাসকারী অপারেটর করেন তবে এটি মিথ্যা হবে না।
প্রথম দিনগুলিতে কোডটি সি থেকে সি ++ এ সরানোর সময়, এটি খুব গুরুত্বপূর্ণ ছিল যে সি ++ এর অন্তর্ভুক্ত সি কোডটি এখনও কাজ করতে সক্ষম হয়েছিল। এবং তাই সি ++ (বিভাগ 5.2.6 (এটি পৃষ্ঠায় 71)) এর স্পেসিফিকেশনে এটি পড়ে:
পোস্টফিক্স ++ প্রয়োগ করে প্রাপ্ত মান হ'ল অপারেটর প্রয়োগের আগে অপারেন্ডের মান। [দ্রষ্টব্য: প্রাপ্ত মানটি মূল মূল্যের একটি অনুলিপি] অপারেন্ডটি একটি পরিবর্তনযোগ্য মূল্যবান হতে হবে। অপারেন্ডের ধরণটি একটি গাণিতিক টাইপ বা সম্পূর্ণ অবজেক্ট টাইপের পয়েন্টার হতে হবে। পরে ফলাফলের উল্লেখ করা হয়েছে, বস্তুর মান এটি 1 যোগ, যদি না অবজেক্টের তালিকায় দ্বারা রুপান্তরিত করা হয়েছে bool
, যে ক্ষেত্রে এটা সত্য সেট করা হয়। [দ্রষ্টব্য: এই ব্যবহারটি অবচিত করা হয়েছে, দেখুন এনেক্সে ডি]
পোস্টসাফিক্স এর প্রতীক - ছাড়া প্রতীক ধরনের হইবে না পোস্টসাফিক্স ++, অপারেটরের অনুরূপভাবে decremented হয়, bool
।
এটি আবার বিভাগ 5.3.2 এ উল্লিখিত হয়েছে (প্রিফিক্স অপারেটরের জন্য - 5.2.6 পোস্টফিক্সে ছিল)
আপনি দেখতে পাচ্ছেন যে, এটি অবমূল্যায়ন করা হয়েছে (দস্তাবেজের আনেক্সেক্স ডি, পৃষ্ঠা 709) এবং এটি ব্যবহার করা উচিত নয়।
তবে কেন হয়। এবং কখনও কখনও আপনি কোড দেখতে পারেন। তবে এটা করবেন না।