chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶你在單片機(jī)編程中熟練使用const(可下載)

帶你在單片機(jī)編程中熟練使用const(可下載)

2025-04-01 | pdf | 464.91 KB | 次下載 | 免費(fèi)

資料介紹

在 C 語(yǔ)言關(guān)鍵字中 const 舉足輕重,我們今天就深度聊一聊 const 的定義和實(shí)際應(yīng)用,讓它 不再是迷C 語(yǔ)言中 const 關(guān)鍵字是 constant 的縮寫(xiě),是恒定不變的意思。通常翻譯為常量、常數(shù)等

 我們一看到 const 關(guān)鍵字馬上就想到了常量。這是不精確的,精確來(lái)說(shuō)應(yīng)該是只讀變量其 值在編譯時(shí)不能被使用,因?yàn)榫幾g器在編譯時(shí)不知道其存儲(chǔ)的內(nèi)容

那么 const 推出的初始 目的正是為了取代預(yù)編譯指令,消除它的缺點(diǎn),同時(shí)繼承它的優(yōu)點(diǎn)

事實(shí)上在 C 語(yǔ)言中 const 功能很強(qiáng)大,它可以修飾變量、數(shù)組、指針、函數(shù)參數(shù)等

1、const 修飾的只讀變量

C 語(yǔ)言中采用 const 修飾變量,功能是對(duì)變量聲明為只讀特性,并保護(hù)變量值以防被修改。 例如:

const int Max = 100;

int Array[Max];

這個(gè)大家可以在 Visual C++6.0 創(chuàng)建一個(gè).c 文件測(cè)試一下,你會(huì)發(fā)現(xiàn)在.c 文件中編譯器會(huì)提示出錯(cuò)。我們知道定義一個(gè)數(shù)組必須指定其元素的個(gè)數(shù),這也從側(cè)面證實(shí)在 C 語(yǔ)言中 const修飾的 Max 仍然是變量,只不過(guò)是只讀屬性罷了

還有值得注意的是,定義變量的同時(shí),必須初始化,并且不能再重新賦值

2、節(jié)省空間,避免不必要的內(nèi)存分配,同時(shí)提高效率

編譯器通常不為普通 const 只讀變量分配存儲(chǔ)空間,而是將他們保存在符號(hào)表中

這使得它 成為一個(gè)編譯期間的值,沒(méi)有了存儲(chǔ)與讀內(nèi)存的操作,使得它的效率也很高

例如:

#define M 3 //宏常量

const int N= 5; //此時(shí)并未將 N 放入內(nèi)存中

int i = N; //此時(shí)為 N 分配內(nèi)存,以后不再分配

int I = M; //預(yù)編譯期間進(jìn)行宏替換,分配內(nèi)存

int j = N; //沒(méi)有內(nèi)存分配

int J = M; //再進(jìn)行宏替換,又一次分配內(nèi)存

const 定義的只讀變量從匯編的角度來(lái)看,只是給出了對(duì)應(yīng)的內(nèi)存地址,而不是像#define 一樣給出的是立即數(shù)

所以,const 定義的只讀變量在程序運(yùn)行過(guò)程中只有一份備份(因?yàn)?它是全局的只讀變量,存放在靜態(tài)區(qū))

而#define 定義的宏常量在內(nèi)存中有若干個(gè)備份

#define 宏是在預(yù)編譯階段進(jìn)行替換,而 const 修飾的只讀變量是在編譯的時(shí)候確定其值

#define 宏沒(méi)有類(lèi)型,而 const 修飾的只讀變量具有特定的類(lèi)型

3、修飾一般變量

一般變量是指簡(jiǎn)單類(lèi)型的只讀變量。這種只讀變量在定義時(shí),修飾符 const 可以用在類(lèi)型說(shuō) 明符前,也可以用在類(lèi)型說(shuō)明符后,例如:

int const i = 2; 或 const int i = 2;

4、 修飾數(shù)組

C 語(yǔ)言中 const 還可以修飾數(shù)組,舉例如下:

const int array[5] = {1,2,3,4,5};

array[0] = array[0]+1; //錯(cuò)誤

數(shù)組元素與變量類(lèi)似,具有只讀屬性,不能被更改;一旦更改,如程序?qū)?huì)報(bào)錯(cuò)

5、 修飾指針

C 語(yǔ)言中 const 修飾指針要特別注意,共有兩種形式,一種是用來(lái)限定指向空間的值不能修

改;另一種是限定指針不可更改。舉例說(shuō)明如下:

Const 離誰(shuí)近修飾誰(shuí)的原則

例如:

const int * p1; //定義 1,p1 可變,p1 指向的對(duì)象不可變

int * const p2; //定義 2,p2 不可變,p2 指向的對(duì)象可變

上面定義了兩個(gè)指針 p1 和 p2

在定義 1 中 const 限定的是*p1,即其指向空間的值不可改變,若改變其指向空間的值如

*p1=20,則程序會(huì)報(bào)錯(cuò);但 p1 的值是可以改變的,對(duì) p1 重新賦值如 p1=&k 是沒(méi)有任何問(wèn) 題的

完整版技術(shù)文檔請(qǐng)點(diǎn)擊文章開(kāi)頭普通下載

單片機(jī) 軟件工程師 單片機(jī)工程師
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

  • --
    文章
  • --
    閱讀
  • --
    粉絲

下載排行

本周

  1. 1ECM96智能電測(cè)儀表使用說(shuō)明書(shū)
  2. 3.41 MB   |  7次下載  |  10 積分
  3. 2ECM72智能電測(cè)儀表使用說(shuō)明書(shū)
  4. 2.07 MB   |  2次下載  |  10 積分
  5. 3納祥科技NX9020中文規(guī)格書(shū),114 dB CODEC,國(guó)產(chǎn)替代CS4272
  6. 440.34 KB  |  2次下載  |  免費(fèi)
  7. 4 斯丹電子 | 磁傳感技術(shù)在數(shù)據(jù)中心市場(chǎng)應(yīng)用
  8. 614.56 KB  |  2次下載  |  免費(fèi)
  9. 5矽力杰 Silergy SY8303A 降壓轉(zhuǎn)換器 規(guī)格書(shū) Datasheet 佰祥電子
  10. 815.36 KB  |  1次下載  |  免費(fèi)
  11. 6WD1117產(chǎn)品規(guī)格書(shū)
  12. 763.67 KB  |  1次下載  |  免費(fèi)
  13. 7LAT1596一文說(shuō)明白STM32G4雙Bank啟動(dòng)與升級(jí)
  14. 0.64 MB   |  次下載  |  3 積分
  15. 8PC0815/PC0815A 850伏N溝道耗盡模式功率MOSFET技術(shù)手冊(cè)
  16. 0.42 MB   |  次下載  |  免費(fèi)

本月

  1. 1ECM96智能電測(cè)儀表使用說(shuō)明書(shū)
  2. 3.41 MB   |  7次下載  |  10 積分
  3. 2矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書(shū) Datasheet 佰祥電子
  4. 1.12 MB  |  5次下載  |  免費(fèi)
  5. 3SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
  6. 1.01 MB   |  3次下載  |  免費(fèi)
  7. 4ECM72智能電測(cè)儀表使用說(shuō)明書(shū)
  8. 2.07 MB   |  2次下載  |  10 積分
  9. 5怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
  10. 0.65 MB   |  2次下載  |  免費(fèi)
  11. 6SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
  12. 0.94 MB   |  2次下載  |  免費(fèi)
  13. 7華潤(rùn)微 CRTE280P06L2-G -60V Trench P-MOSFET 技術(shù)參數(shù)與應(yīng)用解析
  14. 1.83 MB  |  2次下載  |  免費(fèi)
  15. 8IP5356H_G3?支持高壓SCP/PD3.0等全協(xié)議并集成USB2.0智能監(jiān)測(cè)的移動(dòng)電源 SOC
  16. 2.75 MB  |  2次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191469次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81606次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73832次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分