两个编译器一个是VS2015,一个是MinGW64(GCC6.3)
#include <iostream>
using namespace std;
int main()
{
cout<<"Size of char="<<sizeof(char)<<endl;
cout<<"Size of pointer="<<sizeof(char*)<<endl;
cout<<"Size of short="<<sizeof(short)<<endl;
cout<<"Size of int="<<sizeof(int)<<endl;
cout<<"Size of long="<<sizeof(long)<<endl;
cout<<"Size of long long="<<sizeof(long long)<<endl;
cout<<"Size of float="<<sizeof(float)<<endl;
cout<<"Size of double="<<sizeof(double)<<endl;
cout<<"Size of long long="<<sizeof(long long)<<endl;
return 0;
}
VS编译运行结果:
32位:
Size of char=1
Size of pointer=4
Size of short=2
Size of int=4
Size of long=4
Size of long long=8
Size of float=4
Size of double=8
Size of long long=8
64位:
Size of char=1
Size of pointer=8
Size of short=2
Size of int=4
Size of long=4
Size of long long=8
Size of float=4
Size of double=8
Size of long long=8
下面是GCC6.3.0(mingw64),linux下long的大小为:32位程序--4字节,64位程序--8字节,windows不能通过long的大小来判断程序是32位还是64位,这是linux和windows差异之一。
GCC(mingw64):
32位:
Size of char=1
Size of pointer=4
Size of short=2
Size of int=4
Size of long=4
Size of long long=8
Size of float=4
Size of double=8
Size of long long=8
64位:
Size of char=1
Size of pointer=8
Size of short=2
Size of int=4
Size of long=4
Size of long long=8
Size of float=4
Size of double=8
Size of long long=8
GCC(linux):
32位:
Size of char=1
Size of pointer=4
Size of short=2
Size of int=4
Size of long=4
Size of long long=8
Size of float=4
Size of double=8
Size of long long=8
64位:
Size of char=1
Size of pointer=8
Size of short=2
Size of int=4
Size of long=8
Size of long long=8
Size of float=4
Size of double=8
Size of long long=8