Ada 阵列初始化方法和内存中存储模式的差异

Ada 阵列初始化方法和内存中存储模式的差异,ada,Ada,我是Ada编程新手,所以对数组初始化没有什么疑问,我无法理解。请让我知道您的意见: 类型故障\u db为 记录 Det_位:整数_16; Det_faults:faults_set.set_init_type(1..12); 结束记录; 类型故障\u db\u数组是故障\u db的数组(故障\u类型。故障\u模式\u类型); 初始化Det_故障时,下面显示的初始化选项是否会导致相同或不同的存储模式: Det_faults=>faults_set.set_init_type'(1..1=>Fau

我是Ada编程新手,所以对数组初始化没有什么疑问,我无法理解。请让我知道您的意见:

类型故障\u db为
记录
Det_位:整数_16;
Det_faults:faults_set.set_init_type(1..12);
结束记录;
类型故障\u db\u数组是故障\u db的数组(故障\u类型。故障\u模式\u类型);
初始化Det_故障时,下面显示的初始化选项是否会导致相同或不同的存储模式:

Det_faults=>faults_set.set_init_type'(1..1=>Fault_types.Fault_1),

Det_faults=>faults_set.set_init_type'(Fault_types.Fault_1),
同样,以下这些初始化是否相同,请评论

Detected\u mask=>Faults\u set.set\u init\u type'(1=>Fault\u types.Fault\u 1,
2=>故障类型。故障类型2,
3..12=>故障类型。故障3)
或
Detected\u mask=>Faults\u set.set\u init\u type'(Fault\u types.Fault\u 1,
故障类型。故障类型2,
其他=>故障类型。故障类型3)
根据我对各种Ada资源的理解,两者应该是相同的,因为在声明时我提到的是
Det\u faults的范围:faults\u set.set\u init\u type(1..12)但是,我想知道是否有任何差异

提前谢谢

Det_faults => Faults_set.Set_init_type'(1..1 => Fault_types.FAULT_1),
OR
Det_faults => Faults_set.Set_init_type'(Fault_types.FAULT_1),
这两个都不会编译,因为
Det_faults
是一个包含12个元素的数组

Detected_mask => Faults_set.Set_init_type'(1 => Fault_types.Fault_1,
                                           2 => Fault_types.Fault_2,
                                           3..12 => Fault_types.Fault_3)

OR

Detected_mask => Faults_set.Set_init_type'(Fault_types.Fault_1,
                                           Fault_types.Fault_2,
                                           others => Fault_types.Fault_3)
这些将具有相同的效果(假设,即当您说
检测到的\u掩码
时,您的意思是
检测到故障

这两个都不会编译,因为
Det_faults
是一个包含12个元素的数组

Detected_mask => Faults_set.Set_init_type'(1 => Fault_types.Fault_1,
                                           2 => Fault_types.Fault_2,
                                           3..12 => Fault_types.Fault_3)

OR

Detected_mask => Faults_set.Set_init_type'(Fault_types.Fault_1,
                                           Fault_types.Fault_2,
                                           others => Fault_types.Fault_3)

这些将具有相同的效果(假设,即,当您说
检测到的\u掩码
时,您的意思是
检测故障
)。

为了完整性,您应该向我们展示
故障集.set\u init\u type
的定义。虽然您的问题是关于初始化的,但不清楚您试图实现什么。显示的代码片段包含严重的语法错误。你能发布一些编译时没有错误或警告的东西吗?为了完整起见,你应该向我们展示
错误集。set\u init\u type
的定义。虽然你的问题是关于初始化的,但不清楚你想实现什么。显示的代码片段包含严重的语法错误。你能发布一些编译时没有错误或警告的东西吗?