首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将初始化的数组分配给TwinCAT中的数组

如何将初始化的数组分配给TwinCAT中的数组
EN

Stack Overflow用户
提问于 2021-11-05 12:56:49
回答 2查看 995关注 0票数 3

我试图将两个初始化的数组evenNumbersoddNumbers分配给一个数组integers

代码语言:javascript
运行
复制
PROGRAM ArrayInit
VAR
    evenNumbers : ARRAY[1..3] OF INT := [2, 4, 6];
    oddNumbers: ARRAY[1..3] OF INT := [1, 3, 5];
    
    integers : ARRAY[1..2] OF ARRAY[1..3] OF INT := [evenNumbers, oddNumbers];
END_VAR

这段代码给我一个编译器错误。

阵列初始化

当然,我可以用所需的数字直接初始化integers,如下所示:

代码语言:javascript
运行
复制
PROGRAM ArrayInit
VAR
    integers: ARRAY[1..2] OF ARRAY[1..3] OF INT := [
        [2, 4, 6], [1, 3, 5]
    ];
END_VAR

或者像谢尔盖提到的

代码语言:javascript
运行
复制
PROGRAM ArrayInit
VAR
    integers: ARRAY[1..2, 1..3] OF INT := [
        2, 4, 6, 1, 3, 5
    ];
END_VAR

但是,如果原始数组非常大,并且/或我想记录这些不同的数组是什么,那么最好使用描述性名称。也就是说,integers : ARRAY[1..2] OF ARRAY[1..3] OF INT := [evenNumbers, oddNumbers];很好地显示了integers有两个列表,一个有偶数,一个有奇数。

我还尝试将integers初始化为integers: ARRAY[1..2] OF ARRAY[1..3] OF INT := [[evenNumbers], [oddNumbers]];,但这给出了编译器错误:

无法将‘数组1.3’转换为'INT‘类型

现在我想知道这是否可能?如果是的话,有人知道我怎么做吗?

EN

Stack Overflow用户

发布于 2022-07-11 11:22:42

integers : ARRAY[1..2] OF ARRAY[1..3] OF INT := [evenNumbers, oddNumbers];oddNumbers是常量时,行oddNumbers可以正常工作。不能使用非常量变量初始化其他变量。

如果以后需要更改evenNumbersoddNumbers,您可以创建两个常量evenNumbersConstoddNumbersConst,并将它们用于初始化,如下所示:

代码语言:javascript
运行
复制
VAR
    evenNumbers : ARRAY[1..3] OF INT := evenNumbersConst;
    oddNumbers  : ARRAY[1..3] OF INT := oddNumbersConst;    
    integers : ARRAY[1..2] OF ARRAY[1..3] OF INT := [evenNumbersConst, oddNumbersConst];
END_VAR

VAR CONSTANT
    evenNumbersConst : ARRAY[1..3] OF INT := [2, 4, 6];
    oddNumbersConst  : ARRAY[1..3] OF INT := [1, 3, 5];
END_VAR
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69853619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档