宏与const区别

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:修饰全局变量:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容