当前位置:网站首页>const、volatile和restrict的作用和用法总结
const、volatile和restrict的作用和用法总结
2022-07-05 00:27:00 【金士顿】
const
const(constant)关键字可修饰变量、函数参数、返回值或函数体。
定义只读变量。
限制函数参数。防止意外修改。增加程序安全性和可靠性。
如const char *p表示,p指针指向的值不可更改,就是这个指针不能用来修改数据
如char *const p表示,p指针指向的地址不可更改
如const int arr[]则数组内的值都不能修改
const char *const p表示,所指向的数值和地址都不能变
const double locked[4]
double *pc=rates
pc=locked这句是非法的。因为locked是不能修改的
源文件中使用const int i = 1则在其他文件中应使用extern const int i,如在头文件中则应用static const int i = 1,因为各文件中需要包含这个头文件,需要static保证内部性。但如果用此方法存储数组,因为各个文件都需要创建这个静态数组,可能会占用较多的存储空间,需要从更多方面去考虑它的利弊。
volatile
volatile限定词则表示变量除了可被程序修改外还可能被外部代理修改,如变量保存当前的时钟时间。
编译器优化编译时会把不变的值放在寄存器,以供读取,标记volatile可以保证不被放入寄存器。
如不能被程序改变而能被代理改变则const volatile int i。
restrict
restrict只能用于指针int* restrict ptr,这样就使得ptr是指向某数据块的唯一方式。
可防止数据被其他指针操作。如在memcpy中为防止有重叠区域,采用restrict修饰传入的指针。同时,restrict也有利于编译器优化。
作者:胡哈哈哈
链接:https://www.jianshu.com/p/58f618bd9ea3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
边栏推荐
- How many triangles are there in the golden K-line diagram?
- He worked as a foreign lead and paid off all the housing loans in a year
- Skills in analyzing the trend chart of London Silver
- leetcode518,377
- Fast analysis -- easy to use intranet security software
- Nine Qi single chip microcomputer ny8b062d single key control four LED States
- [论文阅读] CarveMix: A Simple Data Augmentation Method for Brain Lesion Segmentation
- Using the uniapp rich text editor
- Kibana index, mapping, document operation
- Summer challenge brings you to play harmoniyos multi terminal piano performance
猜你喜欢
1189. Maximum number of "balloons"
Summer challenge brings you to play harmoniyos multi terminal piano performance
巩固表达式C# 案例简单变量运算
Date time type and format in MySQL
Fast analysis -- easy to use intranet security software
Application of fire fighting system based on 3D GIS platform
[paper reading] Tun det: a novel network for meridian ultra sound nodule detection
Complete knapsack problem (template)
[path planning] RRT adds dynamic model for trajectory planning
Continuous modification of business scenario functions
随机推荐
[selenium automation] common notes
Some basic functions of enterprise projects are developed, and important things are saved to online first a
Significance of acrel EMS integrated energy efficiency platform in campus construction
打新债开户注册安全吗?有没有风险的?靠谱吗?
Hisilicon 3559 universal platform construction: YUV422 pit stepping record
He worked as a foreign lead and paid off all the housing loans in a year
abc 258 G - Triangle(bitset)
城市轨道交通站应急照明疏散指示系统设计
Oracle case: SMON rollback exception causes instance crash
2022.07.03(LC_6111_统计放置房子的方式数)
(script) one click deployment of any version of redis - the way to build a dream
ORB(Oriented FAST and Rotated BRIEF)
[paper reading] Tun det: a novel network for meridian ultra sound nodule detection
TS quick start - functions
abc 258 G - Triangle(bitset)
Application of fire fighting system based on 3D GIS platform
【报错】 “TypeError: Cannot read properties of undefined (reading ‘split‘)“
Microservice
Upload avatar on uniapp
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!