低级编程

相对于高级编程而言,低级编程更加依赖于硬件,它往往指位和字节级别的编程,主要应用于嵌入式编程,也可用来提升程序效能。
POD(Plain Old Data),简单的旧数据,指标量、没有构造函数的旧式结构体、基类、私有数据、虚拟函数等。POD在以字节为单位进行复制这方面来说是安全的。C++11可以把应用旧标准C++98而开发出来的程序去除一些限制但仍然保留POD特性以便于以字节进行复制。
共用体也发生了变化。C++11允许共用体带有构造函数和析构函数,在其他方面也添加了新的限制,比如说不允许虚拟函数。共用体经常用于最小化内存占用。
C++11中的内存对齐。alignof操作符提供了对某种类型在内存对齐方面的说明。Alignas可以用于控制内存对齐。
Constexpr机制允许编译器把一个编译期表达式计算成为一个常量值。在低级编程方面这个机制允许const量存储在只读内存区,这一点在嵌入式编程中尤其有用。无论是不是const变量,只要这个变量在运行期被初始化的,都存储在内存的随机存储区中。
C语言中的stdint.h和C++中的cstdint支持扩展类型。
C++11支持二进制标签,这个标签可以通过标签操作符转换成一个整型值。
C++11提供了static_assert用于测试编译期表达式的真假,这类似于assert,但与之不同,assert用于判断运行期的表达式。Static_assert主要用于简化编译期发生的模版的实例的调试工作。
C++11还支持元编程。关于这一点Effective C++中曾提过模版元编程。

你可能感兴趣的:(低级编程)