extern 在 C 中是什麼意思?

Mondo 科技 更新 2024-02-01

在 C 中,——extern 關鍵字用於宣告變數或函式,表示它是在其他檔案中定義的。 當變數或函式在檔案中宣告為 -extern- 時,它會告訴編譯器該變數或函式已在另乙個檔案中定義,因此不需要在當前檔案中再次定義。

extern 關鍵字的主要目的是實現變數或函式的共享。 當多個檔案需要使用相同的變數或函式時,可以將它們的定義放在乙個單獨的檔案中,然後在需要使用它們的其他檔案中使用 -extern- 關鍵字宣告它們。 這避免了重複的定義,提高了可維護性和可重用性。

下面是乙個簡單的示例:

假設我們有乙個名字叫 -mathc——,它定義了乙個平方函式 - square——:

// math.c

#include

int square(int x) {

return x * x;

現在,我們要新增乙個名為 - main 的新名稱c——檔案。 為了實現這一點,我們需要使用 -mainc--use-extern-keyword 宣告-square-函式:

// main.c

#include

宣告 square 函式。

extern int square(int x);

int main()

int num = 5;

int result = square(num);

printf("the square of %d is %d, num, result);

return 0;

在此示例中,我們在 - mainC———extern int square(int x);—宣告 -square- 函式。 這告訴編譯器我們去過其他地方(即 -mathc-file) 定義了 -square- 函式,因此無需在此處再次定義。然後,我們可以轉到 -mainc——square— 函式來計算整數的平方。

需要注意的是,使用 -extern- 關鍵字宣告變數或函式時,無需指定其型別。 編譯器根據前面的定義自動推斷型別。 例如,在上面的示例中,我們沒有明確指定 -square- 函式的型別(例如,-int square(int x);— 因為編譯器可以從前面的定義中推斷出它是乙個返回整數型別的函式。

此外,如果變數或函式在多個檔案中宣告為 -extern——,則它們必須具有相同的名稱和型別。 否則,編譯器將無法確定應使用哪個定義。

extern 關鍵字在 C 中用於宣告變數或函式,表示它是在其他檔案中定義的。 通過使用 -extern- 關鍵字,我們可以共享變數或函式,避免重複定義,並提高可維護性和可重用性。 C 語言基礎

相關問題答案

    和在c語言中的區別

    在 C 語言中,符號 和 雖然相似,但在功能和用法上卻存在顯著差異。混淆這兩者通常會導致程式設計錯誤和邏輯問題。本文將深入探討這兩個運算子的定義 功能和區別,以及它們在 C 語言中的實際應用。在 C 中,用於將右邊的值分配給左邊的變數。這是乙個賦值操作,它不比較變數,而是更改變數的值。用於比較兩個值...

    C 語言中 break 語句的魔力在於讓你的程式碼像火箭一樣飛起來

    C break 語句是用於跳出迴圈或 switch 語句的控制結構。用於提前結束迴圈或switch語句,避免不必要的計算或執行。break 語句的使用方式如下 在while迴圈中,如果滿足條件,則可以使用break語句跳出迴圈並執行迴圈後面的語句。例如 輸出為 在for迴圈中,如果滿足條件,則可以使...

    一種在 C 中保留十進位數的除法方法

    在 C 中,除法運算通常返回整數結果。但是,有時我們需要進行除法運算並獲得保留小數的結果,這在需要準確計算和輸出的情況下很重要。本文將詳細介紹如何在 C 中除以和保留十進位數,包括使用浮點數 型別轉換和使用數學h 庫函式等的提示和注意事項 在 C 中保留小數的除法描述如下 .使用浮點數 最簡單的方法...

    本文將教你如何在 C 語言中使用浮點數

    在 C 中,float 是一種用於儲存浮點數的資料型別,即帶有小數部分的數字。以下是使用 float 型別的基本方法 宣告浮點變數 float myfloat 宣告乙個名為 myfloat 的浮點變數。分配 myfloat . 遺囑 分配給 myfloat 或者與宣告同時初始化 float myfl...

    C語言和C語言有什麼區別

    C 和 C 之間有幾個主要區別 物件導向程式設計 OOP C 支援物件導向程式設計,而C不支援。這意味著 C 可以使用類和物件,而 C 主要是基於函式的。標準模板庫 STL C 提供了一組標準模板庫 STL 其中包括許多用於常見資料結構和演算法操作的預定義類和函式。C 中沒有這樣的庫。異常處理 C ...