日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術(shù)中心 >> 單片機入門 >> 嵌入式系統(tǒng)C語言重點語法const、volatile、static、堆棧等的意義及用法

嵌入式系統(tǒng)C語言重點語法const、volatile、static、堆棧等的意義及用法

關(guān)鍵字:嵌入式 C語言 作者:admin 來源:不詳 發(fā)布時間:2018-05-18  瀏覽:11
1.png

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

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

2.png

const:

const修飾的數(shù)據(jù)類型是指常類型,常類型的變量或?qū)ο蟮闹凳遣荒鼙桓碌摹?/p>

const關(guān)鍵字的作用主要有以下幾點:

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

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

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

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

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

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

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

class A { ......

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

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

}; 1234

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

#define PI 3.14159 //常量宏

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

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

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

double j=Pi; //沒有內(nèi)存分配

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

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

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

編輯:admin  最后修改時間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

永和县| 正安县| 吉林省| 万全县| 柏乡县| 米林县| 铜川市| 枝江市| 大洼县| 眉山市| 张家港市| 邹城市| 邹城市| 阿城市| 淳化县| 荥经县| 武乡县| 曲阜市| 名山县| 平罗县| 铁岭县| 绥中县| 乌拉特中旗| 阿荣旗| 义乌市| 合肥市| 洞头县| 丹阳市| 唐山市| 阿巴嘎旗| 岱山县| 星子县| 开化县| 克什克腾旗| 嘉定区| 黄浦区| 平湖市| 无极县| 驻马店市| 崇礼县| 万宁市|