C++ 是否有必要在为Windows和Linux编写的程序中处理长数据类型?
根据64位系统中的cpp参考:C++ 是否有必要在为Windows和Linux编写的程序中处理长数据类型?,c++,C++,根据64位系统中的cpp参考: LLP64 or 4/4/8 (int and long are 32-bit, pointer is 64-bit) Win64 API LP64 or 4/8/8 (int is 32-bit, long and pointer are 64-bit) Unix and Unix-like systems (Linux, Mac OS X) 如何考虑为Linux和Windows编写的代码的长数据类型?p>
LLP64 or 4/4/8 (int and long are 32-bit, pointer is 64-bit)
Win64 API
LP64 or 4/8/8 (int is 32-bit, long and pointer are 64-bit)
Unix and Unix-like systems (Linux, Mac OS X)
如何考虑为Linux和Windows编写的代码的长数据类型?p>
<> LI>在C和C++中,在可移植代码中,您永远不知道像“代码> int <代码> >或<代码> long int < />代码的大小。如果将代码移动到不同的编译器(或不同的机器,或不同的操作系统),某些类型的大小可能会改变。这不一定是个问题;事实上,这只是一个问题,如果你想让它成为一个问题。(所有这些都是事实,与某人对“LLP64”和“LP64”体系结构系列的定义无关。)
中的int32\u t
和uint64\u t
(或C中的
)之类的类型
中的int32\u t
和uint64\u t
(或C中的
)之类的类型这完全取决于你对这些数据做了什么。。。这个问题似乎不清楚。语言标准保证
long
至少为32位;你不能指望更多。“有必要小心吗”,“如何考虑”--请你不要那么含糊不清好吗?@Keith Thompson,阅读回答中的评论,也许这会帮助你理解问题不,问题本身需要更清楚。具体取决于你对这些数据做了什么。。。这个问题似乎不清楚。语言标准保证long
至少为32位;你不能指望更多。“有必要小心吗”,“如何考虑”--请你不要那么含糊不清好吗?@Keith Thompson,阅读回答中的评论,也许这会帮助你理解问题不,问题本身需要更清楚。我不是在说C,这里考虑的是程序纯C++,ToBi303没有首先注意到C++标签,答案是更新的。我们应该<代码> <代码> >代码> <代码>。如果是C++,你应该使用<代码>包含< /Calp> @ NaNaOLIVER:不,这就是#include
@NathanOliver:不,这就是int\u至少32\u t
的用途int32\u t
保证为32位,如果平台不支持32位类型,则int32\u t
不存在。