为什么数组变量可能无法初始化

why array variable may not be initialized?

本文关键字:初始化 数组 变量 为什么      更新时间:2023-10-16

我有这个非常简单的代码:

uint16_t dataSize = 5;
uint8_t wdata[dataSize] = { 5, 6, 7, 8, 9 };

我收到错误消息:

variable "wdata" may not be initialized
uint8_t wdata[dataSize]

它位于扩展名为.ccp的文件中。 我还有其他具有类似语句和错误消息的测试用例文件。

代码使用gcc编译没有任何问题。 但是,Visual Studio Code C++ IntelliSense 是报告错误的代码。

DimChtz 是正确的,你不能在编译时使用变量初始化具有大小的数组。

你最好只初始化没有大小的数组:

uint16_t dataSize = 5;
uint8_t wdata[] = { 5, 6, 7, 8, 9 };

Merek R的建议被证明是解决方案:

const uint16_t dataSize = 5;
uint8_t wdata[dataSize] = { 5, 6, 7, 8, 9 };