class wt
{
public:
char i;
int f;
char j;
};
我跟踪了一下,在内存在中,i占4个字节,f占4个字节,j占4个字节。为什么字符是4个字节?
{
public:
char i;
int f;
char j;
};
我跟踪了一下,在内存在中,i占4个字节,f占4个字节,j占4个字节。为什么字符是4个字节?
解决方案 »
- 在局域网中开发一款多画面控制系统有什么思路大家说说看小弟不胜感激!
- MAP的命名空间冲突
- 访问某个进程的寄存器和堆栈问题
- 我使用ATL创建ActiveX控件,然后嵌入到网页中,在某些电脑上出现1B6错误,不只什么原因
- 做车牌识别的请进来
- 一个关于c/c++代码混编的问题
- 如何让显示器打个吨儿--进入休眠状态?
- 那个VGS做的是不是太烂了,居然不支持P4芯片!!
- 请问怎样更新vc的include和lib目录下的库?
- SDK 编程的变量问题
- 对话框中,为什么在button上加上图标,button上的文字就没了?
- 哪位朋友晓得如何在edit box 里面获取数值信息,而且当数值信息超过一定值的时候自动出现错误提示
{
public:
char j;
char i;
int f;
};
//这样呢?
n默认=4
内存按4字节对齐
现在是32位机,所以按4字节对齐。
在64位机里,要按8字节对齐。32位机:
char i; 占4个字节
char i[2]; 占4个字节
char i[4]; 占4个字节
char i[5]; 占8个字节
char i[8]; 占8个字节
char i[10]; 占12个字节short int i; 占4个字节
short int i[2]; 占4个字节
short int i[3]; 占8个字节
short int i[4]; 占8个字节
short int i[5]; 占12个字节int i;占4个字节
int i[2];占8个字节
int i[3];占12个字节明白了吧?
请问那里来的规则我怎么没听说过?不过听起来倒是蛮有道理的