gpt4 book ai didi

c - 初始化一个变量,同时指定存储地址 : is it possible?

转载 作者:太空狗 更新时间:2023-10-29 17:23:04 25 4
gpt4 key购买 nike

Atmel 处理器的 codevision 编译器中,可以指定全局变量的存储地址,例如

int a @0x100; // will place the variable at the address 0x100 in RAM

当然,按照标准C,变量可以在声明时初始化

int a=42;

但是,我没有找到同时执行这两个操作的可能性。 int a @0x100 = 42int a = 42 @0x100; 不起作用,它们会导致编译器错误。

你可能会问为什么这样做如此重要,因为一个人可以简单地拥有

int a @0x100;

int main()
{
a = 42;
//...
}

但是,如果我在EEPROM 中有变量,我需要初始化它们,因为这是自动生成包含其中值的eeprom 文件的唯一方法。我不能稍后分配这些值,因为在那种情况下,它实际上会在程序的每次启动时将值写入 eeprom。

最佳答案

看看CodeVisionAVR帮助,

“如果使用@运算符放置在特定地址的全局变量必须在声明期间初始化,则必须使用以下过程:

/* the variable will be stored in EEPROM at address 0x10 */

eeprom int abc @0x10;

/* and it will be initialized with the value 123 */

eeprom int abc=123;

关于c - 初始化一个变量,同时指定存储地址 : is it possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11771377/

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