【发布时间】:2013-10-22 13:53:30
【问题描述】:
我正在使用 IAR Systems 的 EWARM 6.6,但出现以下我无法解释的编译错误。
void testFunc(uint8_t* buf, uint8_t length)
{
struct
{
uint8_t start;
uint8_t data[length];
uint8_t stop;
}longframe;
longframe.start = 1;
memcpy( longframe.data, buf, length );
longframe.stop = 2;
}
编译器抛出错误消息:“Error[Pe028]: expression must have a constant value”。如果将变量声明为静态或全局变量,这是可以接受的,但在这种情况下,我不知道。我用 GCC 编译器尝试了相同的代码,它运行良好。有人有什么想法吗?
被批评的部分是结构中数据的长度。它说长度必须是恒定的。
【问题讨论】:
-
欢迎来到 SO!错误是否指向特定的代码行?
标签: iar