C语言各种keyword
2024-09-07 14:44:46
1、register
在函数内定义变量时。默认是 auto 类型,变量存储在内存中,当程序用到该变量时,由控制器发出指令将内存中该变量的值送到运算器,计算结束后再从运算器将数据送到内存。假设一个变量用 register keyword修饰。编译器则尽可能将该变量存放在CPU的内部寄存器中,这样就不用通过内存寻址来訪问变量,能够大大提高訪问效率。
2、volatile
volatilekeyword修饰的变量或地址。则每次使用时,变量的值或地址指向的值都要又一次从内存中获取。
假设没实用volatilekeyword修饰,编译器优化时,在同一进程中当上一次对这个地址操作的值在该进程中没有被改动时,他会自己主动把上次读的数据取出来而不会又一次从内存地址中获取内容。
该情况在嵌入式系统、驱动编程中常常使用,通常是对寄存器或硬件I/Oport的操作。
3、inline
inlinekeyword修饰的函数称为内联函数。在程序编译时,编译器会将程序中出现的对该函数的调用表达式用该函数的函数体来进行替换。类似于宏替换,只是相比宏替更easy理解,不易出错。
inlinekeyword多用于定义函数体代码短且调用频繁的函数。以目标代码的添加为代价来节省函数频繁跳转的时间成本。
4、。。。。
。。
最新文章
- Java接口响应超时监控
- PHP精选数组函数
- 重温JSP学习笔记--JSP动作标签
- http调接口
- iOS9适配 之 关于info.plist 第三方登录 添加URL Schemes白名单
- unity,UNITY_PROJ_COORD和tex2Dproj
- Unity3dBug - OnEnable
- MySQL之count(*)与count(id)效率比较(转)
- 打开SQL Server 配置管理器时出现了问题
- JS里的CSS函数
- weakSelf 和 strongSelf
- easyUI带复选框的组合树
- BigData-‘基于代价优化’究竟是怎么一回事?
- [Swift]LeetCode374. 猜数字大小 | Guess Number Higher or Lower
- Django 之 admin管理工具
- Flask 构建微电影视频网站(四)
- 【原创】大叔问题定位分享(1)HBase RegionServer频繁挂掉
- 自己实现数据结构系列三---Stack
- 在UnrealEngine中用Custom节点实现描边效果
- 【转】java 读取 excel 2003 或 excel 2007