22、高级语言中的变量优化与寻址策略

高级语言中的变量优化与寻址策略

1. 布尔变量

布尔变量仅需一位就能表示“真”或“假”两个值。在高级语言(HLL)里,通常会为这类变量预留尽可能少的内存。在支持字节寻址的机器上,是一个字节;而在只能对字或双字寻址的 CPU 上,则会预留更多内存。

不过,并非所有情况都是如此。有些语言(如 FORTRAN)允许创建多字节的布尔变量,像 FORTRAN 的 LOGICAL*4 数据类型。还有些语言(如 C)不支持显式的布尔数据类型,而是用整数数据类型来表示布尔值。在这类语言中,可以通过选择用来存储布尔值的整数大小,来确定布尔变量的大小。例如,在典型的 32 位 C/C++ 实现中,能按如下方式定义 1 字节、2 字节或 4 字节的布尔值:
| C 整数数据类型 | 布尔对象大小 |
| ---- | ---- |
| char | 1 字节 |
| short int | 2 字节 |
| long int | 4 字节 |

某些情况下,当布尔变量是记录的字段或数组的元素时,一些语言只会用一位来存储该布尔变量。

2. 变量地址与高级语言

程序中变量的组织、类别和类型,会影响编译器生成代码的效率。此外,变量的声明顺序、对象大小以及在内存中的位置,也会对程序的运行时间产生重大影响。

许多 CPU 提供了专门的寻址模式,能比其他更通用的寻址模式更高效地访问内存。就像通过精心选择常量能减小程序大小、提高运行速度一样,精心选择变量的声明方式,也能让程序更高效。不过,对于常量主要关注其值,而对于变量,则必须考虑编译器将其放置在内存中的地址。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值