Code::Blocks vẫn có chuẩn C++11 và mới nhất là C++14 nha bạn, chỉ là nó mặc định xài C++98 thôi.
Để cho compiler biết mình viết code theo chuẩn nào, bạn vào Settings ⇒ Compiler… Nó hiện ra cửa sổ có 1 cái bảng. Bạn đánh dấu tick vào ô có nội dung bên trái là Have g++ follow the C++14 ISO C++ language standard để theo chuẩn C++14 hoặc Have g++ follow the C++11 ISO C++ language standard để theo chuẩn C++11.
ban đầu ASCII chỉ có 7-bit, nhưng kiểu char có 8-bit, thành ra dư 128 giá trị :V Dần dà người ta tìm cách sử dụng luôn 128 giá trị dư ra này, nhưng mỗi nước lại gán 128 giá trị đó cho 1 ký tự khác nhau :V :V :V Chỉ có 7-bit đầu tiên (giá trị 0-127) là có chuẩn, còn 128 giá trị thêm vào thì ko có quy chuẩn nào hết, mỗi nước mỗi khác :V Ví dụ cái hình trong wiki thì giá trị 255 lại là ÿ, còn cái hình của trang asciitable.com lại là khoảng trắng (no-break space, alt code là alt+255 :V)
edit: code page hiện tại của em chắc đang là 437 :V em thử chạy chcp 1252 rồi chạy lại chương trình của em sẽ thấy nó hiện UINT8_MAX là ÿ :V
edit: em muốn in ra giá trị thì cast nó về int: (int)INT8_MAX và (int)UINT8_MAX
edit: lỗi chắc là ở ông MSVC :V Đa số người ta define INT8_MAX là 127 hoặc 0x7f, UINT8_MAX là 255 hoặc 0xff, còn ông MSVC thì đi gán là 127i8 và 0xffui8@_@ nên mới bị cast về char và unsigned char như thế kia, mấy trình dịch khác như mingw toàn in ra số :V
Vì dùng kiểu này không cần biết long là mấy byte cứ thế mà dịch
Thật ra kích thước các kiểu nguyên không giống nhau giữa các trình biên dịch, ban đầu không muốn siết lại để chương trình phù hợp với một kiến trúc cụ thể.
Em chào anh chị.
Anh chị có thể giải thích cho em sao mình phải gán min_value = MAX và max_value = MIN vậy ạ .
Em đọc hoài mà vẫn không hiểu .
Em cảm ơn mọi người.
Hãy suy nghĩ ngược lại, vậy theo bạn thì nên khởi tạo giá trị nào cho min_value và max_value? Hay là không gán gì cả (vậy thì min_value, max_value là bao nhiêu?)? Rồi lấy 1 vài ví dụ cụ thể để xem có gì xảy ra không?
Spoiler
Đọc kỹ là thấy có giải thích sẵn trong bài gốc rồi…