C++技巧:extern使用方法總結(jié)

字號(hào):

#include "stdafx.h"
    1.extern用在變量聲明中常常有這樣一個(gè)作用,你在*.c文件中聲明了一個(gè)全局的變量,這個(gè)全局的變量如果要被引用,就放在*.h中并用extern來聲明。
    2.如果函數(shù)的聲明中帶有關(guān)鍵字extern,僅僅是暗示這個(gè)函數(shù)可能在別的源文件里定義,沒有其它作用。即下述兩個(gè)函數(shù)聲明沒有區(qū)別:
    extern int f(); 和int f();
    如果定義函數(shù)的c/cpp文件在對應(yīng)的頭文件中聲明了定義的函數(shù),那么在其他c/cpp文件中要使用這些函數(shù),只需要包含這個(gè)頭文件即可。
    如果你不想包含頭文件,那么在c/cpp中聲明該函數(shù)。一般來說,聲明定義在本文件的函數(shù)不用“extern”,聲明定義在其他文件中的函數(shù)用“extern”,這樣在本文件中調(diào)用別的文件定義的函數(shù)就不用包含頭文件
    include “*.h”來聲明函數(shù),聲明后直接使用即可。
    舉個(gè)例子:
    //extern.cpp內(nèi)容如下:
    // extern.cpp : Defines the entry point for the console application.
    //
    #include "stdafx.h"
    extern print(char *p);
    int main(int argc, char* argv[])
    {
    char *p="hello world!";
    print(p);
    return 0;
    }
    //print.cpp內(nèi)容如下
    #include "stdafx.h"
    #include "stdio.h"
    print(char *s)
    {
    printf("The string is %s\n",s);
    }
    結(jié)果程序可以正常運(yùn)行,輸出結(jié)果。如果把“extern”去掉,程序依然可以正常運(yùn)行。
     提示: “extern”在函數(shù)聲明中可有可無,只是用來標(biāo)志該函數(shù)在本文件中定義,還是在別的文件中定義。只要你函數(shù)在使用之前聲明了,那么就可以不用包含頭文件了