روبلساها
ملصق أصلي- 22 ديسمبر 2008
- 8 يناير 2009
أنا أستخدم هذا المقتطف من التعليمات البرمجية
باطل * مقبض _ ؛
إذا (handle_ = 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 ('.................') ؛
}
لكني أتلقى التحذير:
اقترح أقواسًا حول المهمة المستخدمة كقيمة حقيقية للسطر الأول i ، e في حلقة 'for' .... هل يمكن لأي شخص مساعدتي في التخلص من هذا التحذير .. إلى
kpua
- 25 يوليو 2006
- 8 يناير 2009
ومع ذلك ، في بعض الأحيان تكون أبسط طريقة لتشفير ما تعنيه (على الرغم من أنني لا أعتقد أنها في مثالك بالضرورة). عندما يكون لديك واجب في عبارة if ، يتوقع GCC عمومًا شيئًا مثل هذا:
الكود:
if ( (foo = bar()) != NULL )
لاحظ الأقواس الزائدة حول المهمة. يقترح GCC استخدام الأقواس لتجنب الخطأ التالي:
الكود:
if ( foo = bar() != NULL )
التي لن تتحقق من أن القيمة المعينة لـ foo تساوي NULL ، بل تقوم بتعيين قيمة منطقية (bar ()! = NULL) إلى foo.
من المعتاد أيضًا وبشكل عام أن يكون لديك التحقق المنطقي الصريح هناك ، ولهذا السبب تتوقع دول مجلس التعاون الخليجي ذلك. س
ساندر
إلى
- 24 أبريل 2008
- 9 يناير 2009
الكود:
if (a = b) {...}
هو الصحيح C (عيّن b لـ a وتحقق من عدم الصفر) ، ولكن غالبًا ما يقصده الناس حقًا
الكود:
if (a == b) {...}
نظرًا لأن التخصيص داخل if () هو الاستثناء ، يصدر GCC تحذيرًا بشأنه. أيضًا للقراء المستقبليين لشفرتك ، تشير الأقواس الزائدة إلى 'نعم ، أعني حقًا التعيين هنا'.
المشاركات الشعبية