日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

c语言static. volatile,嵌入式系统C语言重点语法const、volatile、static、堆栈等的意义及用法...

發布時間:2025/3/21 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言static. volatile,嵌入式系统C语言重点语法const、volatile、static、堆栈等的意义及用法... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:嵌入式系統C語言重點語法const、volatile、static、堆棧等的意義及用法

在單片機應用中,堆棧是個特殊的存儲區,主要功能是暫時存放數據和地址,通常用來保護斷點和現場。

要點:堆,隊列優先,先進先出(FIFO—first in first out) 。 棧,先進后出(FILO—First-In/Last-Out)。

const:

const修飾的數據類型是指常類型,常類型的變量或對象的值是不能被更新的。

const關鍵字的作用主要有以下幾點:

(1)可以定義const常量,具有不可變性。 例如:

const int Max=100; int Array[Max];

(2)便于進行類型檢查,使編譯器對處理內容有更多了解,消除了一些隱患。例如: void f(const int i) { ………} 編譯器就會知道i是一個常量,不允許修改;

(3)可以避免意義模糊的數字出現,同樣可以很方便地進行參數的調整和修改。

(4)可以保護被修飾的東西,防止意外的修改,增強程序的健壯性。 還是上面的例子,如果在函數體內修改了i,編譯器就會報錯; 例如:

void f(const int i) { i=10;//error! } 1

(5) 為函數重載提供了一個參考。

class A { ......

void f(int i) {......} //一個函數

void f(int i) const {......} //上一個函數的重載 ......

}; 1234

(6) 可以節省空間,避免不必要的內存分配。 例如:

#define PI 3.14159 //常量宏

const doulbe Pi=3.14159; //此時并未將Pi放入ROM中 ......

double i=Pi; //此時為Pi分配內存,以后不再分配!

double I=PI; //編譯期間進行宏替換,分配內存

double j=Pi; //沒有內存分配

double J=PI; //再進行宏替換,又一次分配內存! 123456

const定義常量從匯編的角度來看,只是給出了對應的內存地址,而不是象#define一樣給出的是立即數,所以,const定義的常量在程序運行過程中只有一份拷貝,而#define定義的常量在內存中有若干個拷貝。

(7) 提高了效率。 編譯器通常不為普通const常量分配存儲空間,而是將它們保存在符號表中,這使得它成為一個編譯期間的常量,沒有了存儲與讀內存的操作,使得它的效率也很高。

本文章來源網絡,如果原作者不支持咱們轉發,請聯系刪除,謝謝!

技術源于積累,成功來自執著返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的c语言static. volatile,嵌入式系统C语言重点语法const、volatile、static、堆栈等的意义及用法...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。