C语言各种关键字
2015-08-17 07:29
260 查看
1、register
在函数内定义变量时,默认是 auto 类型,变量存储在内存中,当程序用到该变量时,由控制器发出指令将内存中该变量的值送到运算器,计算结束后再从运算器将数据送到内存。如果一个变量用 register 关键字修饰,编译器则尽可能将该变量存放在CPU的内部寄存器中,这样就不用通过内存寻址来访问变量,可以大大提高访问效率。
2、volatile
volatile关键字修饰的变量或地址,则每次使用时,变量的值或地址指向的值都要重新从内存中获取。如果没有用volatile关键字修饰,编译器优化时,在同一进程中当上一次对这个地址操作的值在该进程中没有被修改时,他会自动把上次读的数据取出来而不会重新从内存地址中获取内容。该情况在嵌入式系统、驱动编程中经常使用,一般是对寄存器或硬件I/O端口的操作。
3、inline
inline关键字修饰的函数称为内联函数,在程序编译时,编译器会将程序中出现的对该函数的调用表达式用该函数的函数体来进行替换。类似于宏替换,不过相比宏替更容易理解,不易出错。inline关键字多用于定义函数体代码短且调用频繁的函数,以目标代码的增加为代价来节省函数频繁跳转的时间成本。
4、。。。。。。
在函数内定义变量时,默认是 auto 类型,变量存储在内存中,当程序用到该变量时,由控制器发出指令将内存中该变量的值送到运算器,计算结束后再从运算器将数据送到内存。如果一个变量用 register 关键字修饰,编译器则尽可能将该变量存放在CPU的内部寄存器中,这样就不用通过内存寻址来访问变量,可以大大提高访问效率。
2、volatile
volatile关键字修饰的变量或地址,则每次使用时,变量的值或地址指向的值都要重新从内存中获取。如果没有用volatile关键字修饰,编译器优化时,在同一进程中当上一次对这个地址操作的值在该进程中没有被修改时,他会自动把上次读的数据取出来而不会重新从内存地址中获取内容。该情况在嵌入式系统、驱动编程中经常使用,一般是对寄存器或硬件I/O端口的操作。
3、inline
inline关键字修饰的函数称为内联函数,在程序编译时,编译器会将程序中出现的对该函数的调用表达式用该函数的函数体来进行替换。类似于宏替换,不过相比宏替更容易理解,不易出错。inline关键字多用于定义函数体代码短且调用频繁的函数,以目标代码的增加为代价来节省函数频繁跳转的时间成本。
4、。。。。。。
相关文章推荐
- C++容器vector的调用
- 使用正则表达式解析一般sql语句(C++)
- C语言中的dirent.h说明
- poj3984广搜c语言
- 关于 c#调用c++ 出现异常System.StackOverflowException 的问题
- C,C++宏中#与##的讲解
- C语言基础学习——第2天(语句)
- Vanya and Books
- C++编译和链接过程的详解
- c++中几种0值的比较问题
- C++对象模型——new 和 delete 运算符(第六章)
- C/C++编译链接过程详解
- 归并排序的C++实现
- c语言中对字符串进行处理的函数
- C语言中二级指针的用处
- VS2010 C++编译报错LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 冈萨雷斯数字图像处理中科院&电子科大halcon/C++/Opencv视频教程下载
- 函数指针C++和回调函数
- [LeetCode] Gas Station
- C++标准库介绍