Arrays 在Ada中,如何使用重复的数字初始化数组常量?
我需要一个820个零的数组,用于数学函数 在C语言中,我可以编写以下代码,编译器将填充数组:Arrays 在Ada中,如何使用重复的数字初始化数组常量?,arrays,constants,ada,Arrays,Constants,Ada,我需要一个820个零的数组,用于数学函数 在C语言中,我可以编写以下代码,编译器将填充数组: const float EMPTY_NUMBER_A[820] = { 0.0, }; 然而,在Ada中,这是不可能的。我真的不想硬编码820个元素为0.0。有没有办法让编译器来做这件事 type Number_A is array (1 .. 820) of Float; EMPTY_NUMBER_A : constant Number_A := ???; 使用Ada 95和GNAT。使用:
const float EMPTY_NUMBER_A[820] = { 0.0, };
然而,在Ada中,这是不可能的。我真的不想硬编码820个元素为0.0。有没有办法让编译器来做这件事
type Number_A is array (1 .. 820) of Float;
EMPTY_NUMBER_A : constant Number_A := ???;
使用Ada 95和GNAT。使用:
你确定C真的有这样的特性吗?如果希望使用0.0双倍值初始化该数组,则将整个内存区域初始化为所有零字节的系统将看起来像一个0.0双倍值的数组。如果数组是用
{3.0,}
初始化的,那么这个特性真的有效吗?比我的41行(每行20个零)要简洁得多。顺便说一句,这是非常强大的。如果你想将元素20以外的所有元素都设置为0,你可以做(20=>17.5,其他=>0.0)
,你也可以说(其他=>Ada.Numerics.Float\u Random.Random(Gen))
用随机浮点数填充。当然,您必须先设置发电机Gen
。1票赞成。这是Ada语言的功能之一,它促使我从C语言转换到Ada语言。
Empty_Number_A : constant Number_A := (others => 0.0);