我正在调试一些由两部分编写的软件,一部分用C++编写,另一部分用Ada编写,这是我以前从未使用过的。
在阅读一些Ada代码并查找包含特定数据的变量时,我发现这些变量在 record 在一个 for 循环,例如:
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中具有特定含义。。。有人能给我解释一下这个结构是什么吗?这里的数字是否与分配给变量的内存量/它们的内存位置有关?
at
range
eta 从记录开始的字节偏移8的位0开始,并继续到位31;i、 e.它占据从字节8开始的32位。
eta
类似地, ttg 从字节16位0开始占据64位。
ttg
看见 ARM 13.5.1, Record Representation Clauses .