30/09/2018, 19:02
Một đố vui nhỏ về C/C++
Như mọi người biết là trong C/C++ có kiểu INT. Một kiểu thay đổi giá trị theo số bit của CPU. (16bit thì 2bytes, 32bit thì 4bytes,…)
Vậy đố mọi người #define INT_MAX sao cho phù hợp với mọi CPU với kết quả luôn đúng
(Như CPU 16bit thì trả về ~32k, 32bit thì ~2 tỷ )
Bài liên quan
Triệu hồi @ltd …
Có thể dùng sizeof để dùng hoặc thông qua dữ liệu khác
#define UINT_MAX ((unsigned int)(~0))
#define INT_MAX ((int)UINT_MAX>>1)
Sizeof(int) được không nhể. Trong C vẫn làm vậy.
Của gió là đúng rồi :))
Hoặc không thì chỉ cần ghi 1 dòng
#define INT_MAX (int)(~0U>>1)
‘3’ Vẫn chờ các cách khác.