奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C語言volatile與const同時使用應注意的問題

時間:2024-10-08 19:03:41 C語言 我要投稿
  • 相關推薦

C語言volatile與const同時使用應注意的問題

  const最主要的特點就是只讀,有常量、常量指針,如果不是特別小心的分析C語言語句的書寫格式,再加上指針的使用,就特別容易弄錯。volatile關鍵字是一個類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改,下面就有小編分享C語言volatile與const同時使用應注意的問題,歡迎大家學習!

  const和volatile放在一起的意義在于:

  (1)本程序段中不能對a作修改,任何修改都是非法的,或者至少是粗心,編譯器應該報錯,防止這種粗心;

  (2)另一個程序段則完全有可能修改,因此編譯器最好不要做太激進的優(yōu)化。

  “const”含義是“請做為常量使用”,而并非“放心吧,那肯定是個常量”。

  “volatile”的含義是“請不要做沒譜的優(yōu)化,這個值可能變掉的”,而并非“你可以修改這個值”。

  因此,它們本來就不是矛盾的。

  const修飾的變量不允許這里修改不代表不允許別處修改,比如:

  復制代碼 代碼如下:

  int i = 5;

  const int* p = &i;

  *p = 6; // 不可以;

  i = 7; // 完全可以,而且那個“const”的“*p”也跟著變成了7。

  對于非指針非引用的變量,const volatile同時修飾的意義確實不大。個人覺得。

  需要明白“volatile”的含義并非是“non-const”。所以他們才可以放在一起。

  在C++語言中,const沒有反義詞,如果一個變量沒有const修飾,那它本身就是const的反義詞,而并非加上volatile才是const的反義詞。

  兩者同時修飾一個對象的典型情況,是用于驅(qū)動中訪問外部設備的只讀寄存器。

  留一個問題:const volatile int i=10;這行代碼有沒有問題?如果沒有,那 i 到底是什么 屬性?

  回答一:沒有問題,例如只讀的狀態(tài)寄存器。它是volatile,因為它可能被意想不到地改變;它是const,因為程序不應該試圖去修改它。volatile和const并不矛盾,只是控制的范圍不一樣,一個在程序本身之外,另一個是程序本身。

  回答二:沒問題,const和volatile這兩個類型限定符不矛盾。const表示(運行時)常量語義:被const修飾的對象在所在的作用域無法進行修改操作,編譯器對于試圖直接修改const對象的表達式會產(chǎn)生編譯錯誤。volatile表示“易變的”,即在運行期對象可能在當前程序上下文的控制流以外被修改(例如多線程中被其它線程修改;對象所在的存儲器可能被多個硬件設備隨機修改等情況):被volatile修飾的對象,編譯器不會對這個對象的操作進行優(yōu)化。一個對象可以同時被const和volatile修飾,表明這個對象體現(xiàn)常量語義,但同時可能被當前對象所在程序上下文意外的情況修改。另外,LS錯誤,const可以修飾左值,修飾的對象本身也可以作為左值(例如數(shù)組)。

【C語言volatile與const同時使用應注意的問題】相關文章:

C語言的const使用方法07-02

C語言中volatile的使用方法09-30

C語言中volatile的含義08-14

C語言關鍵字const用法09-06

C語言中volatile關鍵字分析07-26

C語言中關鍵字volatile的含義07-22

C語言位域的使用與注意事項解析07-22

C語言的使用的詳解09-17

C語言if語句的使用06-30

C語言for循環(huán)的使用10-24

主站蜘蛛池模板: 嘉定区| 若尔盖县| 洛隆县| 东光县| 平定县| 青海省| 布拖县| 明溪县| 台南市| 无为县| 天峨县| 望江县| 织金县| 西贡区| 图们市| 南丹县| 涟源市| 瑞丽市| 大兴区| 长汀县| 璧山县| 曲麻莱县| 黎城县| 靖州| 左权县| 伊宁县| 大兴区| 双柏县| 旬邑县| 凤翔县| 突泉县| 平顺县| 周至县| 微山县| 缙云县| 卢湾区| 宝清县| 舒兰市| 沁源县| 江油市| 随州市|