Ada 编程/编译指示/Pack:3
外观
重要的是要认识到,编译指示 Pack 不应该用于指定数据类型的精确表示,而是帮助编译器提高生成代码的效率。[1] 编译器可以自由地忽略此编译指示,因此如果需要类型的特定表示,应该使用 表示子句(记录表示子句,或属性 'Size 或 'Component_Size)。
虽然在 Ada 83 中,打包的布尔数组用于位操作,[2] 但自 Ada 95 以来,模类型 更适合这些操作。[3] 论点可以权衡命名布尔数组索引的优点,例如Traffic_Lights'(Red => True,others
=> False),取决于用例。
- ↑ Adam Beneschan (2008-01-09). "Pragma Pack vs. Convention C, portability issue?". comp.lang.ada. (网络链接). Retrieved on 2008-05-27.
- ↑ Software Productivity Consortium (October 1995). Ada 95 Quality and Style Guide, "10.5.7 Packed Boolean Array Shifts"
- ↑ Software Productivity Consortium (October 1995). Ada 95 Quality and Style Guide, "10.6.3 Bit Operations on Modular Types"