跳转到内容

Ada 编程/编译指示/Pack:3

来自维基教科书,开放的书籍,开放的世界

精确数据表示

[编辑 | 编辑源代码]

重要的是要认识到,编译指示 Pack 不应该用于指定数据类型的精确表示,而是帮助编译器提高生成代码的效率。[1] 编译器可以自由地忽略此编译指示,因此如果需要类型的特定表示,应该使用 表示子句(记录表示子句,或属性 'Size'Component_Size)。

位操作

[编辑 | 编辑源代码]

虽然在 Ada 83 中,打包的布尔数组用于位操作,[2] 但自 Ada 95 以来,模类型 更适合这些操作。[3] 论点可以权衡命名布尔数组索引的优点,例如Traffic_Lights'(Red => True,others => False),取决于用例。

  1. Adam Beneschan (2008-01-09). "Pragma Pack vs. Convention C, portability issue?". comp.lang.ada. (网络链接). Retrieved on 2008-05-27.
  2. Software Productivity Consortium (October 1995). Ada 95 Quality and Style Guide, "10.5.7 Packed Boolean Array Shifts"
  3. Software Productivity Consortium (October 1995). Ada 95 Quality and Style Guide, "10.6.3 Bit Operations on Modular Types"
华夏公益教科书