volatile
volatile int i = 10;
volatile 關(guān)鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素(操作系統(tǒng)、硬件、其它線程等)更改。所以使用 volatile 告訴編譯器不應(yīng)對這樣的對象進行優(yōu)化。
volatile 關(guān)鍵字聲明的變量,每次訪問時都必須從內(nèi)存中取出值(沒有被 volatile 修飾的變量,可能由于編譯器的優(yōu)化,從 CPU 寄存器中取值)
const 可以是 volatile (如只讀的狀態(tài)寄存器)
指針可以是 volatile
assert()
斷言,是宏,而非函數(shù)。assert 宏的原型定義在 《assert.h》(C)、《cassert》(C++)中,其作用是如果它的條件返回錯誤,則終止程序執(zhí)行。可以通過定義 NDEBUG 來關(guān)閉 assert,但是需要在源代碼的開頭,include 《assert.h》 之前。
assert() 使用
#define NDEBUG // 加上這行,則 assert 不可用#include 《assert.h》
assert( p != NULL ); // assert 不可用
sizeof()
sizeof 對數(shù)組,得到整個數(shù)組所占空間大小。
sizeof 對指針,得到指針本身所占空間大小。
#pragma pack(n)
設(shè)定結(jié)構(gòu)體、聯(lián)合以及類成員變量以 n 字節(jié)方式對齊
#pragma pack(n) 使用
#pragma pack(push) // 保存對齊狀態(tài)#pragma pack(4) // 設(shè)定為 4 字節(jié)對齊
struct test{ char m1; double m4; int m3;};
#pragma pack(pop) // 恢復(fù)對齊狀態(tài)
責(zé)任編輯:haq
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62968 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73855
發(fā)布評論請先 登錄
相關(guān)推薦
Spire.XLS for C++組件說明
![Spire.XLS for <b class='flag-5'>C++</b>組件說明](https://file1.elecfans.com/web3/M00/05/E7/wKgZO2eFwUuAbuoQAAAbn_khf8A091.png)
EE-112:模擬C++中的類實現(xiàn)
![EE-112:模擬<b class='flag-5'>C++</b><b class='flag-5'>中</b>的類實現(xiàn)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AKI跨語言調(diào)用庫神助攻C/C++代碼遷移至HarmonyOS NEXT
C7000 C/C++優(yōu)化指南用戶手冊
![<b class='flag-5'>C</b>7000 <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>優(yōu)化指南用戶手冊](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用OpenVINO GenAI API在C++中構(gòu)建AI應(yīng)用程序
![使用OpenVINO GenAI API在<b class='flag-5'>C++</b><b class='flag-5'>中</b>構(gòu)建AI應(yīng)用程序](https://file1.elecfans.com/web2/M00/09/51/wKgZomcJ0ziAd_APAAATE9KW7lE007.png)
ostream在c++中的用法
OpenVINO2024 C++推理使用技巧
ModusToolbox 3.2在c代碼中包含c++代碼的正確步驟是什么?
C++中實現(xiàn)類似instanceof的方法
![<b class='flag-5'>C++</b><b class='flag-5'>中</b>實現(xiàn)類似instanceof的方法](https://file1.elecfans.com/web2/M00/FE/0C/wKgaomaYe1CAQ31QAAAnf0IkoSU605.png)
C/C++中兩種宏實現(xiàn)方式
鴻蒙OS開發(fā)實例:【Native C++】
![鴻蒙OS開發(fā)實例:【Native <b class='flag-5'>C++</b>】](https://file1.elecfans.com/web2/M00/C8/31/wKgZomYZMTCAaDv3AAY5x13C324319.jpg)
使用 MISRA C++:2023? 避免基于范圍的 for 循環(huán)中的錯誤
![使用 MISRA <b class='flag-5'>C++</b>:2023? 避免基于范圍的 for 循環(huán)中的錯誤](https://file1.elecfans.com/web2/M00/A9/66/wKgZomUl7m-AHJX6AABuJjgxs14678.png)
評論