关键字static、const与volatile的作用与使用场景

1. static關鍵字的使用有三種場景:

1) 修饰函数体内的变量(局部变量) :被static修飾的局部變量只執行一次初始化,延長了其生命週期;
2) 修饰函数体外的变量(全局變量) :被staitc修飾的靜態全局變量只能在本文件中被訪問,不能在其他文件中被訪問;
3) 修饰函数:被static修飾的函數只能在本文件中被調用,不能被其他文件所調用。

2. 被const修飾的變量是不可變的。

举例:

1)指针是常量,不可变

char *const p;

2)指针所指向的内容是常量,不可变

const char* p;

char const* p;

3)指针和指针所指向的内容都是不可变的

const char* const p;

说明:

以*为界划出一条线,若const在左侧,则指针所指向的内容为常量;

若const在右侧,则指针为常量。

“”左内右指“”

3.被volatile修飾的變量,編譯器對訪問該變量的代碼不在進行優化,從而可以提供對特殊地址的穩定訪問。

使用volatile变量的三种场景:

1)中断服务程序中,修改的供其他程序检测的变量;

2)多任务环境下,各任务间共享的标志;

3)存储器映射的硬件寄存器加volatile修饰。

猜你喜欢

转载自blog.csdn.net/u014689845/article/details/88080976