static
C语言中的关键字static有3个用法,它表示静态变量或函数,被声明为静态的变量,存在在静态/全局变量区。
它的作用主要是:通过static限定外部对象,可以达到隐藏外部对象的目的。
1,函数中的静态局部变量。
函数中的静态局部变量在函数调用过程中,它一直存在,无论函数是否被调用,它只可以被赋值一次,再次调用该函
数时,里面的局部变量不会进行初始化。
2,文件(模块)中的全局静态变量。
文件(模块)中的全局静态变量只能被该文件中的其他函数使用,无法被其他文件(模块)中的函数使用。
3,文件(模块)中的静态函数。
一个被声明静态的函数,只能被该文件(模块)中的其他函数调用,无法被文件(模块)外的函数调用。
register
register告诉编译器使用寄存器保存变量,但这与底层有关,试图告诉编译器,该变量会经常使用,声明过多的register变量也是可以的。
inline
inline修饰的函数成为内联函数,在编译期间,编译器将声明为inline的函数展开。这样做的好处是,避免跳转,较少开销,带来的副作用是调用过多的inline函数,会使得生成的可执行程序非差大。
volatile
volatile的意思是易变化的,该关键字告诉编译器,被valatile修饰的变量可能被未知因素修改,在访问该变量时,不进行优化,因此每次在访问该变量时,均从内存中访问该变量。