第18 章探讨 C++新标准. 低级编程,杂项

第18 章探讨 C++新标准. 低级编程,杂项

第18 章探讨 C++新标准. 低级编程,杂项


18.7.3 低级编程

低级编程中的“低级”指的是抽象程度,而不是编程质量。低级意味着接近于计算机硬件和机器语言使用的比特和字节。对嵌入式编程和改善操作的效率而言,低级编程很重要。C++11给低级编程人员提供了一些帮助。
变化之一是放松了 POD(Plain Old Data)的要求。在 C++98中,POD是标量类型(单值类型,如 int或 double)或没有构造函数、基类、私有数据、虚函数等的老式结构。以前的理念是,POD是可安全地逐字节复制的东西。这种理念没变,但C++11认识到,在满足C++98的某些约束的情况下,仍可以是合法的POD。这有助于低级编程,因为有些低级操作(如使用C语言函数进行逐字节复制或二进制I/O)要求
处理对象为 POD。另一项修改是,允许共用体的成员有构造函数和析构函数,这让共用体更灵活;但保留了其他一些限制,如成员不能有虚函数。在需要最大程度地减少占用的内存时,通常使用共用体;上述新规则在这些情
况下给程序员有更大的灵活性和功能。C++11解决了内存对齐问题。计算机系统可能对数据在内存中的存储方式有一定的限制。例如,一个系统可能要求 double 值的内存地址为偶数,而另一个系统可能要求其起始位置为8的整数倍。要获悉有关类型或对象的对齐要求,可使用运算符alignof()(参见附录E)。要控制对齐方式,可使用说明符 alignas。constexpr 机制让编译器能够在编译阶段计算结果为常量的表达式,让 const变量可存储在只读内存中,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值