我目前正在编程PIC微控制器。
以我的方式创建结构时,每次我尝试访问它们时,该结构变量的地址都会更改吗?
还是像静态变量一样,意味着地址是在编译时确定的,在整个程序中都不会更改? (我认为它不会改变,但我不确定。)
struct {
unsigned char age;
} arda_t;
答案 0 :(得分:0)
仅在在全局范围内声明时,它是静态的(位于设置的内存地址)。内存地址由链接器决定,并保持不变。
您说过该结构被声明为“使用回调”,这意味着您在函数中声明了此变量。在这种情况下,每次调用该函数时,其地址可能会有所不同,因为在该函数的生命周期内,该变量仅“存在”。
如果您希望回调/中断访问已存在的变量,则可以将该变量设置为全局变量(适用于整个程序)或静态全局变量(仅适用于该文件)。