在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

你還記得這個C語言關鍵字嗎?

撞上電子 ? 2023-12-17 08:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

當你使用 volatile 關鍵字時,你告訴編譯器該變量的值可能會在程序的執行過程中被外部因素更改,因此編譯器不應該對該變量的讀寫進行優化。下面是一些使用 volatile 的例子,以及對它們的一些文字描述:

1,防止編譯器優化

#include int main() { int a = 0; while (a == 0) { // 此處的循環條件可能在外部被修改,使用 volatile 防止編譯器優化 } printf("Loop exited!\n"); return 0;}

這個例子中,a 的值可能會在循環外部被修改,但是由于循環內沒有對 a 進行修改的語句,編譯器可能會認為 a 的值在循環中永遠不會變化,進而優化掉整個循環。通過使用 volatile,我們告訴編譯器不要對這個變量的讀寫進行優化。

2. 提醒編譯器不要緩存

#include #include #include volatile int flag = 1; // 用于標識是否可以退出循環void *threadFunction(void *arg) { sleep(2); // 模擬一些操作 flag = 0; // 線程中修改 flag 的值 return NULL;}int main() { pthread_t tid; pthread_create(&tid, NULL, threadFunction, NULL); while (flag) { // 在循環中讀取 flag 的值,使用 volatile 防止編譯器緩存 } printf("Thread signaled exit!\n"); pthread_join(tid, NULL); return 0;}

在這個例子中,flag 的值在另一個線程中被修改。由于涉及多線程,編譯器可能會對 flag 進行緩存優化。通過使用 volatile,我們提醒編譯器不要對這個變量進行緩存,而是每次都從內存中重新加載。


3. 內存映射的硬件寄存器

#include volatile unsigned int *hardwareRegister = (volatile unsigned int *)0x12345678;int main() { unsigned int value = *hardwareRegister; // 從硬件寄存器讀取值 // 對硬件寄存器進行操作... *hardwareRegister = 42; // 將值寫入硬件寄存器 return 0;}

在這個例子中,hardwareRegister 是一個指向內存映射硬件寄存器的指針。硬件寄存器的值可能在程序執行期間被硬件修改,因此我們使用 volatile 保證了對硬件寄存器的讀寫不會被編譯器優化,而是每次都從內存中重新加載。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7631

    瀏覽量

    141153
  • 編譯器
    +關注

    關注

    1

    文章

    1659

    瀏覽量

    50101
  • 變量
    +關注

    關注

    0

    文章

    614

    瀏覽量

    28910
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    教科書不會講的C語言關鍵字volatile用法

    許多程序員都無法正確理解C語言關鍵字 volatile,這并不奇怪。因為大多數C語言書籍通常都是一兩句一帶而過,本文將告訴
    發表于 02-02 10:14 ?685次閱讀

    C語言關鍵字volatile的用法

    許多程序員都無法正確理解C語言關鍵字volatile,這并不奇怪。因為大多數C語言書籍通常都是一兩句一帶而過,本文將告訴
    發表于 04-11 09:35 ?2957次閱讀

    C語言關鍵字const的幾種用法

    本期來講解一個C語言關鍵字——const。
    發表于 06-21 11:05 ?2071次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>關鍵字</b>const的幾種用法

    C語言面試最常問的關鍵字

    大家好,我是嵌入式老林,從事嵌入式軟件開發多年,今天分享的內容是C語言面試最常問的三個關鍵字,希望能對有所幫助。
    發表于 07-11 12:41 ?609次閱讀

    C語言關鍵字專題

    ,相當于BOOKstruct book .如果覺得懂了,那么下面這個把BOOK,代表的是什么意思呢?此時的BOOK是一個具體的變量 相當于咱們上面的mybook一樣的啦四、static關鍵
    發表于 10-24 16:38

    C語言volatile關鍵字詳解 精選資料分享

    1.volatile和什么有關百度翻譯是這樣子翻譯volatile的:圖1-1 百度翻譯volatile截圖volatile屬于C語言關鍵字,《C Primer Puls》 是這樣解
    發表于 07-22 07:20

    C語言volatile關鍵字之間有什么關系?

    C語言volatile關鍵字之間有什么關系?
    發表于 11-11 07:01

    標準C語言總共有32個關鍵字

    標準C語言總共有32個關鍵字
    發表于 01-12 15:59 ?0次下載

    C語言32個關鍵字九種控制語句34種運算符

    C語言32個關鍵字九種控制語句34種運算符 C語言32個關鍵字九種控制語句34種運算符
    發表于 05-06 11:47 ?6次下載

    C語言32個關鍵字

    C語言32個關鍵字,感興趣的小伙伴們可以看看。
    發表于 07-26 16:29 ?67次下載

    淺析C語言中typedef關鍵字的作用

    C 語言提供了 typedef 關鍵字,您可以使用它來為類型取一個新的名字。
    的頭像 發表于 11-08 08:42 ?6243次閱讀

    C語言32個關鍵字可以分為這幾類

    C語言是一種面向過程、抽象化的通用程序設計語言,廣泛應用于嵌入式底層和系統開發。C語言關鍵字共有
    的頭像 發表于 12-31 15:28 ?5708次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>32個<b class='flag-5'>關鍵字</b>可以分為這幾類

    淺析C語言中的regiseter關鍵字

    C語言中重要的關鍵字有很多,static const extern我們之前都講過,還有一個在面試中出現的頻率也比較高:register。
    的頭像 發表于 08-25 17:10 ?1423次閱讀
    淺析<b class='flag-5'>C</b><b class='flag-5'>語言</b>中的regiseter<b class='flag-5'>關鍵字</b>

    快速掌握C語言關鍵字

    C語言中的32個關鍵字知道多少個呢?根據關鍵字的作用分為四類:數據類型關鍵字、控制語句
    的頭像 發表于 07-06 08:04 ?749次閱讀
    快速掌握<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>關鍵字</b>

    C語言關鍵字--typedef

    C語言關鍵字使用方法學習指南!
    的頭像 發表于 10-07 12:44 ?595次閱讀
    主站蜘蛛池模板: 日韩一级片免费 | 日日噜噜噜夜夜爽爽狠狠图片 | 欧美色视频日本片高清在线观看 | 午夜在线观看视频在线播放版 | 欧美日本一道免费一区三区 | 亚洲一区二区三区免费在线观看 | 99久久99这里只有免费费精品 | 免费看的一级毛片 | 91华人在线视频 | 一级aaa毛片 | 韩国电影天堂 | 欧美性xxxx交 | 免费看特级淫片日本 | 中文天堂 | 亚洲美女视频在线观看 | 婷婷六月天在线 | 一级做α爰片久久毛片 | 色欧美在线 | 99国产精品农村一级毛片 | 日韩免费精品视频 | 精品国产麻豆免费人成网站 | 国产精品人成在线播放新网站 | 国产午夜不卡在线观看视频666 | 色天使在线播放 | 一区二区三区免费视频网站 | 四虎影院在线免费观看 | 欧美天堂在线观看 | 激情综合六月 | 黄色一级毛片看一级毛片 | 亚洲综合色一区二区三区小说 | 黄色美女网站免费看 | 稀缺资源呦视频在线网站 | 国产在线五月综合婷婷 | 最近高清免费观看视频大全 | 男人操女人视频在线观看 | a4yy私人毛片在线 | 欧美一级片在线视频 | 老司机51精品视频在线观看 | 久久奇米 | 色视网站 | 22sihu国产精品视频影视资讯 |