1. 对C语言中的字节组织,有这样的对齐规则: (1)结构体变量的首地址能够被其最宽基本成员整除; (2)结构体每个成员相对于结构首地址的偏移量都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节; (3)结构体总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节。 2. 编译时结构体报错要注意结构体的命名不要和宏命名重复 3.对于内存较大的结构体的定义,用动态申请堆内存而不是静态局部变量申请栈内存 4.为什么计算机中负数用补码表示? (1)表示范围,原码无法表情-128 (2)大小习惯,负数用补码表示,最大的是-1,表示为1111 1111,最小的-127,表示为1000 0001,这样-127再减一就是-128,即1000 0000 (3)负数的补码,与其对应正数的补码之间的转换可以用同一种方法---求补运算来完成,简化硬件 (4)可以将减法变为加法,省去了减法器 (5)无符号及带符号的加法运算可以用同一电路完成。有符号和无符号由编译器控制,计算机要做的不过是把两个真值拿过来相加
|
|
来自: 出家人eqyi0h1n > 《C语言基础》