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

时间:2019-02-13 12:57:38

标签: c embedded microcontroller pic

我目前正在编程PIC微控制器。

以我的方式创建结构时,每次我尝试访问它们时,该结构变量的地址都会更改吗?

还是像静态变量一样,意味着地址是在编译时确定的,在整个程序中都不会更改? (我认为它不会改变,但我不确定。)

struct {
   unsigned char age;
} arda_t;

1 个答案:

答案 0 :(得分:0)

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

您说过该结构被声明为“使用回调”,这意味着您在函数中声明了此变量。在这种情况下,每次调用该函数时,其地址可能会有所不同,因为在该函数的生命周期内,该变量仅“存在”。

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