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

C底世界

C 學習庫

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

常用鏈接

留言簿(12)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

1 基本解釋

  extern可以置于變量或者函數前,以標示變量或者函數的定義在別的文件中,提示編譯器遇到此變量和函數時在其他模塊中尋找其定義。

  另外,extern也可用來進行鏈接指定。

2 問題:extern 變量

  在一個源文件里定義了一個數組:char a[6];
  在另外一個文件里用下列語句進行了聲明:extern char *a;
  請問,這樣可以嗎?


  答案與分析:
  1)、不可以,程序運行時會告訴你非法訪問。原因在于,指向類型T的指針并不等價于類型T的數組。extern char *a聲明的是一個指針變量而不是字符數組,因此與實際的定義不同,從而造成運行時非法訪問。應該將聲明改為extern char a[ ]。

  2)、例子分析如下,如果a[] = "abcd",則外部變量a=0x61626364 (abcd的ASCII碼值),*a顯然沒有意義

  顯然a指向的空間(0x61626364)沒有意義,易出現非法內存訪問。

  3)、這提示我們,在使用extern時候要嚴格對應聲明時的格式,在實際編程中,這樣的錯誤屢見不鮮。

  4)、extern用在變量聲明中常常有這樣一個作用,你在*.c文件中聲明了一個全局的變量,這個全局的變量如果要被引用,就放在*.h中并用extern來聲明。

4 問題:extern 函數2

  當函數提供方單方面修改函數原型時,如果使用方不知情繼續沿用原來的extern申明,這樣編譯時編譯器不會報錯。但是在運行過程中,因為少了或者多了輸入參數,往往會照成系統錯誤,這種情況應該如何解決?

  答案與分析:

  目前業界針對這種情況的處理沒有一個很完美的方案,通常的做法是提供方在自己的xxx_pub.h中提供對外部接口的聲明,然后調用方include該頭文件,從而省去extern這一步。以避免這種錯誤。

  寶劍有雙鋒,對extern的應用,不同的場合應該選擇不同的做法。

5 問題:extern “C”

  在C++環境下使用C函數的時候,常常會出現編譯器無法找到obj模塊中的C函數定義,從而導致鏈接失敗的情況,應該如何解決這種情況呢?

  答案與分析:

  C++語言在編譯的時候為了解決函數的多態問題,會將函數名和參數聯合起來生成一個中間的函數名稱,而C語言則不會,因此會造成鏈接時找不到對應函數的情況,此時C函數就需要用extern “C”進行鏈接指定,這告訴編譯器,請保持我的名稱,不要給我生成用于鏈接的中間函數名。

  下面是一個標準的寫法:

//在.h文件的頭上
#ifdef __cplusplus
#if __cplusplus
extern "C"{
 #endif
 #endif /* __cplusplus */
 …
 …
 //.h文件結束的地方
 #ifdef __cplusplus
 #if __cplusplus
}
#endif
#endif /* __cplusplus */
 

3 問題:extern 函數1

  常常見extern放在函數的前面成為函數聲明的一部分,那么,C語言的關鍵字extern在函數的聲明中起什么作用?

  答案與分析:

  如果函數的聲明中帶有關鍵字extern,僅僅是暗示這個函數可能在別的源文件里定義,沒有其它作用。即下述兩個函數聲明沒有明顯的區別:

extern int f(); 和int f();
  當然,這樣的用處還是有的,就是在程序中取代include “*.h”來聲明函數,在一些復雜的項目中,我比較習慣在所有的函數聲明前添加extern修飾。
posted on 2008-07-10 11:34 C_Student 閱讀(4277) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲一本视频| 久久精品在这里| 99香蕉国产精品偷在线观看| 欧美另类高清视频在线| 亚洲人午夜精品| 亚洲美女在线看| 国产精品麻豆成人av电影艾秋| 亚洲视频中文字幕| 亚洲桃色在线一区| 国产专区欧美精品| 亚洲第一天堂无码专区| 欧美福利电影网| 亚洲欧美影院| 亚洲自拍偷拍麻豆| 一区二区在线视频播放| 欧美激情综合色| 国产精品国产一区二区| 久久久久久国产精品mv| 美日韩免费视频| 亚洲天堂成人| 久久久在线视频| 中日韩午夜理伦电影免费| 午夜宅男久久久| 亚洲日韩视频| 午夜精品久久久久| 亚洲第一狼人社区| 一本一本久久| 在线免费观看日韩欧美| 一本久道久久综合婷婷鲸鱼| 国产真实乱子伦精品视频| 91久久极品少妇xxxxⅹ软件| 国产精品久久久久久久浪潮网站 | 亚洲人成久久| 亚洲精品字幕| 在线观看三级视频欧美| 亚洲一区二区三区免费观看| 91久久久在线| 久久精品一区二区三区不卡牛牛 | 国产精品美女一区二区| 欧美不卡视频一区发布| 国产欧美日韩一区| 9国产精品视频| 91久久精品美女高潮| 亚洲欧美激情在线视频| 99精品免费| 蜜桃av综合| 久久夜色精品国产| 国产精品推荐精品| 夜夜精品视频| 一区二区毛片| 欧美另类一区| 欧美激情视频给我| 今天的高清视频免费播放成人 | 亚洲国产精品久久精品怡红院| 国产精品色网| 一区二区三区精品| 亚洲视频在线免费观看| 欧美高清视频| 亚洲第一视频网站| 亚洲黄页一区| 欧美成人有码| 亚洲欧洲日产国产综合网| 亚洲国产精品成人综合色在线婷婷| 欧美在线观看天堂一区二区三区 | 一区二区三区我不卡| 欧美在线视频a| 久久偷窥视频| 一区二区在线视频播放| 久久色中文字幕| 欧美二区乱c少妇| 亚洲大胆在线| 欧美不卡福利| 亚洲高清激情| 在线亚洲精品福利网址导航| 欧美日韩国产一区| 一区二区欧美在线| 久久国产综合精品| 激情成人综合| 免费不卡亚洲欧美| 亚洲品质自拍| 亚洲午夜电影| 国产日韩一区| 久久一区二区三区四区| 欧美成人综合一区| 日韩天堂在线视频| 欧美日韩中文精品| 午夜一级在线看亚洲| 久久一日本道色综合久久| 在线观看日韩av| 欧美另类一区二区三区| 亚洲视频免费观看| 久久美女性网| 亚洲日本视频| 国产精品ⅴa在线观看h| 午夜精品久久久久久99热软件| 玖玖综合伊人| 亚洲视频一二区| 黑丝一区二区| 欧美人与禽猛交乱配视频| 亚洲一区二区少妇| 欧美激情一区二区三区在线| 亚洲一区二区三区四区中文| 国模套图日韩精品一区二区| 暖暖成人免费视频| 亚洲一二三区精品| 欧美激情小视频| 欧美一区二区三区视频在线| 亚洲国产精品一区二区尤物区| 欧美色道久久88综合亚洲精品| 欧美在线观看视频| 99综合电影在线视频| 你懂的网址国产 欧美| 亚洲综合久久久久| 最新国产成人av网站网址麻豆 | 欧美激情第三页| 欧美中文在线视频| 日韩亚洲精品视频| 亚洲福利小视频| 久久久久国产精品厨房| 日韩写真在线| 亚洲福利视频一区二区| 国产欧美韩国高清| 欧美日本韩国| 免费成人在线观看视频| 先锋影音国产精品| 一区二区三区欧美视频| 亚洲黄色影片| 亚洲国产网站| 欧美电影在线观看完整版| 久久久精品性| 欧美一区二区在线免费观看| 亚洲午夜三级在线| 99精品国产热久久91蜜凸| 亚洲激情黄色| 亚洲高清av| 亚洲国产天堂网精品网站| 狠狠色狠狠色综合日日小说| 国产精自产拍久久久久久| 欧美日韩国产大片| 欧美日韩 国产精品| 欧美精品一区二区三区蜜桃 | 国产亚洲在线| 国产女优一区| 国产精品一区二区三区观看| 国产精品白丝av嫩草影院| 国产精品二区在线观看| 国产精品超碰97尤物18| 欧美三级在线| 国产精品成人观看视频免费 | 国产一区二区三区无遮挡| 国产乱码精品一区二区三区不卡| 国产精品xxxav免费视频| 国产精品v片在线观看不卡| 国产精品国产自产拍高清av王其| 欧美日韩精品福利| 国产精品激情电影| 国产日产高清欧美一区二区三区| 国产视频久久久久久久| 韩国一区二区三区在线观看| 尤物yw午夜国产精品视频| 在线观看国产成人av片| 亚洲精品一二区| 亚洲午夜精品17c| 午夜一区二区三区在线观看 | 在线亚洲一区观看| 亚洲一区免费观看| 欧美一站二站| 欧美大片一区| 99国产成+人+综合+亚洲欧美| 亚洲婷婷在线| 欧美一区高清| 欧美搞黄网站| 国产九九视频一区二区三区| 国产午夜精品福利| 91久久精品国产91久久| 亚洲午夜高清视频| 久久久水蜜桃| 最新69国产成人精品视频免费| 日韩亚洲欧美一区二区三区| 亚洲欧美日韩在线综合| 毛片av中文字幕一区二区| 欧美视频专区一二在线观看| 国产午夜精品视频免费不卡69堂| 亚洲高清二区| 亚洲欧美视频在线观看视频| 久久天堂国产精品| 亚洲美女毛片| 久久久久久夜| 欧美视频一区在线观看| 在线免费观看日本欧美| 亚洲欧美日韩国产综合| 欧美激情久久久| 欧美在线观看视频在线| 欧美日韩亚洲精品内裤| 亚洲高清在线| 久久另类ts人妖一区二区| 亚洲一级一区| 欧美日韩的一区二区| 亚洲福利视频网| 久久动漫亚洲|