Trong thế giới đa nền tảng C ++ (hoặc C) ngày nay, chúng ta có :
Data model | short | int | long | long long | pointers/size_t | Sample operating systems
...
LLP64/IL32P64 16 32 32 64 64 Microsoft Windows (x86-64 and IA-64)
LP64/I32LP64 16 32 64 64 64 Most Unix and Unix-like systems, e.g. Solaris, Linux, BSD, and OS X; z/OS
...
Điều này có nghĩa là ngày nay, đối với bất kỳ số nguyên "chung" (đã ký) nào, int
sẽ đủ và vẫn có thể được sử dụng làm kiểu số nguyên mặc định khi viết mã ứng dụng C ++. Nó cũng sẽ - cho các mục đích thực tế hiện tại - có kích thước phù hợp trên các nền tảng.
Nếu một trường hợp sử dụng cần ít nhất 64 bit, ngày nay chúng ta có thể sử dụng long long
, mặc dù có thể sử dụng một trong các loại chỉ định bitness hoặc __int64
loại có thể có ý nghĩa hơn.
Điều này long
nằm ở giữa và chúng tôi đang xem xét hoàn toàn cấm sử long
dụng mã ứng dụng của chúng tôi .
Điều này sẽ có ý nghĩa , hoặc có trường hợp sử dụng long
mã C ++ (hoặc C) hiện đại phải chạy đa nền tảng không? (nền tảng là máy tính để bàn, thiết bị di động, nhưng không phải là những thứ như vi điều khiển, DSP, v.v.)
Có thể liên kết nền thú vị:
- Tiêu chuẩn C ++ cho biết kích thước của int, loại dài là gì?
- Tại sao nhóm Win64 chọn mô hình LLP64?
- Các mô hình lập trình 64-bit: Tại sao LP64? (hơi già)
- Được
long
đảm bảo tối thiểu 32 bit? (Điều này giải quyết các cuộc thảo luận bình luận dưới đây. Trả lời .)
long
là cách duy nhất để đảm bảo 32 bit. int
có thể là 16 bit nên đối với một số ứng dụng thì không đủ. Có, int
đôi khi là 16 bit trên trình biên dịch hiện đại. Vâng, mọi người viết phần mềm trên vi điều khiển. Tôi cho rằng nhiều người viết phần mềm có nhiều người dùng trên vi điều khiển hơn trên PC với sự gia tăng của các thiết bị iPhone và Android, chưa kể đến sự gia tăng của Arduinos, v.v.
int
vẫn còn rất nhiều 16 bit. Tôi ghét phải nói điều đó, nhưng nếu bạn sẽ viết về "thế giới đa nền tảng ngày nay", bạn không thể bỏ qua toàn bộ tiểu lục địa Ấn Độ.