一个struct的大小是它所有成员大小的和
struct处理时,会增加额外的字节是边界整齐
这样做提升执行效率
结构会增加隐藏的指针
struct处理时,会增加额外的字节是边界整齐
这样做提升执行效率
结构会增加隐藏的指针
sizeof可以确定struct长度
//: C04:Sizeof.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Sizes of structs
#include "CLib.h"
#include "CppLib.h"
#include <iostream>
using namespace std;
struct A {
int i[100];
};
struct B {
void f();
};
void B::f() {}
int main() {
cout << "sizeof struct A = " << sizeof(A)
<< " bytes" << endl;
cout << "sizeof struct B = " << sizeof(B)
<< " bytes" << endl;
cout << "sizeof CStash in C = "
<< sizeof(CStash) << " bytes" << endl;
cout << "sizeof Stash in C++ = "
<< sizeof(Stash) << " bytes" << endl;
getchar();
} ///:~
第一个打印400,不同机器不一样
int 占2 字节
struct b 比较奇怪
b 没有数据成员
c不合法
对象的规则是每个对象有唯一的地址
无数据成员的结果应当有最小的非零长度
C++尽量不增加不必要的开销
输出
sizeof struct A = 400 bytes
sizeof struct B = 1 bytes
sizeof CStash in C = 16 bytes
sizeof Stash in C++ = 16 bytes