當前位置:首頁 » 編程語言 » c語言函數的聲明方式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言函數的聲明方式

發布時間: 2023-03-06 20:14:44

c語言中函數的定義格式是什麼,函數原型聲明的語法格式

函數定義就是規定函數的格式與功能。

函數聲明就是在函數調用之前進行的一種說明。


下面舉例說明兩者的語法格式:

#include<stdio.h>
intfun(inta,intb);//函數的聲明
voidmain()
{
intx=1,y=2;
intc;
c=fun(x+y);
}
//下面的fun函數就是函數的定義
intfun(inta,intb)
{
returna+b;
}

註:如果被調函數(上例中為fun函數)寫在調用處之前,可以不聲明(本例是現在調用處(c = fun(x+y);)之後)。

㈡ 關於C語言函數的聲明,怎麼理解能簡單點

「函數定義」是指對函數功能的確立,包括指定函數名,函數值類型、形參類型、函數體等,它是一個完整的、獨立的函數單位。

而「函數聲明」的作用則是把函數的名字、函數類型以及形參類型、個數和順序通知編譯系統,以便在調用該函數時系統按此進行對照檢查(例如函數名是否正確,實參與形參的類型和個數是否一致)。

在書寫形式上,函數聲明可以把復數頭部復制過來,在後面加一個分號;而且在參數表中可以只寫各個參數的類型名,而不必寫參數名。

C語言不同於Java語言,在Java語言中,在一個類中,定義函數/方法後,在調用時不需要聲明。在C語言中定義函數後,在使用前,需要在main函數前進行聲明,否則會報錯。

或者將函數定義在main函數的前面,則不需要聲明

注意:在其他函數中調用自定義的函數時,也是要在調用者前進行聲明,或者定義在調用者前,否則會報錯無法使用

#include<stdio.h>

int getMax(int a, int b) {

if (a > b) {

return a;

}

else {

return b;

}

}

void main() {

int t=getMax(12, 21);

printf("%d ", t);

getchar();

}

(2)c語言函數的聲明方式擴展閱讀:

關於函數的概念我們可以這樣理解,函數是一個功能的集合,它可以根據輸入完成特寫的功能,並將結果輸出。當然有時候函數只是為了實現一些特寫功能而並不一定要有輸入或輸入。

我們想要自己編寫一個函數需要編寫兩部分內容:聲明和定義。函數的聲明就是告訴編譯器我們想要定義一個函數,並明確規定其返回值(輸出)、函數名、參數表(輸入)。聲明函數的語法如下:

type function_name(type var);

㈢ 關於c語言的函數聲明

函數聲明它為編譯器提供了有用的信息,編譯器在翻譯代碼的過程中,只有見到函數原型(這里即可以是聲明也可以是定義)之後才知道這個函數的名字、參數類型和返回值,這樣碰到函數調用時才知道怎麼生成相應的指令,所以函數原型必須出現在函數調用之前,這也是遵循「先聲明後使用」的原則。

注意上面說的函數原型是包括函數聲明和定義兩種形式的。

另外還有一種特殊情況,就是
隱式聲明:
隱式聲明的函數返回值類型都是int;
如下
#include<stdio.h>
main()
{

printf("%d\n",jiec(5));
}
int jiec(int n)
{
int y=1;int i;
for(i=1;i<=n;i++)
y=y*i;
return(y);
}
這個程序也是可以運行的。主要返回值為int.

㈣ C語言函數定義和說明的格式

C語言的函數定義格式是:
函數類型 函數名稱 ( 參數列表 )
{
//函數體
}
函數聲明,不是說明的格式是「函數定義格式」的第一行,然後加 「;」,即:
函數類型 函數名稱 ( 參數列表 );

特別地,在函數聲明中的參數列表中,不需要給出具體的變數名稱,但必須給出每個變數的類型。

㈤ c語言函數聲明

假設主函數main()。其他函數void fun(int a,int *b)。

關於函數定義和聲明:

在代碼中fun函數,有完整函數體的代碼就是函數定義部分,比如void fun(int a,int *b){。。。};。

如果沒有具體實現的函數體代碼(也就是大括弧內容),那麼就是函數聲明。比如void fun(int ,int *);

關於函數聲明和調用:

如果fun函數定義在main代碼上面。比如:

void fun(int a,int *b){。。。};

int main(){

int a=0,int b=0;

......

fun(a,&b);//這里fun定義代碼在main上面,所以可以不需要聲明。反之需要先寫聲明語句

return 0;

}

關於函數局部變數及全局變數:

簡單區分:

定義在函數之外的就是全局變數,這個變數所有函數都可以直接使用,並且共用同一個地址。任意函數修改了變數值,其他函數調用也會變。

定義在函數之內的就是局部變數,局部變數只屬於該函數,其他函數即使定義了同樣名字的變數,這兩個變數也不同地址,互不相干。

比如:

int a;//這就是全局變數,作用域下所有函數共用

int main()

{

int b;//這就是局部變數,只在本函數有效,如果想在調用fun函數時讓fun也使用該變數,需要把這個變數的地址作為參數傳遞過去。

printf("%d",b);

return 0;

}

注意:c語言中允許局部變數和全局變數同名,但是同名的局部變數會屏蔽全局變數,實際代碼避免同名。

關於函數傳值和傳址:

如函數void fun(int a,int *b){..........};這里形參a 和*b,分別表示一個值和一個地址

所以在調用該函數時,比如:

int main()

{

int c,d;

fun(c,&d);//這里調用就對應上面形參類型,第一個參數傳遞了c的值(傳值),第二個參數傳遞了d的地址(傳址),這里c和&d,叫做實參。當fun函數運行時改變了a和b指向地址的值,對應main函數中c的值不變,d的值改變。

return 0;

}

順帶一說:局部變數,在函數運行結束後會自動釋放,所以想把局部變數地址作為返回值,需要用malloc函數申請。(這里看不懂可以暫時忽視)

㈥ C語言函數聲明

我也來 說幾句。。

標准編譯器 對函數的調用 都要
先申明 才能 調用
(生產的時候就這樣設定的)。。我推薦試用
大點的 vs2005,vc2000.
小點的 Dev-cpp ,Turboc 3.0 (2.0 不支持滑鼠有點 麻煩)

這里 就涉及: 申明和定義之間的區別。

申明-- 不開辟內存,僅僅告訴編譯器,申明的部分存在,要預留一點空間。
定義-- 開辟內存。
申明 屬於 預編譯范疇的。最好寫在頭文件中(樓主,自定義頭文件學了沒有啊?)(申明都寫在頭文件中,只是一種好的編程習慣)

因為 在編譯的時候,編譯器先處理一些特殊數據(宏定義,函數的申明,變數的申明),在這個過程中,編譯器 通過申明 可以預測整個定義需要的內存大小,並且 把這些大小預留起來,留給定義的時候使用(因為雖然定義,但是在 main函數裡面沒有調用,一樣的不分配內存)。

如果不事先申明,直接定義,有可能會造成系統崩潰,出現內存不足,不能分配。 然而現在內存都是1G左右了,所以一般空間都足夠,所以你也可以不申明直接定義函數。
但是一旦內存緊張,就會出錯,而且程序簡潔性就很低。(不看到定義,還不知道原來還定義了這么一個函數!!!)

還有 變數也一樣,標準的都是 先申明在定義。
extern int i; //申明
int i=0; //定義並初始化為0
int i; //定義
.。。。。。。。。。。。。。。。。。

所以 從現在其要養成良好的編程習慣

先申明,在定義。
申明最好都放在 一塊,並且都在頭文件中(為了便於管理)。

㈦ 在c語言中怎麼定義函數

int func(int i) //前面的int是返回值,func是函數名,括弧裡面的是參數

最基本的函數是這樣定義的

㈧ 關於c語言的函數聲明

因為函數jiec()是你自己定義並編輯的,在C語言中凡是操作員自己定義的函數都要在使用前申明,在C語言中系統自帶的函數是通過include語句進行引用定義的,比如字元函數通過include<string.h>進行申明,即你要引用的字元函數都在string.h里定義了

㈨ c語言中的int main(void)是什麼意思

這是C語言main函數的一種聲明方式,該方式表明這個main函數不帶參數,返回值。

void常用在程序編寫中對定義函數的參數類型、返回值、函數中指針類型進行聲明。

int main(void)還可以寫為 void main()或者 int main()最後在mian()函數結束時,寫return 0即可。

(9)c語言函數的聲明方式擴展閱讀:

void真正發揮的作用在於:

1,對函數返回的限定。

2,對函數參數的限定。

在Java/C/C++/C#中,main為程序運行的主入口方法,每個程序只有一個。main 作為函數可以沒有參數main(void),也可以有參數。

C語言一定需要main函數:

任何一個C++程序都包含一個main函數,這是規定。main函數由系統直接調用,是程序執行的入口。

main函數與用戶自己定義的函數都是各自獨立的模塊,即函數不能嵌套定義,通俗的說,你不能在一個函數的函數體內定義另一個函數,即使在main函數中也不行。但main函數可以對用戶自己定義的函數進行調用(但main函數只能由系統調用)。

用戶自己定義多個函數時,這幾個用戶自己定義的函數之間都可以互相調用 。

參考資料來源:網路-main