অন্যান্য

ম্যাক সতর্কীকরণ: সত্য মান হিসাবে ব্যবহৃত অ্যাসাইনমেন্টের চারপাশে বন্ধনীর পরামর্শ দিন

আর

রুবেলসহ

আসল পোস্টার
22 ডিসেম্বর, 2008
  • 8 জানুয়ারী, 2009
ওহে
আমি কোড এই স্নিপেট ব্যবহার করছি

অকার্যকর * হ্যান্ডেল_;

যদি (হ্যান্ডেল_ =dlopen('/System/Library/Frameworks/DiskArbitration. Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('............');

}
অন্যথায় যদি (handle_ =dlopen('/System/Library/PrivateFrameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('.................');
}

কিন্তু আমি সতর্কতা পাচ্ছি:
'সত্য মান হিসাবে ব্যবহৃত অ্যাসাইনমেন্টের চারপাশে বন্ধনী সাজেস্ট করুন' প্রথম লাইনের জন্য, যেমন 'ফর' লুপের জন্য.... কেউ কি আমাকে এই সতর্কতা থেকে পরিত্রাণ পেতে সাহায্য করতে পারেন.. প্রতি

kpua

25 জুলাই, 2006


  • 8 জানুয়ারী, 2009
প্রথমত, if() স্টেটমেন্টে পার্শ্বপ্রতিক্রিয়া থাকা সাধারণত খারাপ।

যাইহোক, কখনও কখনও আপনি যা বোঝাতে চান তা কোড করার সবচেয়ে সহজ উপায় (যদিও আমি মনে করি না এটি আপনার উদাহরণে অগত্যা)। আপনার যদি একটি if স্টেটমেন্টে একটি অ্যাসাইনমেন্ট থাকে, GCC সাধারণত এরকম কিছু আশা করে:

কোড: |_+_|
অ্যাসাইনমেন্টের চারপাশে অতিরিক্ত বন্ধনী লক্ষ্য করুন। GCC আপনাকে নিম্নলিখিত ত্রুটি এড়াতে বন্ধনী ব্যবহার করার পরামর্শ দেয়:

কোড: |_+_|
যা foo-এর জন্য নির্ধারিত মান NULL এর সমান হওয়ার জন্য পরীক্ষা করবে না, বরং foo-তে বুলিয়ান (bar() != NULL) বরাদ্দ করবে।

এটি প্রথাগত এবং সাধারণত সেখানে স্পষ্ট বুলিয়ান চেক করা আরও স্পষ্ট, তাই GCC এটি আশা করে। এস

স্যান্ডার

প্রতি
24 এপ্রিল, 2008
  • জানুয়ারী 9, 2009
এর কারণও বয়ান

কোড: |_+_|
সঠিক সি (a কে b বরাদ্দ করুন এবং অ-শূন্যের জন্য চেক করুন), কিন্তু প্রায়শই লোকেরা সত্যিই বোঝায়

কোড: |_+_|
যেহেতু if() এর ভিতরে অ্যাসাইনমেন্ট ব্যতিক্রম, তাই GCC এটি সম্পর্কে একটি সতর্কতা জারি করে। এছাড়াও আপনার কোডের ভবিষ্যত পাঠকদের জন্য, অতিরিক্ত বন্ধনী নির্দেশ করে 'হ্যাঁ, আমি সত্যিই এখানে অ্যাসাইনমেন্ট বলতে চাই'।