什么是可移植性?
代码从一种体系结构移植到另外一种体系结构上的方便性
字和字长是什么?
- 字---能够由机器一次完成处理的数据
- 字长----机器的位数,如Intel i7是64位芯片,是指奔腾的字长是64位,也就是8字节
字长有什么作用?
规定了机器的字长,那么机器所对应的处理器通用寄存器、指针和long类型数据结构都应该与字长位数一样。既使物理地址空间比字长小,虚拟地址空间需要和字长一样大小。
操作系统如何规定数据类型的大小?
- ANSI C标准规定,一个char长度一定是一个字节
- Linux支持的操作系统中int类型长度是32位,short类型长度是16位
- 指针和long的长度在32位和64位系统不同
什么是数据对齐?
对齐跟数据块在内存中位置相关,如果一个变量的内存地址正好是它长度的整数倍(标准数据类型),它就称作自然对齐。
非标准数据类型怎样对齐?
- 数组--------按照基本数据类型进行对齐
- 联合体-----它包含的长度最大的数据类型能够对齐
- 结构体-----每个元素能够正确对齐
为什么要进行结构体填补操作?
为保证结构体每一个成员都能够自然对齐。
如何进行结构体填补?
调整结构体内成员变量的顺序
什么情况下不能进行结构体填补?
该结构体是某个标准的一部分或是现有代码的一部分,其成员变量的次序被定死,不可改变。
如何缩进?
通过使用制表位每次缩进8个字符长度
如何使用空格?
空格放在关键字周围,函数名和圆括号之间无空格。
如何使用花括号{}?
左括号紧跟在语句最后,与语句在同一行。右括号新起一行,作为该行的第一个字符。
命名规范有哪些内容?
选择包含描述性内容的名称,并使用小写字母,必要时加上下划线区分单词。