代碼:關鍵字const和volatile

編譯器 技術 宏思微想 宏思微想 2017-08-27

【宏思微想:科技生活,技術開發】

const 和 volatile一起俗稱“cv特性”。const:只讀, volatile:易變。

關於volatile

該關鍵字通知編譯器該變量會動態改變,每次訪問的時候必須重新讀取。如以下資源:中斷程序會修改的資源,多任務或多線程共享的資源,硬件寄存器等。

關於const

1.const 常量

const int WEEK=7;

用const創建常量時必須初始化,且以後不能再重新賦值。

2.成員函數const

void someFunction() const;

將一個類的方法聲明為const,則必須保證該方法不會改變該類的任何一個成員變量的值。訪問函數經常通過使用const聲明為常量函數。

3.const 指針

const int *pOne;

int *const pTwo;

const int *const pThree;

pOne是一個指向整型常量的指針,該指針指向的值是不能改變的。

pTwo是一個指向整型常量的指針,該指針指向的值可以改變,但是pTwo不能指向其他變量。

pThree是一個指向整型常量的指針,該指針指向的值不能改變,pThree也不能指向其他變量。

規律:

當const在*的左側:數據只讀。

當const在*的右側:地址只讀。

4.const this 指針

當聲明一個對象為const時,等於聲明瞭一個指向const對象的this指針。一個const 指針只能用來調用const型成員函數。

5.傳遞const指針

當要傳遞一個指針給函數,又不希望該函數改變指針所指的對象,則需要使用修飾符const提供保護機制。

如:char *memcopy(char *dest, const char *src, int size);

代碼:關鍵字const和volatile

——————(完)——————

相關推薦

推薦中...