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

朗朗空間

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

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

常用鏈接

留言簿(1)

我參與的團隊

搜索

  •  

最新隨筆

最新評論

閱讀排行榜

評論排行榜

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

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

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

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

具有代碼塊作用域的變量一般情況下具有自動存儲時期。
當程序進入定義這些變量的代碼塊時,將為這些變量分配內存。
當推出這個代碼塊時,內存將被釋放。
這樣,在一個函數調用結束后,它的變量所占用的內存空間可以用來存儲下一個被調用函數的變量。

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

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中存儲類。
自動,寄存器、具有代碼塊作用域的靜態、具有外部鏈接的靜態、具有內部鏈接的靜態
1.自動變量
自動變量具有自動存儲時期、代碼塊作用域和空鏈接。
默認情況下,在代碼塊或函數的頭部定義的任意變量都屬于自動存儲類。
你可以顯示的使用關鍵字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已經消失
}

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

#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中規定,語句若為循環或者if語句的一部分,即使沒有使用{},也認為是一個代碼塊。

#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.寄存器變量
通常,變量存儲在計算機內存中。如果幸運,寄存器變量可以被存儲在CPU的寄存器中,這樣速度會更快。
在其它許多方面,它和自動變量是一樣的。
通過使用存儲類型說明符register可以聲明寄存器變量。

int main (void)
{
    
register int quick;
}

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

void macho (register int n)

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

#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++);
}

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

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

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

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

,這里不再討論。

int traveler = 1; //外部鏈接
static int stayhome = 1; //內部鏈接
posted on 2008-05-06 20:18 聶元朗 閱讀(452) 評論(0)  編輯 收藏 引用 所屬分類: C語言學習筆記
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲美女黄网| 午夜一区二区三区不卡视频| 久久久噜噜噜久噜久久| 国模一区二区三区| 免费成人美女女| 欧美成人a视频| 一本久道久久久| 亚洲视频综合| 狠狠久久婷婷| 亚洲国产精品黑人久久久| 欧美国产另类| 午夜精品一区二区三区在线播放| 亚洲欧美日韩精品久久久久| 国产在线精品一区二区中文| 欧美成人嫩草网站| 欧美日韩1区2区3区| 香蕉久久国产| 久久深夜福利免费观看| 夜色激情一区二区| 午夜天堂精品久久久久| 亚洲第一黄色网| 一本色道久久综合| 黄色另类av| 99视频在线精品国自产拍免费观看| 国产精品嫩草影院一区二区| 免费成人av在线| 欧美视频第二页| 美女91精品| 国产精品一区二区你懂的| 免费日韩成人| 国产精品亚洲片夜色在线| 欧美激情国产高清| 国产一区二区三区无遮挡| 最新中文字幕一区二区三区| 国产女主播一区二区| 亚洲国产精品久久91精品| 国产九九视频一区二区三区| 亚洲国产欧美不卡在线观看 | 亚洲成人在线视频播放 | 亚洲黄页一区| 亚洲精品小视频在线观看| 国产一区二区成人久久免费影院| 亚洲国产精品尤物yw在线观看| 国产精一区二区三区| 亚洲精品护士| 91久久精品日日躁夜夜躁欧美| 亚洲一区二区日本| 亚洲视频欧美在线| 欧美粗暴jizz性欧美20| 免费成人小视频| 国产日韩欧美综合精品| 一区二区三区久久网| 日韩一区二区免费高清| 蜜桃av噜噜一区| 久久综合亚洲社区| 国产一区视频在线观看免费| 亚洲影院污污.| 午夜精品成人在线| 欧美天天视频| 一本色道久久综合亚洲精品按摩| 99ri日韩精品视频| 欧美日韩成人激情| 亚洲清纯自拍| 这里是久久伊人| 欧美午夜精品伦理| 99re6这里只有精品视频在线观看| 亚洲欧洲在线观看| 欧美精品一区二区三区一线天视频| 欧美a级片一区| 最新成人av在线| 欧美精品一区二区在线观看| 亚洲第一毛片| 一区二区免费在线观看| 欧美日韩精品欧美日韩精品一| 日韩亚洲欧美一区| 亚洲综合第一| 国产一区二区三区精品欧美日韩一区二区三区| 欧美在线视频免费观看| 国产精品一二三视频| 欧美亚洲专区| 久久久国产精品一区二区中文| 国内一区二区三区在线视频| 久久久国产精品亚洲一区| 欧美h视频在线| 一本色道久久综合狠狠躁篇怎么玩| 欧美日韩黄色大片| 亚洲欧美在线播放| 噜噜噜91成人网| 日韩写真视频在线观看| 国产精品伦一区| 久久精品视频免费播放| 亚洲二区在线| 亚洲欧美变态国产另类| 国模精品一区二区三区色天香| 久久综合伊人77777蜜臀| 亚洲日本免费电影| 久久国产精品亚洲va麻豆| 亚洲电影成人| 国产精品久久网站| 免费国产自线拍一欧美视频| 99riav1国产精品视频| 久久久精品网| 中国女人久久久| 国产一区二区三区黄| 欧美日本国产在线| 久久精品视频在线看| 99视频有精品| 欧美成人在线网站| 欧美在线视频观看| 一区二区国产精品| 黑人巨大精品欧美黑白配亚洲| 欧美人与禽猛交乱配视频| 香港久久久电影| 日韩天堂av| 欧美www在线| 欧美中文字幕在线观看| 亚洲少妇中出一区| 91久久精品www人人做人人爽| 国产精品永久免费| 欧美日韩 国产精品| 久久久精品性| 欧美亚洲专区| 亚洲性视频网站| 99国产精品99久久久久久| 欧美激情在线观看| 美女国内精品自产拍在线播放| 午夜免费日韩视频| 亚洲一区二区在线免费观看视频| 亚洲第一综合天堂另类专| 国产一区深夜福利| 国产日产精品一区二区三区四区的观看方式 | 亚洲国产精品成人一区二区| 国产精品久久久久久久久久久久久| 老牛影视一区二区三区| 久久精品国产清高在天天线| 亚洲午夜激情| 国产午夜精品久久久久久免费视 | 99热在线精品观看| 亚洲第一视频| 免费看的黄色欧美网站| 久久久999成人| 久久精品五月| 久久精品国产亚洲高清剧情介绍| 亚洲女同同性videoxma| 亚洲午夜女主播在线直播| 一本一道久久综合狠狠老精东影业| 亚洲国产精品久久久久秋霞影院| 黄色成人精品网站| 依依成人综合视频| 亚洲第一中文字幕| 亚洲韩日在线| 日韩午夜免费| 亚洲男女自偷自拍图片另类| 亚洲一区二区欧美日韩| 亚洲欧美一区二区视频| 欧美一级二级三级蜜桃| 久久久91精品国产| 狂野欧美一区| 欧美激情一区| 日韩一级黄色大片| 亚洲综合欧美| 久久久国产精品亚洲一区 | 欧美视频观看一区| 国产精品欧美一区喷水 | 国产精品毛片a∨一区二区三区| 国产精品chinese| 国产日本欧美一区二区三区在线| 国内精品视频在线观看| 亚洲国产欧美日韩精品| 亚洲美女av在线播放| 亚洲男人的天堂在线aⅴ视频| 久久成人一区二区| 欧美高清在线播放| 一道本一区二区| 久久久久久**毛片大全| 欧美黑人多人双交| 国产欧美成人| 亚洲久久视频| 久久精品国产成人| 亚洲人成网站色ww在线| 亚洲在线中文字幕| 久久综合网hezyo| 国产精品激情偷乱一区二区∴| 黄色在线一区| 亚洲尤物在线| 亚洲成在人线av| 亚洲女人天堂av| 欧美精品18videos性欧美| 国产手机视频精品| 99国产一区| 欧美大片一区二区三区| 亚洲欧美综合v| 欧美三级视频在线播放| 亚洲国产成人av| 久久国产精品99国产| 亚洲国产一二三| 久久另类ts人妖一区二区| 国产精品久久| 一区二区三区国产在线观看| 免费成人高清视频|