可以声明 volatile extern的变量吗
时间: 2024-09-14 07:05:30 浏览: 45
const extern static volatile 小结
在C语言中,关键字`volatile`和`extern`具有不同的用途,它们可以一起用于声明变量,但是具体的含义和用途如下:
1. `extern`关键字用于声明一个全局变量的引用,表示这个变量是在别的文件中定义的,提示编译器在其他地方寻找这个变量的定义。它主要用于在多个文件之间共享变量。
2. `volatile`关键字用于告诉编译器这个变量可能会被程序外部或硬件意外地改变,因此编译器在编译程序时不应该对其做优化处理,每次使用该变量时都应该重新从内存中读取其值。
结合这两个关键字,你可以声明一个全局变量,并告诉编译器这个变量可能会在程序外部被改变,如在多线程环境中的全局共享变量。但是,`volatile`并不表示变量的链接属性(即它不是用来声明变量的存储期或作用域的),因此它通常与`extern`一起使用来声明一个全局的、可能被程序外部或硬件修改的变量。
声明示例:
```c
extern volatile int sharedVariable;
```
这个声明表明`sharedVariable`是一个全局变量,它可能在程序的其他部分被改变,也可能被程序外部的因素(如硬件)修改,因此编译器在每次使用该变量时都需要确保从内存中读取它的最新值。
阅读全文