নিম্নলিখিত এনাম এবং সুইচ বিবৃতি বিবেচনা করুন:
typedef enum {
MaskValueUno,
MaskValueDos
} testingMask;
void myFunction(testingMask theMask) {
switch (theMask) {
case MaskValueUno: {}// deal with it
case MaskValueDos: {}// deal with it
default: {} //deal with an unexpected or uninitialized value
}
};
আমি একটি উদ্দেশ্য-সি প্রোগ্রামার, তবে আমি এটি বৃহত্তর দর্শকদের জন্য খাঁটি সিতে লিখেছি।
ডিগ্রি / এলএলভিএম ৪.১ এর সাথে ঝাঁকুনি / প্রত্যেকটি আমাকে ডিফল্ট লাইনে সতর্ক করে:
স্যুইচটিতে ডিফল্ট লেবেল যা সমস্ত গণনা মানকে কভার করে
এখন, আমি এখানে বাছাই করে দেখতে পারি কেন এটি রয়েছে: নিখুঁত বিশ্বে, যুক্তিতে প্রবেশ করার একমাত্র মানগুলি theMaskএনুমে থাকবে, সুতরাং কোনও ডিফল্ট প্রয়োজন হয় না। তবে যদি কিছু হ্যাক আসে এবং আমার সুন্দর ফাংশনে একটি অবিশ্রুত প্রান্ত ছুড়ে দেয় তবে কী হবে? আমার ফাংশনটি লাইব্রেরির ড্রপ হিসাবে সরবরাহ করা হবে এবং সেখানে কী যেতে পারে তার উপর আমার কোনও নিয়ন্ত্রণ নেই। ব্যবহার করা defaultএটি পরিচালনা করার খুব পরিষ্কার উপায়।
এলএলভিএম দেবতারা এই আচরণকে তাদের নরকীয় ডিভাইসের পক্ষে অযোগ্য বলে কেন মনে করেন? যুক্তিটি যাচাই করার জন্য যদি আমি একটি বিবৃতি দ্বারা এটি করা উচিত?
-Weverythingদরকারী হতে পারে, তবে এটি মোকাবেলা করার জন্য আপনার কোডটিকে খুব বেশি পরিবর্তন করার বিষয়ে সতর্ক হন। এই সতর্কতাগুলির মধ্যে কয়েকটি কেবল মূল্যহীন নয়, পাল্টা উত্পাদনশীল এবং সেরাভাবে বন্ধ রয়েছে। (প্রকৃতপক্ষে, -Weverythingএটির জন্য ব্যবহারের ক্ষেত্রে : এটি শুরু করুন, এবং যা বোঝায় না তা বন্ধ করুন
"Pro tip: Try setting the -Weverything flag and checking the “Treat Warnings as Errors” box your build settings. This turns on Hard Mode in Xcode."।