const和volatile和restict

目录

1.const

1.1在指针和形参中使用

1.2全局使用const

2.volatile

3.restrict


1.const

const:使变量限定为不可改变

1.1在指针和形参中使用

在形参中使用最常见,防止函数修改被传入的参数

1.2全局使用const

防止某一函数修改  全局变量

2.volatile

volatile:程序不可改变,但代理(其它程序)可以改变的变量

高速缓存:两次操作都没有改变上述代码的值,x就被保存在寄存器中,使用时才读取,节约时间

val1=x;

val2=x;

3.restrict

restrict:限定这个指针是访问这个数据对象的唯一方式

作用是:1.告诉编译器可以优化  2.不让复制数据时的数据覆盖。

restrict *p;//只能用于指针限定

#include  

static int d=4; 
extern int d;
int main(void)
{
	int ar[10];
	int * restrict p=(int *)malloc(10*sizeof(int));
	p=ar;
	
	return 0;
	
} 

这样就会报错。

你可能感兴趣的:(#c语言,c语言)