函數(shù)的返回值類型與函數(shù)的類型要一致,沒有什么默認定義類型。
珠暉網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,珠暉網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為珠暉上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的珠暉做網(wǎng)站的公司定做!
下面進行舉例說明:
//?void?函數(shù)類型沒有返回值
void?fun1(int?a)
{
printf("%d",?a);
}
//?int型函數(shù)類型返回值為int型(只要不是void類型,都跟int型函數(shù)類似,返回值與函數(shù)類型保持一致)
int?fun1(int?a)
{
int?temp;
temp?=?2*a;
return?temp;
}
C語言規(guī)定,函數(shù)返回值的類型由函數(shù)首部定義的類型決定。函數(shù)返回值應(yīng)與首部定義的類型一致,如若不一致,則自動將返回值強制轉(zhuǎn)換為函數(shù)首部定義的類型。
沒有定義類型時默認為int型。也就是說你的函數(shù)是什么類型,返回值就是什么類型。
簡介
在調(diào)用函數(shù)時,如果需要從被調(diào)函數(shù)返回一個值供主調(diào)函數(shù)使用,那么返回值類型必須定義成非 void 型。此時被調(diào)函數(shù)中必須包含 return 語句,而且 return 后面必須要有返回值,否則就是語法錯誤。
一個函數(shù)中可以有多個 return 語句,但并不是所有的 return 語句都起作用。執(zhí)行到哪個 return 語句,就是哪個 return 語句起作用,該 return 語句后的其他語句都不會執(zhí)行。
C語言的函數(shù)的默認的返回值是int類型的,如果沒有定義返回類型,則返回類型就是int
只有定義了其它的類型,例如float add()才是float型的,括號里面參數(shù)是什么不影響返回類型
你說的是函數(shù)的返回者吧
函數(shù)的值是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。如調(diào)用正弦函數(shù)取得正弦值。對函數(shù)的值(或稱函數(shù)返回值)有以下一些說明:
1) 函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。
return 語句的一般形式為:
return 表達式;
或者為:
return (表達式);
該語句的功能是計算表達式的值,并返回給主調(diào)函數(shù)。在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return 語句被執(zhí)行,因此只能返回一個函數(shù)值。
2) 函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應(yīng)保持一致。如果兩者不一致,則以函數(shù)類型為準,自動進行類型轉(zhuǎn)換。
3) 如函數(shù)值為整型,在函數(shù)定義時可以省去類型說明。
4) 不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為“void”。如例8.2中函數(shù)s并不向主函數(shù)返函數(shù)值,因此可定義為:
void s(int n)
{ ……
}
一旦函數(shù)被定義為空類型后,就不能在主調(diào)函數(shù)中使用被調(diào)函數(shù)的函數(shù)值了。例如,在定義s為空類型后,在主函數(shù)中寫下述語句
sum=s(n);
就是錯誤的。
為了使程序有良好的可讀性并減少出錯, 凡不要求返回值的函數(shù)都應(yīng)定義為空類型。
int。C語言規(guī)定:在定義函數(shù)時,若其返回值類型為int,則可以默認。
C語言函數(shù)有三類,分為外部函數(shù)、靜態(tài)函數(shù)、內(nèi)聯(lián)函數(shù),其中前兩種是C89標準支持,第三種是C99標準增加的。
1、外部函數(shù)
這類函數(shù)是默認的函數(shù)類型,基本上平時我們使用的就是這種函數(shù),聲明有以下兩種方式,例如:
// 使用extern關(guān)鍵字,顯示聲明
extern int add(int a, int b);
// 或省略關(guān)鍵字extern,編譯器也會自動認為是extern
int add(int a, int b);
外部函數(shù)表明在當前聲明和定義的代碼文件中可以使用,也可以在其它代碼文件中可以通過#include指令包含使用,對外部的代碼可見。
2、靜態(tài)函數(shù)
這類函數(shù)其實與外部函數(shù)相對的,因為需要使用static關(guān)鍵字修飾,因此稱為靜態(tài)函數(shù),其實就是內(nèi)部函數(shù)。聲明方式如下,例如:
static int add(int a, int b);
靜態(tài)函數(shù)的作用域只能在當前聲明和定義的文件中,在其它代碼文件中無法#include使用,因此在整個程序中,特別是大型程序,有多個源代碼文件時,即使定義相同名稱的兩個靜態(tài)函數(shù),也不會有命名和使用沖突。
3、內(nèi)聯(lián)函數(shù)
是新增的特性,使用inline關(guān)鍵字聲明和定義,該類函數(shù)類似#define宏定義展開,編譯時會直接將函數(shù)定義代碼在調(diào)用的地方復(fù)制展開,這樣會減少函數(shù)調(diào)用的開銷,提高運行效率。
inline int add(int a, int b);
內(nèi)聯(lián)函數(shù)適合短小的、被頻繁調(diào)用的函數(shù),對于復(fù)雜函數(shù),無法使用。
擴展資料:
C語言編寫注意事項:
1、const在聲明變量中起限制作用, 該限定變量的值不能被修改。
2、%運算符不能應(yīng)用與float或double類型。
3、char類型轉(zhuǎn)換為int型時, 無法判斷它是signed還是unsigned.這樣其結(jié)果有可能為負數(shù), 因此轉(zhuǎn)換時盡量指定signed和unsigned限制符。
4、++i與i++不同之處: ++i是先+1在使用, i++是先使用i在遞加1。
5、三元運算符"?:" 第一個表達式的括號不是必須的,但是由于三元表達式的優(yōu)先級非常低,我們還是將第一個表達式用()括起便于閱讀和理解。
6、C語言中可以使用遞歸 (即函數(shù)調(diào)用自身函數(shù)), 其不節(jié)省儲存器開銷也不加快執(zhí)行速度, 只是使程序緊湊便于理解。