青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

朗朗空間

我知道并不是 所有鳥兒都飛翔

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  16 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

常用鏈接

留言簿(1)

我參與的團(tuán)隊

搜索

  •  

最新隨筆

最新評論

閱讀排行榜

評論排行榜

2.鏈接
一個C變量具有下列鏈接之一:
外部鏈接 (external linkage)
內(nèi)部鏈接 (internal linkage)
空鏈接 (no linkage)
具有代碼塊作用域或者函數(shù)原型作用域的變量具有空鏈接,意味著它們是由其定義所在的代碼塊或函數(shù)原型所私有的。
具有文件作用域的變量可能有內(nèi)部或者外部鏈接。
一個具有外部鏈接的變量可以在一個多文件程序的任何地方使用。
一個具有內(nèi)部鏈接的變量可以在一個文件的任何地方使用。
那怎樣知道一個文件作用域變量具有內(nèi)部鏈接還是外部鏈接?
你可以看看在外部定義中是否使用了存儲類說明符static:

int giants = 5;//文件作用域,外部鏈接
static int dodgers = 3;//文件作用域,內(nèi)部鏈接
int main ()
{
    ……
}

和該文件屬于同一程序的其他文件可以使用變量giants。
變量dodgers是該文件私有的,但是可以被該文件中的任一函數(shù)使用。

2.存儲時期
一個C變量有兩種存儲時期之一:
靜態(tài)存儲時期(static storage duration)和自動存儲時期(automatic storage duration)。
如果一個變量具有靜態(tài)存儲時期,它在程序執(zhí)行期間將一直存在。
具有文件作用域的變量具有靜態(tài)存儲時期。
注意對于具有文件作用域的變量,關(guān)鍵字static表示鏈接類型,并非存儲時期。
因為所有的文件作用域變量,無論它具有內(nèi)部鏈接,還是具有外部鏈接,都具有靜態(tài)存儲時期。

具有代碼塊作用域的變量一般情況下具有自動存儲時期。
當(dāng)程序進(jìn)入定義這些變量的代碼塊時,將為這些變量分配內(nèi)存。
當(dāng)推出這個代碼塊時,內(nèi)存將被釋放。
這樣,在一個函數(shù)調(diào)用結(jié)束后,它的變量所占用的內(nèi)存空間可以用來存儲下一個被調(diào)用函數(shù)的變量。

到現(xiàn)在我們所使用的局部變量都屬于自動類型。

void bore (int number)
{
    
int index;
    
for (index = 0; index < number; index++)
    
{
        
puts ("They don't make them the way they used to.\n");
        
return 0;
    
}
}

總論:c使用作用域、鏈接和存儲時期來定義5中存儲類。
自動,寄存器、具有代碼塊作用域的靜態(tài)、具有外部鏈接的靜態(tài)、具有內(nèi)部鏈接的靜態(tài)
1.自動變量
自動變量具有自動存儲時期、代碼塊作用域和空鏈接。
默認(rèn)情況下,在代碼塊或函數(shù)的頭部定義的任意變量都屬于自動存儲類。
你可以顯示的使用關(guān)鍵字auto來表明一個變量為自動變量,但我們一般不寫。

int main (void)
{
    
auto int plox;
}
 
int loop (int n)
{
    
int m// m的作用域
    
scanf ("%d", &m);
    
{
        
int i; // m和i的作用域
        
for (i=m; i < n; i++)
        
{
            
puts ("i is local to a sub-block\n");
        
}
    
}
    
    
return m// m的作用域, i已經(jīng)消失
}

如果在內(nèi)層代碼塊定義了一個具有和外層代碼塊便來那個同一名字的變量,將會怎樣?
(最好不要在你的代碼中這樣做)
這時內(nèi)層代碼塊將使用在內(nèi)層代碼塊中這個新定義的變量。
我們稱之為內(nèi)層定義覆蓋(hide)了外部定義,只有當(dāng)運(yùn)行離開內(nèi)層代碼塊是,外部變量才會重新恢復(fù)使用。

#include <stdio.h>
int main (void)
{
    
int x = 30;
    
printf ("x in outer block: %d\n", x);
    
{
        
int x = 77;
        
printf ("x in inner block: %d\n", x);
    
}
}

注意:
c99中規(guī)定,語句若為循環(huán)或者if語句的一部分,即使沒有使用{},也認(rèn)為是一個代碼塊。

#include <stdio.h>
int main (void)
{
    
int n = 10;
    
printf ("Initially, n = %d\n", n);
    
    
for (int n = 1; n < 3; n++)
        
printf ("loop : n = %d\n", n);
    
    
printf ("Initially, n = %d\n", n);
    
    
return 0;
}

注意:
除非您顯式地初始化自動變量,否則它不會被自動初始化。

int main (void)
{
    
int repid;
    
int tents = 5;
}

repid的初值則是先前占用分配給它的空間的任意值。不要指望這個值是0。

2.寄存器變量
通常,變量存儲在計算機(jī)內(nèi)存中。如果幸運(yùn),寄存器變量可以被存儲在CPU的寄存器中,這樣速度會更快。
在其它許多方面,它和自動變量是一樣的。
通過使用存儲類型說明符register可以聲明寄存器變量。

int main (void)
{
    
register int quick;
}

我們說如果幸運(yùn)是因為聲明一個寄存器類變量僅僅是一個請求,而不是一條直接命令。
因為CPU寄存器往往很少,編譯器必須在可用寄存器的個數(shù)和可用高速內(nèi)存的數(shù)量之間做權(quán)衡。
這種情況下,變量成為一個普通的自動變量。
但是,你不能對它使用地址運(yùn)算符。
可以把一個形式參量請求為寄存器變量。

void macho (register int n)

3.具有代碼塊作用域的靜態(tài)變量
靜態(tài)變量像是一個不可變的變量。
但實際上,靜態(tài)指變量的的位置固定不動。
具有文件作用域的變量自動的具有靜態(tài)存儲時期。
也可以創(chuàng)建具有代碼塊作用域,兼具有靜態(tài)存儲的局部變量。
這些變量和自動變量具有相同的作用域,當(dāng)包含這些變量的函數(shù)完成工作時,它們并不消失。
從一次函數(shù)調(diào)用到下一次調(diào)用,計算機(jī)都記錄著他們的值。
我們可以使用存儲類說明符static在代碼塊內(nèi)聲明這些變量。

#include <stdio.h>
void trystat (void);
int main (void)
{
    
int count;
 
    
for (count = 1; count <= 3; count++)
    
{
        
printf ("Here comes iteration %d:\n", count);
        
trystat ();
    
}
    
    
return 0;
}
 
void trystat (void)
{
    
int fade = 1;
    
static int stay = 1;
    
    
printf ("fade = %d and stay = %d\n", fade++, stay++);
}

注意:
對函數(shù)參數(shù)不能使用static。
4.具有外部鏈接的靜態(tài)變量
具有外部鏈接的靜態(tài)變量具有文件作用域、外部鏈接和靜態(tài)存儲時期。
這一類型的變量成為外部變量 external variable。
把變量的定義聲明放在所有函數(shù)之外,即創(chuàng)建了一個外部變量。
為了使程序更加清晰,可以在使用外部變量的函數(shù)中通過使用extern關(guān)鍵字來再次聲明它。
如果變量是在別的文件中定義的,使用extern來聲明該變量就是必須的。

int Errupt//外部定義的變量
double Up[100]; //外部聲明的數(shù)組
extern char Coal; //必須的聲明,因為Coal在其它文件中定義
 
void next (void);
int main (void)
{
    
extern int Errupt;//可選的聲明
    
extern double Up[];//可選的聲明
}
void next (void)
{
}

注意:
不同于自動變量,如果您不對外部變量進(jìn)行初始化,他們將自動被賦初值0。
這一原則也適用于外部定義的數(shù)組。

5.具有內(nèi)部靜態(tài)鏈接的靜態(tài)變量
通過使用存儲類說明符(注意不是靜態(tài)變量聲明符)static在所有函數(shù)的外部進(jìn)行定義,前面已經(jīng)說過該變量為整個文件私有

,這里不再討論。

int traveler = 1; //外部鏈接
static int stayhome = 1; //內(nèi)部鏈接
posted on 2008-05-06 20:18 聶元朗 閱讀(450) 評論(0)  編輯 收藏 引用 所屬分類: C語言學(xué)習(xí)筆記
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品国产精品| 亚洲视频一区二区| 亚洲电影观看| 在线观看视频亚洲| 国产欧美亚洲视频| 国外成人在线视频网站| 狠狠色狠狠色综合日日91app| 国产亚洲欧洲| 在线精品亚洲| 日韩写真在线| 欧美一级电影久久| 蜜桃久久精品一区二区| 亚洲美女一区| 午夜精品一区二区三区在线播放| 欧美在线观看天堂一区二区三区| 久久夜色精品一区| 欧美日韩天天操| 国产色产综合产在线视频| 亚洲国产高潮在线观看| 亚洲网站视频福利| 裸体女人亚洲精品一区| 一区二区三区精品视频| 久久久噜噜噜久久久| 欧美午夜视频| 亚洲国产婷婷香蕉久久久久久99 | 久久综合九色综合久99| 欧美激情精品久久久久久| 日韩午夜电影av| 久久久99精品免费观看不卡| 欧美日韩精品一区二区| 精品1区2区| 性欧美在线看片a免费观看| 欧美国产日韩一区二区在线观看| 亚洲午夜一级| 欧美激情第9页| 一区二区在线观看视频| 午夜久久一区| a4yy欧美一区二区三区| 免费欧美视频| 曰本成人黄色| 国产精品成人va在线观看| 新狼窝色av性久久久久久| 牛人盗摄一区二区三区视频| 中国成人亚色综合网站| 欧美暴力喷水在线| 国语自产精品视频在线看一大j8| 亚洲色图在线视频| 亚洲国产精品综合| 性视频1819p久久| 欧美性天天影院| 亚洲精品欧美日韩| 亚洲电影在线| 欧美刺激性大交免费视频| 伊人狠狠色j香婷婷综合| 久久精品123| 欧美一区二区精品| 国产欧美一区二区精品性| 午夜激情亚洲| 亚洲欧美网站| 国产日韩欧美精品综合| 欧美一区二区三区在线观看视频 | 在线一区观看| 欧美日韩免费一区二区三区| 亚洲毛片在线观看| 亚洲伦理自拍| 欧美偷拍一区二区| 欧美一区二区精品久久911| 亚洲一区二区三区激情| 国产精品久久久一区二区| 香蕉尹人综合在线观看| 亚洲欧美自拍偷拍| 影音先锋亚洲电影| 亚洲国产一区二区a毛片| 欧美激情一二区| 亚洲一区影音先锋| 小嫩嫩精品导航| 亚洲国产成人不卡| 亚洲九九精品| 国产精品视频免费一区| 老司机久久99久久精品播放免费| 久久美女性网| 一区二区三区 在线观看视频| 一本久久青青| 国产一区二区三区四区在线观看| 久久婷婷影院| 欧美伦理一区二区| 欧美一区中文字幕| 另类综合日韩欧美亚洲| 一区二区三区产品免费精品久久75| 一本不卡影院| 亚洲福利一区| 亚洲视频在线观看一区| 在线成人免费视频| 一本色道久久88综合日韩精品| 国产情人节一区| 最新国产拍偷乱拍精品| 国产婷婷97碰碰久久人人蜜臀| 亚洲影院色无极综合| 国产欧美一级| 亚洲电影免费在线 | 一本色道久久综合亚洲91| 亚洲最新中文字幕| 国内精品久久久久影院色| 亚洲人成7777| 国产一区白浆| 中文亚洲免费| 亚洲精品久久久久久久久久久久久| 日韩午夜剧场| 亚洲国产精品成人一区二区| 亚洲天堂第二页| 亚洲激情不卡| 久久精品91| 欧美亚洲综合网| 欧美午夜精彩| 亚洲精品国产无天堂网2021| 黄色小说综合网站| 午夜国产精品视频| 亚洲免费在线精品一区| 欧美精品1区2区| 欧美好吊妞视频| ●精品国产综合乱码久久久久| 亚洲综合清纯丝袜自拍| 亚洲视频网在线直播| 欧美不卡在线| 免费久久99精品国产| 国产精品日韩精品欧美在线| 最新中文字幕亚洲| 亚洲国产高清一区| 欧美一区二区日韩| 久久精品国产免费| 国产欧美在线播放| 午夜在线视频观看日韩17c| 亚洲欧美精品在线观看| 国产精品久久网| 亚洲视频日本| 欧美专区亚洲专区| 国产一本一道久久香蕉| 欧美一区视频| 欧美不卡一区| 亚洲日韩欧美视频| 欧美精品日韩| 日韩一区二区精品| 亚洲专区国产精品| 国产精品视频一二| 欧美一级理论片| 蜜桃伊人久久| 日韩一级片网址| 欧美午夜宅男影院| 亚洲欧美精品中文字幕在线| 久久精品日产第一区二区| 国产一区在线免费观看| 麻豆久久精品| 亚洲精品免费看| 亚洲无线观看| 国产一区二区久久| 久久综合亚洲社区| 亚洲欧洲一区二区在线播放| 亚洲少妇在线| 国产亚洲精品久| 久久人人爽人人| 亚洲美女啪啪| 日韩午夜激情av| 国产精品麻豆欧美日韩ww| 99精品欧美一区二区三区综合在线 | 亚洲麻豆av| 欧美一区二区三区视频免费| 国内精品嫩模av私拍在线观看| 久久亚洲国产精品日日av夜夜| 欧美福利在线观看| 一本久久综合亚洲鲁鲁五月天| 欧美日韩在线综合| 久久国产乱子精品免费女| 亚洲黄一区二区三区| 亚洲精品久久久久久久久久久久 | 亚洲一区久久久| 欧美jizzhd精品欧美喷水| 亚洲线精品一区二区三区八戒| 国产亚洲欧洲一区高清在线观看| 欧美成人黄色小视频| 午夜精品亚洲| 欧美丰满高潮xxxx喷水动漫| 亚洲欧美日韩一区二区在线| 亚洲国产欧美在线| 国产视频欧美视频| 欧美母乳在线| 久久综合久久综合这里只有精品| 亚洲视频999| 亚洲三级毛片| 另类尿喷潮videofree| 亚洲男女毛片无遮挡| 亚洲剧情一区二区| 精品成人一区二区| 国产精品女主播| 欧美日韩国产精品一区二区亚洲| 欧美一区=区| 一区二区三区精品国产| 亚洲国产福利在线| 久久久久久久999精品视频| 香蕉成人伊视频在线观看 | 在线亚洲欧美专区二区|