Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures Ada-你做什么';at';和';范围';你的意思是什么? 我调试了两部分软件,一部分是C++,另一部分是艾达,我以前从未使用过。p>_Data Structures_Record_Ada - Fatal编程技术网

Data structures Ada-你做什么';at';和';范围';你的意思是什么? 我调试了两部分软件,一部分是C++,另一部分是艾达,我以前从未使用过。p>

Data structures Ada-你做什么';at';和';范围';你的意思是什么? 我调试了两部分软件,一部分是C++,另一部分是艾达,我以前从未使用过。p>,data-structures,record,ada,Data Structures,Record,Ada,在阅读一些Ada代码并查找包含特殊数据的变量时,我发现这些变量在for循环的记录中使用,例如: 供myRecord使用 记录 预计到达时间为8,范围为0。。31; ttg在16范围0。。63; 结束记录; 在IDE(GPS-GNAT编程工作室)中,at和range是粗体的,我认为这意味着它们是关键字/在Ada中有特殊的含义。。。有人能给我解释一下这个结构是什么吗?这里的数字是否与分配给变量的内存量/它们的内存位置有关?eta从记录开始的字节偏移量8的第0位开始,并继续到第31位;i、 e.它从

在阅读一些Ada代码并查找包含特殊数据的变量时,我发现这些变量在
for
循环的
记录中使用,例如:

供myRecord使用
记录
预计到达时间为8,范围为0。。31;
ttg在16范围0。。63;
结束记录;

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

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

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


请参阅。

这些都证明了Ada在低级编程方面比大多数其他语言更好,因为指定这样的位组织对于Ada来说是微不足道的。为了完成Simon的回答,您应该在同一个包中对myRecord有一个单独的声明。感谢您的回答和评论。是的,我确实对
myRecord
有一个单独的声明-它就在我引用的代码之前,包含如下行:
eta:SystemTimeTypes.RelativeTime\u Type:=0.0在结构定义中:
类型myRecord is record
作为后续问题。。。在该记录定义的正下方有一行:
对于数据变量的大小使用129*8
这是否指定了整个记录的大小(即记录及其所有属性可以占用的内存总量)?如果记录的每个属性都已经指定了特定的大小,为什么Ada需要这样做?当然,它可以自动计算所有记录属性所使用的总内存吗?@someone2088 Ada不需要Size子句;它将为记录分配足够的空间。但有时你需要的不止这些。例如,如果记录是文件记录或套接字消息的一部分,并且文件或套接字的规范说明数据占用一定数量的位(或字节),则包含子句以确保Ada编译器分配该数量的位而不是更少的位是有帮助的。