美文网首页
宏与const区别

宏与const区别

作者: summer_code | 来源:发表于2016-12-25 20:17 被阅读24次

const:c语音关键字 是一个修饰符  被const修饰后就意味着"只读"不能被修改 .当用字符串常量时,苹果官方推荐使用const.

const int a;

int const a;

const int *a;

int * const a;

int const * a const;

const定义的右边的是不可以改变的,也就是说const修饰的是它右边的部分。

前两个的作用是一样,a是一个常整型数。

第三个意味着a是一个指向常整型数的指针(也就是,指向的整型数是不可修改的,但指针可以,此最常见于函数的参数,当你只引用传进来指针所指向的值时应该加上const修饰符,程序中修改编译就不通过,可以减少程序的bug)。

第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。

最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。

一:宏的常见用法:

1:常用的字符串常量抽成宏

2:常用的代码块抽成宏

const的用法:

当用字符串常量的时候,苹果官方推荐使用const

区别:

1:编译时刻:宏:预编译(xcode刚到有#就会预编译);const:编译时刻

2:编译检查:宏:编译时不会检查;const:编译是会检查

3:宏的好处:可以定义代码

4:宏的坏处:编译时间过长,因此建议常用的字符串常量用const修饰

二:static的作用:

1:修饰 局部变量:

延长这个局部变量的生命周期,只要程序运行,局部变量就会一直存在

局部变量只会分配一次内存,因为用static修饰的代码只会在程序一启动就会执行,以后就不会执行

2:修饰全局变量:

只会修饰全局变量的 作用域,表示只会在是当前文件内使用。

相关文章

网友评论

      本文标题:宏与const区别

      本文链接:https://www.haomeiwen.com/subject/eljdvttx.html