我有一个用于通信协议(USB 设备描述符)的数组。该协议要求数组头中的数组大小。所以我想这样做(这是被禁止的):
static uint8_t array[]= {
TYPE,
sizeof(array),
other data...
};
该数组位于内存的只读部分中,事后我无法覆盖相关的单元格,而且我也不太愿意复制它来覆盖单元格(它在最小的嵌入式系统中)。我需要它看起来像“在线”,因为它将通过 DMA。
是否有某种魔法可以解决这个限制?我愿意使用 C99 或 GNU 扩展。我不会仅仅为此而切换,但我也对 C++ 解决方案感到好奇。