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

再談下聲明、定義、初始化、賦值和extern

雖然定義也是聲明,但為了方便說明問題,下文中的聲明只是單純的聲明,定義就只是定義。

1.      聲明、定義、初始化和賦值四個術語有著本質的不同,雖然有時候看起來差不多甚至完全一樣,但如果不搞清楚很容易出現錯誤,或者錯了不知道怎么改。

 

2.     a: extern關鍵詞用來表明這是一個聲明:extern int I;變量i就是一個聲明。聲明前面一定要有一個關鍵字extern,沒有這個關鍵詞就不是一個聲明。

b: 沒有extern就是一個定義,比如int i=9;是一個定義,特別要注意的是int i;這也是一個定義。

c: 初始化就是在變量定義時給變量一個初值,所以初始化語句也一定是一個定義語句,但反過來就不對了,因為類似于:int i;就是定義,但沒有初始化。特別要注意的是:extern int i = 9;雖然有extern關鍵詞,但是因為初始化了,所以這也是一個定義,不是聲明。

d: 賦值語句就簡單了,賦值語句是給一個已經定義的變量(不管這個變量有沒有初始化)一個新值。特別要注意的是,要給賦值的變量必須已經定義過了,僅僅聲明是不行的。

 

3.       extern關鍵詞除了表明這是一個聲明以外,更重要的是表明:所聲明的變量的定義可能是在程序中其他文件里。如下代碼

    //file1.cpp

#include <iostream>
using namespace std;
extern int i;//這是一個聲明,告訴編譯器變量i的定義有可能是在其他源文件中,即使本文件中沒有i的定義,你也不要報錯。
void main()
{
    extern int i;//同樣是對i的聲明,作用與上面的聲明完全一樣,說明聲明可以存在多個,實際上這兩個聲明只要任意一個就可以了。但是兩個聲明語句如果一個都沒有,編譯器就會認為變量i沒有定義,會報錯。

    i=0;//賦值語句,給變量i一個新值,變量賦值前必須要已經定義了,如果不存在file2文件中的定義語句,雖然不會出現編譯錯誤,但是鏈接會有錯。
    cout<<i;
}

//file2.cpp

int i;//首先是一個定義,而且是一個沒有初始化的定義(不過實際上全局變量i被默認初始化為0),變量i被定義在file2源文件中

 

 

4.      一個程序中可能包括不只一個文件,所有文件中同一個變量(其實主要說的全局變量)必須總共只能定義一次,但是聲明可以有無數個。而且如果文件A中用到的變量的定義是在其他文件中,那么在文件A中用這個變量之前,一定要加上一句extern聲明語句,告訴編譯器我所用的這個變量有可能是在其他文件里

5.   extern int i=9;上面已經提到雖然有extern,但這也是一個定義,因為初始化了。類似于這種有extern也有初始化的語句,只能出現在全局作用域,如果出現在函數內部,這是錯誤的。

6.       (轉)有關編譯器的一個特點:現代編譯器一般都屬于按文件編譯,就是說編譯時多個源文件自己編譯自己的,互不影響,好像只有自己一個文件。只要每個文件編譯時沒有出現錯誤,那么就不會發生編譯時錯誤。但是沒有發生編譯錯誤,并不代表程序就沒有錯誤,因為還會發生鏈接錯誤。比如下面這兩個代碼

     //A.cpp
int i;//這是變量i的定義
 
void main()
{
}

//B.cpp
int i;//這也是變量i的定義
編譯時兩個文件A和B是相互不影響的,所以編譯時不會出現任何錯誤,但是這個程序是有問題的,因為全局變量i是被定義了兩次的,所以鏈接時就會報告類似于下面的錯誤:

B.obj : error LNK2005: "int i" (?i@@3HA) already defined in A.obj

Debug/A.exe : fatal error LNK1169: one or more multiply defined symbols found

另外上面也提到了,編譯時各個文件是相互不影響的,編譯器是不會認為在這個文件中沒有定義的變量其實很有可能人家是個全局變量,在其他文件中定義了,這就要報錯。解決方法就是用extern聲明一個變量,告訴編譯器人家這個變量不是沒有定義,只是在其他文件中定義了,你別報錯了。

 

posted on 2012-06-07 15:41 古月 閱讀(3762) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導航

統計

常用鏈接

留言簿

隨筆分類

隨筆檔案

文章檔案

C++/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>
            欧美日本不卡视频| 精品999网站| 欧美片第一页| 一区二区三区在线视频播放| 欧美一级日韩一级| 亚洲在线视频免费观看| 国模一区二区三区| 99精品久久| 国产亚洲一区二区三区在线观看 | 美女久久一区| 久久精品国产一区二区三区| 亚洲国产99| 久久一区二区三区超碰国产精品| 亚洲午夜免费视频| 亚洲综合电影一区二区三区| 欧美一区不卡| 欧美国产视频在线观看| 欧美性色aⅴ视频一区日韩精品| 国产精品jvid在线观看蜜臀| 国产午夜精品久久| 亚洲三级毛片| 亚洲欧美综合| 亚洲高清久久| 欧美亚洲在线| 欧美日韩国产一区二区| 国产一区二区精品久久91| 亚洲精品久久7777| 性8sex亚洲区入口| 亚洲盗摄视频| 亚洲欧美成aⅴ人在线观看| 久久综合国产精品台湾中文娱乐网| 欧美精品免费观看二区| 国产一区二区三区黄| 亚洲免费观看高清在线观看| 久久精品国产96久久久香蕉| 亚洲欧洲综合另类| 欧美一级视频免费在线观看| 欧美激情女人20p| 国产欧美一级| 一区二区三区四区在线| 麻豆av福利av久久av| 99re6这里只有精品| 久久综合久久综合久久| 国产精品一区二区在线观看网站 | 亚洲国产成人久久综合| 中文国产成人精品| 欧美v日韩v国产v| 亚洲在线一区二区| 欧美日韩成人免费| 亚洲激情黄色| 另类av一区二区| 欧美一区二区日韩| 国产精品一区二区欧美| 亚洲一级高清| 99视频精品免费观看| 欧美交受高潮1| 亚洲伦理精品| 亚洲国产精品久久久久婷婷老年| 久久高清福利视频| 国产一区二区精品| 久久婷婷国产综合尤物精品 | 欧美高清视频一二三区| 亚洲福利视频一区| 母乳一区在线观看| 久久久夜夜夜| 亚洲高清视频在线| 欧美黄色精品| 久久精品中文字幕一区| 欧美中文在线观看国产| 一区二区三区免费网站| 欧美日韩一区二区三区四区在线观看| 亚洲狼人精品一区二区三区| 亚洲国产精品一区二区久| 欧美成年人视频网站| 亚洲免费av电影| 亚洲精品日日夜夜| 欧美午夜性色大片在线观看| 亚洲一区影音先锋| 午夜精品久久久久久久99水蜜桃 | 久久全国免费视频| 亚洲国产美女| 亚洲激情不卡| 国产精品捆绑调教| 久久高清福利视频| 久久频这里精品99香蕉| 一本久久综合| 欧美一区二区高清| 亚洲电影一级黄| 99人久久精品视频最新地址| 国产伦精品免费视频| 久久人91精品久久久久久不卡| 久久人人爽人人爽| 99国产一区二区三精品乱码| 亚洲一区二区三区色| 国产一区二区三区在线观看精品 | 亚洲欧美精品一区| 久久精品国产第一区二区三区最新章节 | 亚洲国产精品一区制服丝袜 | 毛片精品免费在线观看| 欧美电影免费网站| 午夜精品久久久久| 麻豆亚洲精品| 亚洲自拍偷拍麻豆| 久久青青草原一区二区| 亚洲免费网址| 免费亚洲电影在线| 久久精品99| 欧美日韩国产成人在线免费| 久久亚洲不卡| 国产精品男女猛烈高潮激情| 欧美激情91| 国内精品久久久久影院优| 亚洲精品少妇30p| 狠狠色综合色区| 亚洲一区二区高清| 欧美大片18| 亚洲欧洲三级电影| 新片速递亚洲合集欧美合集| 夜夜嗨av一区二区三区| 久久三级视频| 久久一二三四| 国产美女精品一区二区三区| 亚洲精品看片| 日韩一级裸体免费视频| 狼人社综合社区| 老巨人导航500精品| 国产欧美在线观看| 亚洲欧美激情在线视频| 亚洲免费在线观看| 欧美黄网免费在线观看| 免费在线观看一区二区| 国产日韩欧美一区二区| 亚洲一区二区三区高清不卡| 亚洲性夜色噜噜噜7777| 欧美乱大交xxxxx| 亚洲区一区二| 亚洲老板91色精品久久| 米奇777超碰欧美日韩亚洲| 久久青青草综合| 伊人男人综合视频网| 欧美在线一二三四区| 久久免费视频观看| 国产一区日韩二区欧美三区| 午夜天堂精品久久久久| 午夜精品久久久久久久99黑人| 国产精品美女久久久浪潮软件| 一区二区激情视频| 亚洲欧美在线磁力| 国产区日韩欧美| 性做久久久久久免费观看欧美| 欧美影院一区| 在线观看91精品国产入口| 久久一区亚洲| 亚洲另类视频| 欧美在线视频一区| 狠狠噜噜久久| 欧美激情一区在线| 亚洲午夜精品久久| 久久男人av资源网站| 亚洲国产婷婷| 国产精品第一区| 久久精品国产精品 | 女主播福利一区| 亚洲黄页视频免费观看| 欧美精品国产一区二区| 夜夜嗨av一区二区三区网页| 亚洲综合三区| 精品成人一区二区三区| 欧美激情精品久久久| av成人免费观看| 亚洲欧美综合一区| 亚洲大胆美女视频| 欧美日韩一区二区三区在线观看免| 亚洲天堂久久| 欧美激情综合色| 欧美一区二区免费视频| 在线成人免费视频| 国产精品夜夜嗨| 欧美成人精品1314www| 亚洲女同在线| 亚洲欧洲日夜超级视频| 久久久高清一区二区三区| 日韩写真视频在线观看| 国产欧美在线观看一区| 国产精品高清在线| 亚洲国产精品福利| 国产精品超碰97尤物18| 久久网站免费| 亚洲一品av免费观看| 亚洲高清视频一区| 久久九九久精品国产免费直播| 亚洲精品男同| 激情另类综合| 国产欧美日韩综合一区在线播放 | 免费观看在线综合色| 午夜精品影院| av成人天堂| 最近中文字幕日韩精品 | 国产精品多人| 欧美日韩国产成人在线91|