rublesaha
Áp phích gốc- Ngày 22 tháng 12 năm 2008
- Ngày 8 tháng 1 năm 2009
Tôi đang sử dụng đoạn mã này
void * xử lý_;
if (handle_ = dlopen ('/ System / Library / Frameworks / DiskArbitration.Framework / Versions / A / DiskArbitration', RTLD_NOW))
{
printf ('............');
}
else if (handle_ = dlopen ('/ System / Library / PrivateFrameworks / DiskArbitration.Framework / Versions / A / DiskArbitration', RTLD_NOW))
{
printf ('.................');
}
Nhưng tôi nhận được cảnh báo:
'gợi ý dấu ngoặc quanh phép gán được sử dụng làm giá trị chân lý' cho dòng đầu tiên i, e cho vòng lặp 'for' .... ai đó có thể giúp tôi loại bỏ cảnh báo này .. ĐẾN
kpua
- Ngày 25 tháng 7 năm 2006
- Ngày 8 tháng 1 năm 2009
Tuy nhiên, đôi khi đó là cách đơn giản nhất để viết mã ý bạn (mặc dù tôi không nghĩ nó nhất thiết phải có trong ví dụ của bạn). Khi bạn có một nhiệm vụ trong câu lệnh if, GCC thường mong đợi điều gì đó như sau:
Mã:
if ( (foo = bar()) != NULL )
Chú ý các dấu ngoặc đơn xung quanh bài tập. GCC đề nghị bạn sử dụng dấu ngoặc đơn để tránh lỗi sau:
Mã:
if ( foo = bar() != NULL )
điều này sẽ không kiểm tra giá trị được gán cho foo bằng NULL, mà là gán boolean (bar ()! = NULL) cho foo.
Việc kiểm tra boolean rõ ràng cũng theo thông lệ và thường rõ ràng hơn ở đó, vì vậy đó là lý do tại sao GCC mong đợi điều này. NS
Sander
đến
- Ngày 24 tháng 4 năm 2008
- Ngày 9 tháng 1 năm 2009
Mã:
if (a = b) {...}
C là đúng (gán b cho a và kiểm tra khác 0), nhưng thông thường mọi người thực sự có ý
Mã:
if (a == b) {...}
Vì phép gán bên trong if () là ngoại lệ, GCC đưa ra cảnh báo về nó. Ngoài ra, đối với những người đọc mã của bạn trong tương lai, dấu ngoặc đơn bổ sung cho biết 'có, ý tôi thực sự là nhiệm vụ ở đây'.
Bài ViếT Phổ BiếN