当前位置:编程学习 > C/C++ >>

C++ sizeof一个类 为什么字节数不对啊!

#include<iostream>
using namespace std;


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的具体实现细节做什么呢?  依赖这些细节的话,虽然可能写出来令人惊异的东西,  但应该是及其不可移植的。

上一个:c++有类似myeclips 的智能开发软件吗
下一个:谁能讲一下C++中的类“CWnd”?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,