อื่น

Mac Warning :แนะนำวงเล็บรอบงานที่ใช้เป็นค่าความจริง

NS

rublesaha

โปสเตอร์ต้นฉบับ
22 ธ.ค. 2551
  • 8 ม.ค. 2552
สวัสดี
ฉันกำลังใช้ตัวอย่างโค้ดนี้

เป็นโมฆะ * handle_;

if (handle_ =dlopen('/System/Library/Frameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('............');

}
อื่น if (handle_ =dlopen('/System/Library/PrivateFrameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('.................');
}

แต่ฉันได้รับคำเตือน:
'แนะนำวงเล็บรอบ ๆ การมอบหมายที่ใช้เป็นค่าความจริง' สำหรับบรรทัดแรก i,e สำหรับลูป 'for'.... ใครสามารถช่วยฉันกำจัดคำเตือนนี้ .. ถึง

ปัว

25 ก.ค. 2549


  • 8 ม.ค. 2552
อย่างแรกเลย โดยทั่วไปแล้ว รูปแบบที่ไม่ดีที่จะมีผลข้างเคียงในคำสั่ง if()

อย่างไรก็ตาม บางครั้งมันเป็นวิธีที่ง่ายที่สุดในการเขียนโค้ดในสิ่งที่คุณหมายถึง (แม้ว่าฉันจะไม่คิดว่ามันจะอยู่ในตัวอย่างของคุณก็ตาม) เมื่อคุณได้รับมอบหมายงานในคำสั่ง if โดยทั่วไป GCC จะคาดหวังสิ่งนี้:

รหัส: |_+_|
สังเกตวงเล็บพิเศษรอบงาน GCC แนะนำให้คุณใช้วงเล็บเพื่อหลีกเลี่ยงข้อผิดพลาดต่อไปนี้:

รหัส: |_+_|
ซึ่งจะไม่ตรวจสอบค่าที่กำหนดให้กับ foo ว่าเท่ากับ NULL แต่ให้กำหนดบูลีน (bar() != NULL) ให้กับ foo

เป็นเรื่องปกติและโดยทั่วไปแล้วจะมีการตรวจสอบบูลีนที่ชัดเจน ดังนั้น GCC จึงคาดหวังสิ่งนี้ NS

แซนเดอร์

ถึง
24 เม.ย. 2551
  • 9 ม.ค. 2552
ก็เพราะว่าคำสั่ง

รหัส: |_+_|
ถูกต้อง C (กำหนด b ให้กับ a และตรวจสอบว่าไม่ใช่ศูนย์) แต่คนส่วนใหญ่มักหมายถึง

รหัส: |_+_|
เนื่องจากการมอบหมายภายใน if() เป็นข้อยกเว้น GCC จะออกคำเตือนเกี่ยวกับเรื่องนี้ นอกจากนี้ สำหรับผู้อ่านโค้ดของคุณในอนาคต วงเล็บเพิ่มเติมระบุว่า 'ใช่ ฉันหมายถึงการมอบหมายที่นี่จริงๆ'