工具/软件:Code Composer Studio
我遇到了编译器优化问题:
MEM = (SBLOCK_t *)((memblocks->memoryAddress + memblocks->size);
MEM->memoryAddress = 10;
问题在于内存地址(UINT32_T)未分配。 当它为 uint16_t 时、工作正常。
几个小时后拆卸后、我认为我发现了问题:
编译器正在重新排列这行代码。 问题在于,在分配内存之前,mem->memoryAddress 未知。
那么、如何防止这种情况发生呢? 那么、如何在继续之前强制编译器分配内存。
谢谢