CSAPP第三章(续)

联合(Union)是一种特殊的C语言数据类型,允许在相同内存空间中存储不同数据类型,但一次只能存储一个。数据对齐是编程中的一个重要概念,影响内存使用和效率。void*是一个通用指针类型,用于不同类型的指针转换。文章还涉及了函数指针、GDB调试工具以及浮点数的处理和运算。
摘要由CSDN通过智能技术生成

目录

联合 union 从来没见过捏

联合(union)是一种数据类型,特点是:

数据对齐

 对齐规则

在机器级程序中将控制与数据结合起来

void* 特殊指针

指针类型的强制转换

 函数指针


要记得东西实在太多了,分出来一些

联合 union 从来没见过捏

书 p186

 

联合(union)是一种数据类型,特点是:


  (1)能在同一个存储空间中储存不同的数据类型(注意不是同时存储)

  (2)联合只能储存一个值,这一点与结构是不同的。

  (3)在联合中,一次只储存一个值,即使有足够的空间,也不能同时储存多个值。例如同时存储一个char类型值和一个int类型的值。所以说,在设计编写程序时,就需要明确注意当前储存在联合中的数据类型。

  (4)编译器需分配足够的空间以便能储存联合声明中占用最大字节的类型

数据对齐

 对齐规则

 对于无法满足对齐条件的,编译器会在字段的分配中插入间隙,或者在字段的末尾进行填充

书上讲得一点都不清楚

参考数据对齐详解 - bakari - 博客园

在机器级程序中将控制与数据结合起来

void* 特殊指针

指针类型的强制转换

 函数指针

GDB调试器

 GDB的扩展DDD有图形界面

浮点代码

 

 浮点传送和转换操作

 

 过程中的浮点代码

 浮点运算操作

 在浮点代码中进行位级操作

 浮点比较操作

 条件码的设置如下

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值