C語言中extern關鍵字的使用(引用其他文件中的變量或者函數)

C語言中extern關鍵字的使用(引用其他文件中的變量或者函數)


源碼地址:碼雲地址

環境:linux,操作系統:Ubuntu 16.04

1.Linux下C程序的編輯,編譯和運行以及調試。

很多人在學習編程語言的時候,習慣用IDE環境管理程序,比如vs2017,這樣做很方便,用戶只需要關注代碼本身,但是對於一些簡單的程序,可以直接用文本編輯器編輯,用編譯命令進行編譯,這樣更有利於代碼能力。
工具列表:
- 編輯:vim
- 編譯和運行:gcc
- 調試:gdb

安裝vim

sudo apt install vim

用vim編輯文件

在磁盤中新建第一個C文件:hello.c。
在該目錄下打開命令行工具,輸入:vim hello.c,進入vim一般模式,按下i進入編輯模式。
並輸入以下代碼:

#include <stdlib.h>
#include <stdio.h>
int main()
{
        char str[]="hello world!";
        printf("%s\n",str);
        return 0;

}

按下esc回到一般模式,並按::wq保存並推出文本編輯。

編譯.c文件

在命令行中輸入gcc hello.c -o hello,表示將hello.c文件編譯後,生成名爲hello的可執行文件。

執行

在命令行輸入:./hello,輸出:hello world!

2.extern 關鍵字的使用

現在在hello.c文件夾下再添加兩個文件,分別命名爲:hello.h,main.c。
hello.c,hello.h,main.c的內容分別爲:

hello.c:
#include <stdio.h>
#include <stdlib.h>
#include "hello.h"
//函數的定義
char g_str[] = "hello world!";
void fun1()
{
    printf("%s\n", g_str);
}
hello.h:
#pragma once
#ifndef HELLOH
#define HELLOH
//將變量和函數聲明爲外部引用
extern char g_str[];
extern void fun1();
#endif
main.c:
#include <stdio.h>
#include <stdlib.h>
#include "hello.h"//包含頭文件後,可以直接引用外部函數及變量
int main()
{
    fun1();
    //system("pause");
    return 0;
}

3.測試

將多個源文件編譯爲一個可執行文件,注意:本例中,main.c依賴於文件hello.c,所以要放在前面:gcc main.c hello.c -o main.
編譯後將生成main可執行文件。
執行:./main,輸出:hello world!.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章