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, intsẽ đủ 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 __int64loại có thể có ý nghĩa hơn.
Điều này longnằm ở giữa và chúng tôi đang xem xét hoàn toàn cấm sử longdụ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 longmã 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 .)
longlà cách duy nhất để đảm bảo 32 bit. intcó 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.
intvẫ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 Độ.