首页 > 解决方案 > 如何将全局变量放在另一个部分

问题描述

我想知道是否有一个宏可以用来将全局变量放在另一个部分中。即 my_array 将存储在 bss 中。因为它没有初始化,但我想把它放在 .data 部分。

uint8_t my_array[]; 

int main()
{
  return 1;
}

标签: cmacroscompiler-constructionglobal-variables

解决方案


如果您使用的是 gcc,则可以使用该__section__属性来设置该部分:

__attribute__((__section__(".data")))
uint8_t my_array[5];

请注意,您还需要为其设置大小,否则您只有声明而不是定义。


推荐阅读