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.

[参考译文] MSP430FR2355:无法解释的循环基本错误

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1275831/msp430fr2355-inexplicable-error-with-basic-for-loop

器件型号:MSP430FR2355

CCS 毫无理由地抛出一个针对循环迭代器的该死的错误。

    volatile unsigned short m = 40, M = 72;
    volatile unsigned int P;

    for (int i = 1; i <= M; i++) {
        P += m;
    }

当我编译时, for 循环行抛出错误29"预期的表达式"和20"标识符'i'是未定义的",即使我是 f**金在那里定义它。 更改数据类型没有帮助,也没有设置int i=0和使比较器1<M. 我必须i在 for 循环上方预先定义以清除错误。

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

    请查看 SLAU132、具体来说是第5.15节。 默认情况下、CCS 中的 C 文件按照 C89标准构建。 仅 C99及更高版本支持循环中的内联声明。 只需将迭代器声明在循环外部。

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

    好的、如何将其更改为 C99或更高版本?

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

    "Project"->"Properties"->"Build"->"MSP430 Compiler"->"Advanced Options"->"Language Options"的下拉列表,将"C dialect"设置为"compile program in C99 mode",然后点击"Apply and Close"。 请注意 SLAU132 5.15.1 "C99支持"中有关 C99支持的注意事项。

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

    很多义务。