static const INT8U DI_TBL_LEN = 1;
INT8U DI_pins_val_tbl[DI_TBL_LEN];
我使用了 const INT8U DI_TBL_LEN = 1;,即使 DI_TBL_LEN 被标记为常量,但编译器仍然认为 DI_pins_val_tbl是一个变长数组,因为 const 并不能完全保证编译时的静态确定性,所以编译器试图将其处理为变长数组,但由于它是常量值,又将其折叠为静态数组。
这种处理方式会触发警告,语法无误是编译器问题,用enum或宏定义就OK
KEIL警告Warning: variable length array folded to constant array as an extension
最新推荐文章于 2024-09-02 11:50:25 发布