const、volatile和restrict的作用和用法总结
2014-11-01 18:40
309 查看
const作用:[/u]const(constant)关键字可修饰变量、函数参数、返回值或函数体。1.定义只读变量。2.限制函数参数。防止意外修改。增加程序安全性和可靠性。如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也有利于编译器优化。
相关文章推荐
- C语言中const,volatile,restrict的用法总结
- C语言中const,volatile,restrict的用法总结
- C语言中const,volatile,restrict的用法总结
- 关于const 作用和用法 C++ const 的全面总结
- const、volatile、mutable的用法总结
- C中const,volatile,restrict关键字的用法
- 广数面试题的一些总结:static,const,volatile作用
- const用法总结
- 关键字:auto、static、register、const、volatile 、extern 总结
- 【转】关键字:auto、static、register、const、volatile 、extern 总结
- corecpp基础语法总结——const的用法
- C++中const用法总结
- CONST,STATIC,EXTERN用法总结!
- const,mutable,volatile意义与用法
- C++中const用法总结(转)
- C++中const用法总结(转)
- C++中const用法总结
- 关于const,static,extern,volatile的用法
- [c++学习]const用法总结篇
- overlay/static/register/atuo/extern/volatile/const 修饰符的用法