extern Time_t daytime;可是我在中断里不重新定义用不了这个结构体
时间: 2024-03-26 09:42:26 浏览: 58
【IAR】定义结构体出现的错误Error[e27]:
在中断处理函数中使用全局变量时,需要在全局变量的声明前加上`volatile`关键字,以确保编译器不会对该变量进行优化。同时,在多个文件中使用同一个全局变量时,需要在声明该变量时加上`extern`关键字,表示该变量已经在其他文件中定义。因此,如果你想在中断处理函数中使用全局的`daytime`变量,可以这样声明:
```
extern volatile Time_t daytime;
```
这样,在中断处理函数中就可以直接使用`daytime`变量,而不需要重新定义它。需要注意的是,为了避免多个中断同时访问`daytime`变量时出现竞争条件,你需要在访问该变量时进行加锁和解锁操作,以确保多个中断之间的互斥性。
阅读全文