宏、const、static、extern使用详解

宏与const的区别

编译时刻:宏是预编译(编译之前处理),const是编译阶段。
编译检查:宏不做检查,不会报编译错误,指替换。const会编译检查,会报编译错误。
宏的好处:宏能定义一些函数,方法。const不能。
宏的坏处:使用大量宏,容易造成编译时间久,每次都需要重新替换。

const

const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p,对象变量)
被const修饰的变量是只读的。

static

static 修饰局部变量改变量只会被初始化一次,在系统中只有一份内存。
static 不可以改变局部变量的作用域,但是可以延长局部变量的生命周期,改变量直到整个项目结束的时候才会被销毁。
static 修饰全局变量作用域仅限于当前文件,外部不可以访问到该变量

extern

extern 引用关键字,当某一个全局变量,没有用static 修饰时,其作用域为整个项目文件,若是在其他类文件引用该变量,则用extern关键字,例如,想引用其他类的全局变量,int age = 10;则在当前类中实现,extern int age;也可以在外部修改该变量,extern int age = 20;,若某个文件中的全局变量不想被外界修改,则用static修饰该变量,则其作用域只限于该文件

你可能感兴趣的:(宏、const、static、extern使用详解)