关键字和宏
来源:互联网 发布:国家中级程序员证书 编辑:程序博客网 时间:2024/06/05 17:35
关键字
1.register
实现原理:register会请求编译器尽可能将变量存在cpu内部寄存器。
好处:省去从内存中抓取数据的时间,提高cpu的内存
频繁被访问的变量可以设为register变量
局限性:(1)register只能修饰局部变量,不能修饰全局变量
原因:register修饰的变量只有当前进程知道,其他进程不知道
(2)不能通过&去获取register变量的地址
(3)register修饰的变量一定是cpu可以接受的数据类型
2.static
作用范围:修饰局部变量、全局变量和函数
作用:(1)延长局部变量的生命周期使其至程序结束
(2)只能在文件访问该变量,其他文件不能访问
(3)static修饰的函数只能在本文件调用,其他文件不能调用
(4)static修饰的变量全部保存在数据区内的静态数据区,没有初始化,会默认为初始化为0
(5)staic能起到保护的作用,因为全局变量能被所有函数和文件访问,比较危险
3.extern
extern修饰的变量一定是也只能是全局变量
声明变量是在其他文件中定义的,一定要标注变量类型
1.register
实现原理:register会请求编译器尽可能将变量存在cpu内部寄存器。
好处:省去从内存中抓取数据的时间,提高cpu的内存
频繁被访问的变量可以设为register变量
局限性:(1)register只能修饰局部变量,不能修饰全局变量
原因:register修饰的变量只有当前进程知道,其他进程不知道
(2)不能通过&去获取register变量的地址
(3)register修饰的变量一定是cpu可以接受的数据类型
2.static
作用范围:修饰局部变量、全局变量和函数
作用:(1)延长局部变量的生命周期使其至程序结束
(2)只能在文件访问该变量,其他文件不能访问
(3)static修饰的函数只能在本文件调用,其他文件不能调用
(4)static修饰的变量全部保存在数据区内的静态数据区,没有初始化,会默认为初始化为0
(5)staic能起到保护的作用,因为全局变量能被所有函数和文件访问,比较危险
3.extern
extern修饰的变量一定是也只能是全局变量
声明变量是在其他文件中定义的,一定要标注变量类型
4.const
const修饰的变量称为只读变量
空间里的值可变,但不能通过变量名来修改这个空间的值
一般用于修饰函数形参,避免在实现函数是修改实参的值
注意事项:使用const一定要对变量初始化
const修饰的变量称为只读变量
空间里的值可变,但不能通过变量名来修改这个空间的值
一般用于修饰函数形参,避免在实现函数是修改实参的值
注意事项:使用const一定要对变量初始化
5.typedef
(1)提高代码的移植性
(2)把复杂的变量变成简单的变量名,提高编程效率
(3)起到解释变量的效果
(1)提高代码的移植性
(2)把复杂的变量变成简单的变量名,提高编程效率
(3)起到解释变量的效果
6.struct
结构体成员的两种表示方法
结构体地址->成员名
结构体.成员名
结构体的作用只是相当于告诉了系统有这些成员,但并未给予其空间,所以在结构体内给成员分配空间是不对的。
结构体成员的两种表示方法
结构体地址->成员名
结构体.成员名
结构体的作用只是相当于告诉了系统有这些成员,但并未给予其空间,所以在结构体内给成员分配空间是不对的。
7
对于成员是数组,用strcpy(类,成员名,“字符串”)、
对于成员是指针,直接赋
对于成员是数组,用strcpy(类,成员名,“字符串”)、
对于成员是指针,直接赋
8
内存空洞;不同的数据类型放在一起可能会产生内存空洞,所以建议将相同的数据类型放一起。
内存空洞;不同的数据类型放在一起可能会产生内存空洞,所以建议将相同的数据类型放一起。
9
共用体
union
共用体长度由最长成员确定,共用一段空间会造成数据覆盖
共用体
union
共用体长度由最长成员确定,共用一段空间会造成数据覆盖
10
大端字节序和小端字节序
小端字节序:低字节存放低地址位,高字节存放高地址位
大端字节序:低字节存放高地址位,高字节存放低地址位
大端字节序和小端字节序
小端字节序:低字节存放低地址位,高字节存放高地址位
大端字节序:低字节存放高地址位,高字节存放低地址位
11枚举
enum
枚举变量的长度相当于一个整型
作用:相当于定义了几个宏
enum
枚举变量的长度相当于一个整型
作用:相当于定义了几个宏
12 宏
注意事项(1)宏一定要大写
(2)不能_..._,以免与内置宏冲突
13
宏函数与函数的区别
宏函数的优点:省却分配和释放栈帧,传参,传返回值等工作,提高代码执行效率,如果用编译时间换内存空间的例子就是宏函数
宏函数的缺点:不做语法检查,不能实现复杂功能,安全性较差
如果用编译时间换运行时间的例子就是inline(关键字)
inline的作用:把子函数搬到主函数,省去传参和返值的过程
注意事项(1)宏一定要大写
(2)不能_..._,以免与内置宏冲突
13
宏函数与函数的区别
宏函数的优点:省却分配和释放栈帧,传参,传返回值等工作,提高代码执行效率,如果用编译时间换内存空间的例子就是宏函数
宏函数的缺点:不做语法检查,不能实现复杂功能,安全性较差
如果用编译时间换运行时间的例子就是inline(关键字)
inline的作用:把子函数搬到主函数,省去传参和返值的过程
14
内置宏
printf("%d\n",_LINE_)所在行数
printf("%s\n",_func_)主函数名
内置宏
printf("%d\n",_LINE_)所在行数
printf("%s\n",_func_)主函数名
1 0
- 关键字和宏
- QT常用宏和关键字
- new关键字和delete关键字
- struct关键字和class关键字
- this关键字和super关键字
- @property关键字和@synthesize关键字
- native关键字和transient关键字
- super关键字和final关键字
- this关键字和static关键字
- this关键字和super关键字
- volatile关键字和mutable关键字
- This关键字和Super关键字
- this关键字和super关键字
- static 关键字和final关键字
- static关键字和final关键字
- final关键字和static关键字
- final关键字和static关键字
- QT中新增的关键字和宏
- ASP.NET(C#)读取Excel的文件内容
- EXPRESS OLE DB Library for C++
- run Time
- Gitlab迁移小记
- 发现个学spark的地方,不错
- 关键字和宏
- C#学习入门
- Android版本更新示例
- SDUT3347数据结构实验之数组三:快速转置
- 7.29
- PHPCMS V9 列表页调用任意文章内容
- Linux进程监控
- 【php】会潮支付接口
- Hdu 5768 Lucky7