C++ sizeof一个类 为什么字节数不对啊!
#include<iostream>using namespace std;
int main()
{
class fucs
{
double too[2];
int god;
};
cout<<sizeof(fucs)<<endl;
return 0;
}
为什么字节数不对 ?
追问:两个double 是八个字节 一个整形是四个字节 加起来应该是12个字节啊!
int main()
{
class fucs
{
double too[2];
int god;
};
cout<<sizeof(fucs)<<endl;
return 0;
}
为什么字节数不对 ?
追问:两个double 是八个字节 一个整形是四个字节 加起来应该是12个字节啊!
答案:这个你要看看内存分配方面的知识,在此类中double类型占8个字节,int类型占四个字节,但在系统分配的时候会采用内存按最大字节对齐的原则,即按double类型的8个字节对齐,故结果是16个字节不知道楼主用的是什么编译器
假定楼主用的是VC++
double 是8字节
int 是4字节
那么两个double 就是16字节
那么这个类按照一般来说就是20字节
但是VC会有数据对齐原则
也就是说楼主显示的应该是24字节
不知道我说的对不对
没有不对啊
你得到什么结果
想知道一个wstring对象存储的内容的字节数很简单,? 大体上字符数量乘以2就行了,想更保险的话,这样: C/C++?code wstring?strTest(L"hello你好"); size_t?szBytes?=?strTest.size()?*?sizeof(std::wstring::value_type)?; 但是我不清楚LZ这样做的目的是什么,说说你的目的, 或许能得到更多帮助。 另外,你了解VS2008的具体实现细节做什么呢? 依赖这些细节的话,虽然可能写出来令人惊异的东西, 但应该是及其不可移植的。