代码之家  ›  专栏  ›  技术社区  ›  Noble-Surfer

Ada-“at”和“range”是什么意思/做什么?

  •  3
  • Noble-Surfer  · 技术社区  · 11 年前

    我正在调试一些由两部分编写的软件,一部分用C++编写,另一部分用Ada编写,这是我以前从未使用过的。

    在阅读一些Ada代码并查找包含特定数据的变量时,我发现这些变量在 record 在一个 for 循环,例如:

    for myRecord use
        record
            eta    at    8    range    0 .. 31;
            ttg    at    16   range    0 .. 63;
        end record;
    

    这个 at range 在IDE(GPS-GNAT编程工作室)中是粗体字,我认为这意味着它们是关键字/在Ada中具有特定含义。。。有人能给我解释一下这个结构是什么吗?这里的数字是否与分配给变量的内存量/它们的内存位置有关?

    1 回复  |  直到 11 年前
        1
  •  9
  •   Simon Wright    5 年前

    eta 从记录开始的字节偏移8的位0开始,并继续到位31;i、 e.它占据从字节8开始的32位。

    类似地, ttg 从字节16位0开始占据64位。

    看见 ARM 13.5.1, Record Representation Clauses .

    推荐文章