gpt4 book ai didi

c - 强制 GCC 放弃将某些全局变量归零

转载 作者:太空狗 更新时间:2023-10-29 17:08:56 27 4
gpt4 key购买 nike

有什么方法可以告诉 GCC 不要将特定的全局数组初始化为零吗?

我想保留一大块内存来存储我的代码管理的大型数据结构,所以我说:

#define SIZE_16_MB 0x01000000
BYTE mChunkSpace[SIZE_16_MB];

问题是 crtinit() 需要一百万年才能将这个空间初始化为零,而且根本没有必要。

有什么办法可以强制它不初始化那个空间吗?

目前,我正在对链接器所知道的内存地址进行硬编码,但这并不是一种特别可靠的处理方式。

此外,这是一个缓慢的嵌入式处理器 (50MHz Microblaze),所以不要以为我在谈论 PC。确实需要很长时间才能将该空间归零。

最佳答案

您可以使用 gcc 属性将对象存储在另一个新的内存部分,例如 .noinit 内存部分。

 BYTE mChunkSpace[SIZE_16_MB] __attribute__ ((section (".noinit")));

关于c - 强制 GCC 放弃将某些全局变量归零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11180892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com