阿信@SYSU

求知若渴,求智若愚
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年3月17日

摘要: int,long int,short int的宽度是随着编译器的情况而不同的。根据ANSI/ISO制订的的原则如下:1 sizeof(short int)<=sizeof(int)2 sizeof(int)<=sizeof(long int)3 short int至少应为16位(2字节)4 long int至少应为32位。编译器16位编译器32位编译器64位编译器char111char*(指针变量)248short int222int244long int448unsigned int244long long888float444double888unsigned long448u 阅读全文

posted @ 2012-03-17 01:06 阿信@SYSU 阅读(230) 评论(0) 推荐(0)

摘要: C/C++中的内存对齐(Memory Alignment)是件很有意思的事,现在分别介绍其产生的原因和具体规则,最后就是举例分析说明。产生的原因 为什么内存中需要对齐呢? 在CPU眼中,它把内存当成是一块一块的,块的大小可以是2,4,8,16字节大小,它在读取内存时也是一块一块进行读取的。同时不同的数据类型又是按照自己所占的字节数来进行存储的。 假设现在一个int型存储在0-3字节中,当CPU要读取这个int型的数据到寄存器中,就能一次过把这4个字节读到寄存器中。但是当该数据是从1字节开始存储的,问题变的有些复杂。CPU要先读取0—3字节的数据进寄存器,并再次读取4—7字节的数据进寄... 阅读全文

posted @ 2012-03-17 01:03 阿信@SYSU 阅读(223) 评论(0) 推荐(1)