使用来自adc外设的回调更改结构内的变量值

问题描述 投票:0回答:1

我目前正在编程PIC单片机。

当用我的方式创建结构时,每当我尝试访问它时,该结构的变量的地址是否会改变?

或者它是否像静态变量,这意味着地址是在编译时决定的,并且不会在整个程序中更改? (我认为它不会改变,但我不确定。)

struct {
   unsigned char age;
} arda_t;
c embedded microcontroller pic
1个回答
0
投票

只有在全局范围内声明时,它才是静态的(在设置的内存地址处)。内存地址由链接器决定并保持不变。

你说结构被声明为“使用回调”,意味着你在一个函数中声明了这个变量。在这种情况下,每次调用函数时,其地址可能不同,因为变量仅对该函数的生命/范围“存在”。

如果希望回调/中断访问已存在的变量,可以将该变量设置为全局(可用于整个程序)或静态全局(仅适用于该文件)。

© www.soinside.com 2019 - 2024. All rights reserved.