在 C 中,我如何将 const 修饰符(或任何其他修饰符)添加到全局多维数组,以便变量和它保存的值都是常量。

例如,我将如何为此添加 const 修饰符:

byte fruitIds[][2] = { { 0x01, 0x02}, {0x02, 0x03} }

所以在任务结束时你不能这样做:
fruitIds = vegetableIds;

或这个:
fruitIds[0] = {0x02, 0x03};

或这个:
fruitIds[0][0] = 0x02;

最佳答案

数组已经是不可修改的左值。这只是意味着您需要将值设为 const :

const byte fruitIds[][2] = { { 0x01, 0x02}, { 0x02, 0x03} };

您帖子中的这些作业:
fruitIds = vegetableIds;
fruitIds[0] = {0x02, 0x03};

已经违法了。后者甚至不是有效的语法,但我从尝试执行前者的 read-only variable is not assignable 收到 clang 消息。

关于const 多维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14616750/

10-12 14:28