工具/软件:
您好、
我创建了一个包含字符元素127裸体的全局缓冲区。 我已经尝试用128字节的数据填满它。 我本来期待缓冲区溢出、但实际上并没有发生、直到我没有将缓冲区缩小到126个元素。 是否仅限于在存储器中每两个字节进行这些更改? 我想进一步了解这种行为。
感谢您的答复。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
您好、
我创建了一个包含字符元素127裸体的全局缓冲区。 我已经尝试用128字节的数据填满它。 我本来期待缓冲区溢出、但实际上并没有发生、直到我没有将缓冲区缩小到126个元素。 是否仅限于在存储器中每两个字节进行这些更改? 我想进一步了解这种行为。
感谢您的答复。
我已经使用了 CCS 存储器浏览器、在函数调用后设置了制动点。 我注意到我的变量有一个名称、而不是所有数据。 这就是我注意到的变化。 我知道可能有填充字节、但它们未显示在"Memory Browser"中? 我的意思是、当我将大小设置为大约两个向上时、可以看到两个初始化为00 00的单元格。 但当我递减1时、两者都将消失。 这就是为什么我要求在某些类型的内存中使用它们可以用字而不是字节来写入。 此外、我一直将这些数据写入闪存。
好的、谢谢、我认为我可以看到 使用#pragma align 也可以修改填充。 我在修改其中的值时注意到了0x00。 我想问、默认值是多少? 因为我没有将 pragma 放入上面的示例中、但仍然以某种方式对齐。 我还可以看到.map 文件中未初始化变量的长度、如上所述、仅当大小为偶数组的大小为奇数时、该值大于由0x00填充的值才会发生变化。 我可以假设默认对齐为2吗?