摘要: 为什么需要字节对齐? 计算机组成原理教导我们这样有助于加快计算机的取数速度,否则就得多花指令周期了。为此,编译器默认会对结构体进行处理(实际上其它地方的数据变量也是如此),让宽度为2的基本数据类型(short等)都位于能被2整除的地址上,让宽度为4的基本数据类型(int等)都位于能被4整除的地址上,以此类推。这样,两个数中间就可能需要加入填充字节,所以整个结构体的sizeof值就增长了... 阅读全文
posted @ 2012-11-17 14:01 浪里飞 阅读(2109) 评论(0) 推荐(0) 编辑
摘要: 其实理解 sizeof 只需要抓住一个要点:栈 程序存储分布有三个区域:栈、静态和动态。能够从代码直接操作的对象,包括任何类型的变量、指针,都是在栈上的;动态和静态存储区是靠栈上的指针来间接操作的。sizeof 操作符,计算的是对象在栈上的投影体积;记住这个就很多东西都很清楚了。 char const * static_string = "Hello"; sizeof(st... 阅读全文
posted @ 2012-11-17 13:59 浪里飞 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 1.strlen()用来计算指定的字符串s的长度,不包括结束字符'\0'。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值,在程序运行时计算。 原文: http://baike.baidu.com/view/736226.htm 2.s... 阅读全文
posted @ 2012-11-17 12:32 浪里飞 阅读(295) 评论(0) 推荐(0) 编辑