修饰符volatile
C语言关键字volatile表明某个变量的值可能在外部被改变,因此对这些变量的存取不能缓存到寄存器,每次使用时需要重新存取。
修饰符很少用到,一般的变量会直接从内存中访问的(编译程序的自动优化操作,编译程序不会重复读取变量的),但如果变量在程序以外被修改了,那么volatile这个修饰符就十分重要了。volatile修饰符会通知编译程序停止对其修饰的变量进行自动优化操作,从而在每次访问变量时会重新读取变量。(IO 端口号 经常会用到修饰符volatile)
存储类型说明符extern 、register
说明符extern的主要作用声明变量已在别处声明或定义,例如当程序想使用当前后面的变量时,则可以使用extern说明符修饰变量,从而可以访问程序后面的变量了,在两个或多个文件之间也可以使用extern说明符。
说明符register修饰的变量 会被C编译程序保存到CPU的寄存器中,而普通的变量是被保存到内存中的,这样对register变量的操作速度远比保存在内存中的变量快的多。