當前位置:首頁 » 編程語言 » c語言所有函數都是外部函數

c語言所有函數都是外部函數

發布時間: 2022-11-25 18:25:02

『壹』 c語言中的函數是什麼意思

函數是數學名詞,代數式中,凡相關的兩數X與Y,對於每個X值,都只有一個Y的對應值。這種對應關系就表示Y是X的函數。
函數(function)的定義通常分為傳統定義和近代定義,函數的兩個定義本質是相同的,只是敘述概念的出發點不同,傳統定義是從運動變化的觀點出發,而近代定義是從集合、映射的觀點出發。
函數的近代定義是給定一個數集A,假設其中的元素為x,對A中的元素x施加對應法則f,記作f(x),得到另一數集B,假設B中的元素為y,則y與x之間的等量關系可以用y=f(x)表示,函數概念含有三個要素:定義域A、值域B和對應法則f。其中核心是對應法則f,它是函數關系的本質特徵。
函數,最早由中國清朝數學家李善蘭翻譯,出於其著作《代數學》。之所以這么翻譯,他給出的原因是「凡此變數中函彼變數者,則此為彼之函數」,也即函數指一個量隨著另一個量的變化而變化,或者說一個量。

『貳』 關於C語言的一道題目 內部函數 外部函數

因為
C語言編譯時要檢查語法,所以A不對;
C語言沒有過程,只有函數,所以B不對;
C語言函數內不能定義函數,既不能嵌套定義,所以C不對。
排除法也知道是D了。當然由「函數內不能定義函數」也可以推出所有函數都是外部函數。
—— 其實這種說法對外部函數的理解也還值得商榷。但其它的是完全不對,也就選它吧。

『叄』 在C語言中,內部函數和外部函數的區別

內部函數跟外部函數的區別在於:一個文件中定義的函數能否被其它文件調用。能被調用的函數在前面加extern(一般省略),而不能被調用的加static(不能省略),通常函數本質上是全局的,也就是外部的可調用的。
我們通常調用的#include本質上就是一些外部函數的集合,由於在一個文件中的函數要調用另外一個文件的函數,要求在開始聲明一下,為了省略這些聲明,我們引用include命令。

『肆』 C語言都是外部函數嗎……

有兩種理解.(1)庫函數是C語言的內部函數或自帶函數,外部函數即程序員自定函數.
(2)凡加寫了extern 的函數是外部函數.

第一種理解好懂:

C語言的內部函數指的是C語言自帶的函數,無論是動態鏈接的或靜態鏈接的. 這些函數通過C語言的頭文件定義了.
例如, sin(),cos()等數學函數,在math.h中定義了,輸入輸出函數 printf(),fgetc()在stdio.h中定義了,時間函數表time(),ctime()等在time.h中定義了.還有許多其他內部函數.編程時,只要用#include <庫名.h>寫在編程頭部,程序中就可調用.

自定義函數,就是用戶自己寫的函數.

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

自定義函數可以與程序的main()寫在同一個文件中,也可以寫在另一個文件中,這時你可能還另寫自己的頭文件或者寫extern....,告訴編譯器,main中用到的某某函數是"外部函數".
例如,main()在a.c中,自定義函數my_func()在a2.c中

a.c內容:
#include <stdio.h>
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 <stdio.h>
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

『伍』 C語言。。。3

第一題:C
A.明顯錯誤
B.那是pascal
D.明顯錯誤

第二題:D
bool和setc++才有

第三題:A

第四題:D

『陸』 C語言所有函數都是外部函數,這句話是對的嗎

可以說是對的,因為c語言函數內部不允許再定義函數。

『柒』 什麼是外部函數什麼是內部函數

定義在當前翻譯單元(一般是.c文件包含了頭文件之後的結果)外,以extern前綴聲明的函數對於當前翻譯單元來說是外部函數。它提示編譯器,假定這個函數的定義存在,但不在當前翻譯單元中。因此若語法正確,編譯器不對此函數產生標識符未定義的錯誤。鏈接器會檢查編譯器得到的若干目標文件以及靜態庫文件中的包括函數在內的符號,如果不滿足唯一定義性則產生錯誤,鏈接失敗,不會產生最終目標文件(如.exe可執行文件)。
對於加static前綴聲明的函數,編譯器認為定義在當前翻譯單元或庫中且不會被其它翻譯單元引用(也就是說函數僅對當前源文件有效)。相對於extern(外部)函數,這些函數可以稱為internal(內部)函數。
而不加extern或static聲明的函數,默認為定義在當前翻譯單元中,且其它翻譯單元可以用extern函數聲明引用這個函數(對鏈接器可見)。
對於非extern函數,如果編譯器在當前翻譯單元中找不到函數的定義,則產生標識符未定義的編譯錯誤,編譯失敗。
====
[原創回答團]

『捌』 「在C語言中,函數名的儲存類別為外部」

默認都為外部 ,就是可以被別的文件調用,前面static 修飾的話,則只能在本文件域中被調用。。

『玖』 c語言外部函數

函數定義可以寫到其它(任意)函數的前或後。只是,在使用函數前,如果當前位置處於函數定義之後,則不需要聲明函數,可以直接使用。如果當前位置處於函數未定義階段(函數定義在其後面),則要先進行函數聲明,才可以使用函數。聲明可以寫在函數體內,也可以在函數體外進行聲明!

『拾』 什麼叫外部函數 (C語言問題)

當一個源程序由多個源文件組成時,C語言根據函數能否被其它源文件中的函數調用,將函數分為內部函數和外部函數。

如果在一個源文件中定義的函數,只能被本文件中的函數調用,而不能被同一程序其它文件中的函數調用,這種函數稱為內部函數。

定義一個內部函數,只需在函數類型前再加一個「static」關鍵字即可,如下所示:
static 函數類型 函數名(函數參數表){……}

在定義函數時,如果沒有加關鍵字「static」,或冠以關鍵字「extern」,表示此函數是外部函數:
[extern] 函數類型 函數名(函數參數表){……}

外部函數原型聲明要有extern

簡單說,外部函數是用戶自定義函數,該函數寫在另一個文件里.

熱點內容
android備份應用數據備份 發布:2022-12-08 14:28:30 瀏覽:469
sxh是什麼文件夾 發布:2022-12-08 14:26:55 瀏覽:501
文件上傳平台 發布:2022-12-08 14:26:53 瀏覽:672
java文件的擴展名 發布:2022-12-08 14:25:48 瀏覽:85
javaftp生成文件 發布:2022-12-08 14:24:00 瀏覽:639
我的世界伺服器必備指令無限箱子 發布:2022-12-08 14:21:31 瀏覽:624
讀書軟體哪個免費安卓 發布:2022-12-08 14:20:54 瀏覽:305
sqltonumber 發布:2022-12-08 14:10:34 瀏覽:986
ip地址文件夾 發布:2022-12-08 14:10:22 瀏覽:101
solidworks異形孔如何配置 發布:2022-12-08 14:08:37 瀏覽:55