日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

C++ extern的用法詳細解析

來源: 責編: 時間:2023-09-18 21:40:38 329觀看
導讀C++編程中,extern是一個非常重要的關鍵字,它的用途主要是用來聲明一個全局變量或者函數。本文將詳細解析extern的用法,并通過實例進行詳細的解釋。1. extern的基本定義在C++中,extern是一個存儲類修飾符,它告訴編譯器,其聲

C++編程中,extern是一個非常重要的關鍵字,它的用途主要是用來聲明一個全局變量或者函數。本文將詳細解析extern的用法,并通過實例進行詳細的解釋。e1O28資訊網——每日最新資訊28at.com

e1O28資訊網——每日最新資訊28at.com

1. extern的基本定義

在C++中,extern是一個存儲類修飾符,它告訴編譯器,其聲明的變量或者函數是在別的文件中,提示編譯器在鏈接階段從其他文件中尋找此變量或函數的定義。e1O28資訊網——每日最新資訊28at.com

extern int x;  // 'x'的定義在其他文件中

這里需要注意,extern只是聲明,不是定義。也就是說,它只是告訴編譯器變量或函數的類型,而不會分配內存。e1O28資訊網——每日最新資訊28at.com

2. extern的主要用途

(1) 用于鏈接外部變量

當我們在多個文件中使用同一個變量時,extern可以幫助我們實現這一目標。例如,我們有兩個文件,main.cpp和support.cpp,我們可以在support.cpp中定義一個變量,在main.cpp中通過extern關鍵字來使用這個變量。e1O28資訊網——每日最新資訊28at.com

在support.cpp中:e1O28資訊網——每日最新資訊28at.com

int testVar = 0;  // 定義一個全局變量

e1O28資訊網——每日最新資訊28at.com

在main.cpp中:e1O28資訊網——每日最新資訊28at.com

extern int testVar;  // 聲明外部變量int main() {    // 使用外部變量    testVar = 10;    return 0;}

e1O28資訊網——每日最新資訊28at.com

(2) 用于鏈接外部函數

除了變量之外,extern也可以用于聲明在其他文件中定義的函數。例如,我們有兩個文件,main.cpp和support.cpp,我們可以在support.cpp中定義一個函數,在main.cpp中通過extern關鍵字來使用這個函數。e1O28資訊網——每日最新資訊28at.com

在support.cpp中:e1O28資訊網——每日最新資訊28at.com

// 定義一個函數void testFunc() {    // 函數體}

e1O28資訊網——每日最新資訊28at.com

在main.cpp中:e1O28資訊網——每日最新資訊28at.com

extern void testFunc();  // 聲明外部函數int main() {    // 調用外部函數    testFunc();    return 0;}

3. extern"C"的用法

在C++中,我們常常會看到extern "C"的用法。這是因為C++支持函數重載,而C語言不支持。當C++代碼被C語言調用時,為了避免鏈接錯誤,需要用extern "C"來告訴編譯器按照C語言的方式來鏈接。e1O28資訊網——每日最新資訊28at.com

extern "C" void testFunc();  // 用C語言方式鏈接的函數

此時testFunc函數就可以被C語言代碼調用了。e1O28資訊網——每日最新資訊28at.com

4. extern的注意事項

extern關鍵字聲明的變量或函數必須在某個文件中被定義,否則在鏈接階段會報錯。e1O28資訊網——每日最新資訊28at.com

extern關鍵字只能用于全局變量和函數,不能用于函數內部的局部變量。e1O28資訊網——每日最新資訊28at.com

總結

在C++編程中,理解并熟練掌握extern關鍵字的用法,對于我們編寫模塊化、可重用的代碼,實現跨文件的變量和函數的共享,具有重要的意義。e1O28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-10427-0.htmlC++ extern的用法詳細解析

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 【Python入門】為什么這門編程語言如此受歡迎?

下一篇: Remix 2.0 正式發布,現代化全棧Web框架!

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 清苑县| 唐海县| 平度市| 思茅市| 洪雅县| 乡城县| 绍兴县| 兰州市| 浠水县| 维西| 长葛市| 呼伦贝尔市| 张家界市| 平泉县| 台山市| 突泉县| 寿宁县| 如皋市| 平和县| 上杭县| 绍兴市| 阿尔山市| 麻城市| 高青县| 塘沽区| 左贡县| 遵义县| 大田县| 汾西县| 扶绥县| 温州市| 竹北市| 兴安县| 寿阳县| 仁布县| 苗栗市| 瑞安市| 冷水江市| 云龙县| 阳原县| 大安市|