** 今天為大家?guī)碜兞看鎯Φ脑敿?a href="http://www.nxhydt.com/v/" target="_blank">教程**
變量
在編寫C程序的過程中,我們常常會使用到變量。而基本的變量類型在前面的教程也已經(jīng)講到,在我們創(chuàng)建這些變量的時候,變量會被創(chuàng)建在內(nèi)存。值得注意的是,變量在不同的內(nèi)存中有著不同的特性,因此,我們可以通過一些關(guān)鍵字來規(guī)定變量在內(nèi)存創(chuàng)建的位置。從而達到我們想要的結(jié)果。
在C語言中,變量在內(nèi)存中的存儲方式主要分為靜態(tài)存儲和動態(tài)存儲。這兩者的區(qū)別在于靜態(tài)存儲有固定的內(nèi)存空間,而動態(tài)存儲的內(nèi)存空間是根據(jù)情況而定的。我們可以通過如下關(guān)鍵字來定義變量的存儲位置。
- register 變量
在C語言中,我們可以通過 register 關(guān)鍵字標記變量,使用register關(guān)鍵字標記的變量會創(chuàng)建在寄存器中。但是在通常情況下,這樣做沒有什么作用,因為絕大多數(shù)的硬件的寄存器都不會占用內(nèi)存空間。所以編譯器會默認忽視 register 關(guān)鍵字。如果想有效地使用 register 關(guān)鍵字,就要通過一些匯編指令。但是不同硬件之間的寄存器又有所不同,因此 register 關(guān)鍵字的作用不大。
- auto 變量
在C語言中,我們可以通過 auto 關(guān)鍵字創(chuàng)建一個自動的局部變量。加上這個關(guān)鍵字的變量在每一次定義的時候都會自動創(chuàng)建出一個新的變量,并且會對這個新的變量重新初始化。例如:
void autoAdd() {
auto int autonum = 0;
autonum =autonum + 1;
cout << autonum << endl;
}
int main() {
autoAdd();
autoAdd();
}
從結(jié)果可以看到,調(diào)用兩次函數(shù)后結(jié)果是同樣的。因為auto修飾的變量每一次定義都會重新創(chuàng)建。
- extern 變量
在C語言中, extern 關(guān)鍵字可以聲明程序中會用到但還未定義的變量。 extern 在分文件編寫的工程中尤為重要。因為在實際開發(fā)中,我們都會分文件,分功能編寫。不同的文件會用到相同的變量,因此, extern 關(guān)鍵字是十分重要的。
- static 變量
在C語言中, static 關(guān)鍵字可以將變量改為靜態(tài)變量。靜態(tài)變量會將數(shù)據(jù)存儲在內(nèi)存的全局區(qū),全局區(qū)的數(shù)據(jù)在使用完成后釋放。因此,靜態(tài)變量可以始終保持其原本的值。
今天的內(nèi)容就到這里,下期小編將帶大家繼續(xù)學習,各位看官老爺記得查閱哦~
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
3004瀏覽量
73900 -
變量
+關(guān)注
關(guān)注
0文章
613瀏覽量
28334 -
C程序
+關(guān)注
關(guān)注
4文章
254瀏覽量
36002
發(fā)布評論請先 登錄
相關(guān)推薦
變量的存儲小結(jié)
變量是C語言最基礎(chǔ)也是最核心的概念,對于初學C語言的同學來說變量的存儲總是覺得比較混亂。這里對C的變量做一個簡單的小結(jié),希望對大家有所幫助。我們看到對
發(fā)表于 10-25 15:04
變量的存儲小結(jié)
變量是C語言最基礎(chǔ)也是最核心的概念,對于初學C語言的同學來說變量的存儲總是覺得比較混亂。這里對C的變量一個簡單的小結(jié),希望對大家有所幫助。我們看到對
發(fā)表于 12-02 10:52
變量的存儲小結(jié)
變量是C語言最基礎(chǔ)也是最核心的概念,對于初學C語言的同學來說變量的存儲總是覺得比較混亂。這里對C的變量做一個簡單的小結(jié),希望對大家有所幫助。我們看到對
發(fā)表于 12-13 15:27
變量的存儲類型
變量的存儲類型有4種,分別是static、external、register、auto,對于每一種存儲類型,他們都有相應(yīng)的使用方式和特點,下面就分別對這四種存儲類型介紹一下:1.sta
發(fā)表于 01-10 15:05
6657局部變量存儲地址異常 請問是什么原因?
程序Debug時進入子函數(shù),控制臺顯示訪問0x44xxxxxx地址時出錯。仔細一看,原來是子函數(shù)的局部變量存儲在這個0x44xxxxxx地址。查了datasheet,0x40000000
發(fā)表于 08-07 06:58
如何通過BLE發(fā)送一個變量存儲在一個智能手機上?
你好,我是Gaurav。我想收集關(guān)于PSo4-042的LDR的讀數(shù)。現(xiàn)在我可以在一個變量中收集數(shù)據(jù)。但我不知道我怎么把它送來。1、請告訴我如何通過BLE發(fā)送一個變量存儲在一個智能手機上?謝謝您,Cyrkk.Access 02.Z
發(fā)表于 10-25 10:02
如何將變量存儲到PIC24FF64GA002內(nèi)存中
你好。我想把一些整數(shù)和字符串變量存儲到特定的數(shù)據(jù)EEPROM地址中。我使用MPLAB X 3.40、XC16和PIC24FJ64 GA02。我試著在互聯(lián)網(wǎng)上找到一些工作代碼,但是沒有。如果有人能給出一個例子/源代碼或如何將變量
發(fā)表于 04-27 13:03
【STM32】STM32 變量存儲在片內(nèi)FLASH的指定位置
在這里以STM32L4R5為例(官方出的DEMO板),將變量存儲在指定的片內(nèi)FLASH地址(0x081F8000)。一、MDK Keil軟件操作uint8_t version[12
發(fā)表于 12-02 11:06
?9次下載
評論