auto:默認,自動分配空間,自動回收空間
創(chuàng)新互聯(lián)建站是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計公司的優(yōu)秀設(shè)計人員和策劃人員組成的一個具有豐富經(jīng)驗的團隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計師、平面廣告設(shè)計師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)站改版、網(wǎng)頁設(shè)計制作、網(wǎng)站建設(shè)與維護、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務(wù)。
register:
1. register變量必須是能被CPU寄存器所接受的類型,這通常意味著register變量必須是一個單個 的值,并且其長度應(yīng)小于或等于整型的長度。這與處理器的類型有關(guān)。
2. 聲明為register僅僅是一個請求,而非命令,因此變量仍然可能是普通的自動變量,沒有放在 寄存器中。
3. 由于變量有可能存儲在寄存器中,因此不能用取地址運算符“&”獲取register變量的地址。 如果有這樣的寫法,編譯器會報錯。
4. 只有局部變量和形參可以作為register變量,全局變量不行。
5. 實際上有些系統(tǒng)并不把register變量存放在寄存器中,而優(yōu)化的編譯系統(tǒng)則可以自動識別使用 頻繁的變量而把他們放在寄存器中。
static:靜態(tài)型
1.自動初始化為0值或空值,并值其變量的值有繼承性
void func(void)
{
static int x = 0;
x = x + 1;
printf("%p->%d\n",&x,x);
}
int main()
{
func();
func();
func();
}
Result:
1
2
3
備注:這里的static就具有繼承性,意思第一次定int x,下次再調(diào)用的時候就不再調(diào)用
2.限制作用域范圍
main.c
#include <stdio.h>
#include <stdlib.h>
#include "proj.h"
static int i = 10;
int main()
{
printf("[%s]:i = %d\n",__FUNCTION__,i);
//__FUNCTION__表示是哪個函數(shù)
func();
exit(0);
}
proj.h
#ifndef PROJ_H__
#definePROJ_H__
void func(void);
#endif
proj.c
#include <stdio.h>
#include <stdlib.h>
#include "proj.h"
static int i = 100;
void func(void)
{
printf("[%s]:i= %d\n",__FUNCTION__,i);
exit(0);
}
Result:
[main]:i = 10
[func]:i = 100
注意static
1.以上如果變量i不加static會在編譯的時候會出現(xiàn)變量沖突,
加了static表示只能在當(dāng)前文件中使用
2.如果在void func(void)加一個static 表示只能在當(dāng)前文件中調(diào)用,
在其他文件中不能調(diào)用,如上面main.c
extern:說明型
不能改變被是一個說明的變量的值或類型
文章題目:C語言存儲模型
鏈接分享:http://chinadenli.net/article42/jiecec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、微信小程序、軟件開發(fā)、網(wǎng)站排名、網(wǎng)站策劃、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)