This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2633:警告#1986-D:灵活阵列成员和#1238-D:忽略过量初始化值

Guru**** 1641220 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1266771/msp430fr2633-warnings-1986-d-flexible-array-member-and-1238-d-excess-initializers-are-ignored

器件型号:MSP430FR2633

大家好!
在 CCS 12.4.0.00007上编译我的项目时 ,我收到有关其上的数组的警告。

第74行:警告#1986-D:包含柔性阵列成员的元素数组不是标准数组
第78行:警告#1238-D:忽略过量初始化程序
第79行:警告#1238-D:忽略过量初始化程序
等等

下面是数组(我只包含了一些元素)

静态 const RegValue initValues []={

{0x00、{0x00}、

{0x01、{0x01}、

{0x00、{0x00}、

{0x04、{0x03、0x91、0x08、0x00、 0x00}}、

{0x0B、{0x82、0x88}}、…… 等等

我需要这个数组具有灵活性、我使用一个函数来计算元素数量并与这些元素进行交互。
我理解以下情况、请告诉我我有多错:
-这显然是一个灵活的阵列
-数组在.h 文件中声明,并填充 数组具有的元素。 不多不少。
-编译器看到这一点并确定数组的大小。

但是、编译器会说、 通过计算我声明的元素数量、元素数量不符合它所创建的列表中的要求...?

问题如下:
-是否"过多初始化程序被忽略"意味着编译器正在从数组中切出元素?
-如果 数组正在编译而没有丢失任何数据,我可以更改编译器的任何设置,以避免这些警告?

提前感谢!
古斯塔沃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好  

    请查看 ts 优化 C/C++编译器用户指南 https://www.ti.com/lit/ug/slau132r/slau132r.pdf?MSP430=1693906542269

    我想您可以尝试对项目属性进行不同的优化选项。

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、李、感谢您的回答。

    当然、我已经阅读了《 C++编译器用户指南》。
    因为我找不到与过量初始化程序或 灵活阵列成员有关的任何信息。 此外  ,与警告#1986-D 或#1238-D 无关,我在此要求进一步帮助。

    希望 TI 能照常提供。

    此致、

    古斯塔沃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Gustavo

    感谢您的反馈!

    您能帮助共享您的项目吗 ?或者您可以创建一个简单的项目来重现警告信息吗?

    我检查了文档、但无法找到关于这2个警告的更多信息

    我尝试创建一个包括阵列在内的新项目、但无法 重现 警告信息

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Li
    感谢您的快速 反应。
    我只是在思考同样的事情!
    请给我很短的时间,我会启动一个项目,并发送给你。
    此致、
    古斯塔沃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Gustavo

    谢谢! 等待项目

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Li
    这是测试项目。
    我希望您可以解决该问题。
    感谢您的帮助!
    此致、
    古斯塔沃
    e2e.ti.com/.../TEST_2D00_ARRAYS_2D00_forTi.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、 Gustavo

    我正在与我们的专家团队核实这2条警告信息  

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Li

    你有没有关于这个主题的消息?

    此致、

    古斯塔沃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Gustavo

    我已将此主题重新分配给我们的编译器团队、让我们等待专家团队的反馈。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Li
    谢谢!
    祝大家度过美好的一天。
    此致、
    古斯塔沃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我从未见过在构建时初始化灵活阵列成员的代码。  我不确定它应该是什么样的。  但我怀疑任何编译器都不支持它。  我 在编译器资源管理器中创建了这个截断示例。  我找不到生成它的编译器。

    谢谢。此致、

    -乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、George、

    感谢您的回答。

    同时,我发现了另一种用于这些灵活数组的方法,消除嵌套值并以不同的方式对其进行解析。

    阵列现在如下所示:

    静态 const char* initValues []={
    "00 00"、
    "01"、
    "00 00"、
    "04 03 91 08 00 00"、
    "0B 82 88"、
    "0D 00 80"、
    "12 82 90"、
    "14 40"、
    "7B 01"、
    "00 00"、
    "3c 02 02"、
    "00 08"、
    "24 7E F8 EB 00 81 07 15 00 7E F8 EB 00 7E F7 DD 00 82 0C 0C 00"、
    "00 09"
    };

    这现在起作用了。

    此致、再次表示感谢!
    古斯塔沃