回覆列表
  • 1 # 使用者5189701024573

    //head file library.h

    #ifndef LIBRARY_H

    #define LIBRARY_h

    extern FILE* logfile; //declaring an extern file pointer

    /*other random codes*/

    #endif

    //end of head file

    //source code main.c

    #include

    #include"library.h"

    FILE* logfile; // declare the extern pointer is used in this file

    int main()

    {

    logfile=fopen(...);

    //main function

    return 0;

    }

    //end of main.c

    //source code backend.c

    #include"libarary.h"

    static FILE* logfile=fopen(...);

    /*other random codes*/

    //end of backend.c

    如上所述,extern在標頭檔案中宣告一個跨檔案的全域性變數,每一個需要使用這個變數的檔案都要單獨宣告(不加extern再宣告一遍)

    而static用於宣告一個靜態變數。靜態變數不能被其他檔案訪問,因此可以與其他檔案的全域性變數同名。另外如果一個變數在檔案中被宣告為靜態變數以後,該檔案不能再有同名的跨檔案全域性變數

  • 中秋節和大豐收的關聯?
  • 辣對心率有什麼影響?