30/09/2018, 16:59
Do { … } while (0) — what is it good for?
do { ... } while (0) — what is it good for?
asked by
gilm
on 09:36PM - 02 Nov 08
Lâu lâu cũng gặp mấy cái define thế này, giờ mới hiểu lý do.
Bài liên quan
Em có xem một vài code người ta
define
luôn thằngfor
làF
vàwhile
làW
Link kia là nói về gì đấy bạn (lười dịch quá) sao lại while(0)
À, tức là thế này: (Dịch thoáng ý nhé)
Dùng cái này trong C thì để khi mình dùng
#define
để viết nhiều dòng lệnh thì mình có thể đặt thêm đấu;
ở cuối. Mà đặc biệt là dù trong lệnhif
thì vẫn xài được. Coi ví dụ nhéThì sẽ lỗi ngay chỗ
else
, do thiếu{}
Thậm chí nếu dùng
{}
như sau vẫn không được:Bởi vì nếu dùng
if
như thế này thì mình phải không đặt dấu;
ở cuối, mà vậy thì khó nhìn lắm.Nếu mình định nghĩa
FOO
thế nàyThì cái đoạn code tiếp theo đây lại đúng
Bài này Đạt để wiki, ai muốn đóng góp dịch lại cho hay hơn thì sửa nhé.