সি, বিখ্যাত হিসাবে, এইচএলএলগুলি যেতে গেলে এটি একটি নিম্ন স্তরের ভাষা। সি ++, যদিও এটি সি এর তুলনায় যথেষ্ট উচ্চ-স্তরের ভাষা বলে মনে হচ্ছে তবুও এর বৈশিষ্ট্যগুলি বেশ কয়েকটি ভাগ করে দেয়। এবং এই বৈশিষ্ট্যগুলির মধ্যে একটি হ'ল ভাষাগুলি প্রোগ্রামারদের দ্বারা, প্রোগ্রামারদের জন্য - এবং বিশেষত প্রোগ্রামাররা যারা জানত যে তারা কী করছে doing
[এই উত্তরটির বাকি অংশে আমি সি এর দিকে মনোনিবেশ করতে চলেছি আমি যা বলব তার বেশিরভাগটি সি ++ এর ক্ষেত্রেও প্রযোজ্য, যদিও সম্ভবত এটি দৃ strongly়তার সাথে নয়। যদিও বাজর্ন স্ট্রাস্ট্রপ যেমন বিখ্যাত বলেছেন, "সি নিজেকে পায়ে গুলি করা সহজ করে; সি ++ আরও শক্ত করে তোলে, তবে আপনি যখন এটি করেন তখন আপনার পুরো পাটি বন্ধ করে দেয়।" ]
আপনি কী করছেন তা যদি জানেন - আপনি কী করছেন তা সত্যই জেনে রাখুন - কখনও কখনও আপনাকে "বিধিগুলি ভঙ্গ" করতে হতে পারে। তবে বেশিরভাগ সময়, আমাদের বেশিরভাগই সম্মত হবেন যে সুপরিকল্পিত নিয়মগুলি আমাদের সকলকে ঝামেলা থেকে দূরে রাখে এবং এই নিয়মগুলি অজানাভাবে সর্বদা ভঙ্গ করা একটি খারাপ ধারণা।
তবে সি এবং সি ++ তে আশ্চর্যরকমভাবে প্রচুর পরিমাণে আপনি করতে পারেন যেগুলি "খারাপ ধারণা" তবে আনুষ্ঠানিকভাবে "বিধিগুলির বিরুদ্ধে নয়"। কখনও কখনও তারা কিছু সময় একটি খারাপ ধারণা হন (তবে অন্য সময় এটি ডিফেন্সযোগ্যও হতে পারে); কখনও কখনও তারা কার্যত সমস্ত সময় একটি খারাপ ধারণা হন। তবে traditionতিহ্য সবসময় এই বিষয়গুলি সম্পর্কে সতর্ক করার জন্য নয় - কারণ, আবারও ধারণা করা হয় যে প্রোগ্রামাররা জানে যে তারা কী করছে, তারা কোনও ভাল কারণ ছাড়াই এই কাজগুলি করবে না, তারা একগুচ্ছ বিরক্ত হবে ' অপ্রয়োজনীয় সতর্কতা।
তবে অবশ্যই সব প্রোগ্রামারদের সত্যিই তারা কি করছেন জানি। এবং, বিশেষত, প্রতিটি সি প্রোগ্রামার (যতই অভিজ্ঞ হোক না কেন) প্রারম্ভিক সি প্রোগ্রামার হওয়ার একটি পর্যায়ে চলে যায়। এমনকি অভিজ্ঞ সি প্রোগ্রামাররাও অযত্ন পেতে এবং ভুল করতে পারে।
পরিশেষে, অভিজ্ঞতা কেবল দেখিয়েছে যে প্রোগ্রামাররা ভুল করে না, তবে এই ভুলগুলির প্রকৃত এবং গুরুতর পরিণতি হতে পারে। যদি আপনি কোনও ভুল করেন এবং সংকলকটি আপনাকে এটি সম্পর্কে সতর্ক করে না এবং কোনওরকমভাবে প্রোগ্রামটি তত্ক্ষণাত ক্রাশ হয় না বা এর কারণ হিসাবে স্পষ্টত কোনও ভুল করে না, ভুলটি সেখানে লুকিয়ে থাকতে পারে, কখনও কখনও বছরের পর বছর ধরে, যতক্ষণ না এটি ঘটায় একটি সত্যিই বড় সমস্যা।
সুতরাং দেখা যাচ্ছে যে বেশিরভাগ সময় সতর্কতাগুলি একটি ভাল ধারণা, সর্বোপরি। এমনকি অভিজ্ঞ প্রোগ্রামাররাও শিখেছে (আসলে এটি " বিশেষত অভিজ্ঞ প্রোগ্রামাররা শিখেছে") যে ভারসাম্য বজায় রাখলে সতর্কতাগুলি ক্ষতির চেয়ে আরও বেশি ভাল কাজ করে। প্রতিবার আপনি ইচ্ছাকৃতভাবে কোনও ভুল করেছেন এবং সতর্কবাণী একটি উপদ্রব ছিল, দুর্ঘটনার কারণে আপনি কমপক্ষে দশবার ভুল করেছিলেন এবং সতর্কবাণী আপনাকে আরও ঝামেলা থেকে রক্ষা করেছে। আপনি যখন সত্যই "ভুল" জিনিসটি করতে চান তবে বেশিরভাগ সতর্কতাগুলি সেই কয়েকবারের জন্য অক্ষম বা কাজ করা যেতে পারে।
(এই জাতীয় "ভুল" এর একটি সর্বোত্তম উদাহরণ পরীক্ষা test if(a = b)
বেশিরভাগ সময়, এটি একটি ভুল, তাই বেশিরভাগ সংকলক আজকাল এটি সম্পর্কে সতর্ক করে - কিছু এমনকি ডিফল্টরূপেও But তবে আপনি যদি সত্যই নির্ধারিত এবং পরীক্ষা উভয়ই দিতে b
চান a
ফলস্বরূপ, আপনি টাইপ করে সতর্কতাটি অক্ষম করতে পারেন if((a = b))
))
দ্বিতীয় প্রশ্নটি হল, আপনি কেন সংকলককে সতর্কতাটিকে ত্রুটি হিসাবে বিবেচনা করতে বলবেন? আমি এটি মানব প্রকৃতির কারণে বলেছিলাম, বিশেষত, "ওহ, এটি কেবল একটি সতর্কবাণী, এটি এতটা গুরুত্বপূর্ণ নয়, আমি পরে এটি পরিষ্কার করব।" তবে আপনি যদি কোনও বিলম্বকারী হন (এবং আমি আপনার সম্পর্কে জানিনা, তবে আমি একটি ভয়ঙ্কর শিথিলকরণকারী) তবে মূলত যে কোনও সময়ের জন্য প্রয়োজনীয় পরিষ্কার করা বন্ধ করা সহজ - এবং যদি আপনি সতর্কতা উপেক্ষা করার অভ্যাসে চলে যান তবে এটি আপনি উপেক্ষা করছেন এমন সকলের মাঝে সেখানে অলক্ষিত, বসে থাকা একটি গুরুত্বপূর্ণ সতর্কতা বার্তাটি মিস করা সহজ এবং সহজ হয়ে যায়।
তাই সংকলককে ত্রুটি হিসাবে সতর্কতা হিসাবে বিবেচনা করা জিজ্ঞাসা করা একটি ছোট কৌশল যা আপনি এই মানুষের বোধগম্য হয়ে উঠতে নিজের উপর খেলতে পারেন।
ব্যক্তিগতভাবে, আমি সতর্কতাগুলি ত্রুটি হিসাবে চিকিত্সা করার বিষয়ে তেমন জেদী নই। (প্রকৃতপক্ষে, আমি যদি সত্যবাদী হই তবে আমি বলতে পারি যে আমি আমার ব্যক্তিগত "প্রোগ্রামিং" তে কার্যত সেই বিকল্পটি সক্ষম করি না)) তবে আপনি নিশ্চিত হতে পারেন যে আমি সেই বিকল্পটি কার্যক্ষেত্রে সক্ষম করেছি, যেখানে আমাদের স্টাইল গাইড (যা আমি লিখেছেন) এর ব্যবহারের আদেশ দেয়। এবং আমি বলব - আমার সন্দেহ হয় বেশিরভাগ পেশাদার প্রোগ্রামাররা বলবেন - যে কোনও দোকান যে সতর্কতার সাথে সি-তে ত্রুটি হিসাবে বিবেচনা করে না, সে দায়িত্বহীন আচরণ করে, সাধারণভাবে গৃহীত শিল্পের সেরা অনুশীলনগুলিকে মেনে চলে না।