回覆列表
  • 1 # 使用者2458114238191884

    有兩種理解.(1)庫函式是C語言的內部函式或自帶函式,外部函式即程式設計師自定函式.

    (2)凡加寫了extern 的函式是外部函式.

    第一種理解好懂:

    C語言的內部函式指的是C語言自帶的函式,無論是動態連結的或靜態連結的. 這些函式透過C語言的標頭檔案定義了.

    例如, sin(),cos()等數學函式,在math.h中定義了,輸入輸出函式 printf(),fgetc()在stdio.h中定義了,時間函式表time(),ctime()等在time.h中定義了.還有許多其他內部函式.程式設計時,只要用#include 寫在程式設計頭部,程式中就可呼叫.

    自定義函式,就是使用者自己寫的函式.

    第二種凡加寫了extern 的函式是外部函式:

    自定義函式可以與程式的main()寫在同一個檔案中,也可以寫在另一個檔案中,這時你可能還另寫自己的標頭檔案或者寫extern....,告訴編譯器,main中用到的某某函式是"外部函式".

    例如,main()在a.c中,自定義函式my_func()在a2.c中

    a.c內容:

    #include

    extern float my_func(float a);

    main()

    {

    printf("result=%f\n",my_func(2.0));

    }

    a2.c 內容:

    float my_func(float a)

    {

    return a;

    }

    編譯:

    cl -c a.c [得到a.obj]

    cl -c a2.c [得到a2.obj]

    cl a.obj a2.obj [連結成a.exe]

    執行:

    a.exe

    result=2.000000

    extern float my_func() 是外部說明,告訴編譯,main()裡的my_func是外部函式,要透過連結(.obj)得到.

    如果把my_func寫在a.c裡:

    #include

    float my_func(float a){

    retun a;

    }

    main()

    {

    printf("result=%f\n",my_func(2.0));

    }

    my_func() 就不是外部函式.

    編譯:

    cl a.c [得a.exe]

    執行:

    a.exe

    result=2.000000

  • 中秋節和大豐收的關聯?
  • 五年級下冊第二單元人文主題是什麼語文要素是什麼寫作要求是什麼?