C語(yǔ)言:函數(shù)前加void是表示函數(shù)的返回值為空,void表示空
創(chuàng)新互聯(lián)是一家專業(yè)提供路南企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為路南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
返回值為空表示此函數(shù)可以沒有return語(yǔ)句,或者使用return;語(yǔ)句
返回值概念:一個(gè)函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個(gè)變量。由于函數(shù)名變量通常用來把函數(shù)的處理結(jié)果數(shù)據(jù)帶回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱為返回值。通俗點(diǎn)來說就是函數(shù)執(zhí)行完畢后得到的結(jié)果。
返回值的類型可以有很多 void、bool 、int 、以及自定義的類型等等。
void意思是主函數(shù)(main)的數(shù)據(jù)類型空返回值。
void的字面意思是“無類型”,void *則為“無類型指針”,void *可以指向任何類型的數(shù)據(jù)。
沒有返回值的函數(shù):功能只是完成一個(gè)操作,應(yīng)將返回值類型定義為void,函數(shù)體內(nèi)可沒有return語(yǔ)句。
有返回值的函數(shù):函數(shù)的最后會(huì)有一個(gè)返回值return,可以用來獲取該函數(shù)執(zhí)行結(jié)果返回給該函數(shù),讓外部調(diào)用該函數(shù)的。
擴(kuò)展資料
void的使用
示例:
add ( int a, int b )
{
return a + b;
}
int main(int argc, char* argv[])
{
printf ( "2 + 3 = %d", add ( 2, 3) );
}
參考資料來源:?百度百科—void
參考資料來源:百度百科—返回值
【void的含義】
void的字面意思是“無類型”,void
*則為“無類型指針”,void
*可以指向任何類型的數(shù)據(jù)。
void幾乎只有“注釋”和限制程序的作用,因?yàn)閺膩頉]有人會(huì)定義一個(gè)void變量,
void真正發(fā)揮的【作用】在于:
(1)
對(duì)函數(shù)返回的限定;
(2)
對(duì)函數(shù)參數(shù)的限定。
我們知道,在定義函數(shù)時(shí),加在函數(shù)名前的“void”表示該函數(shù)沒有返回值。但在調(diào)用時(shí),在函數(shù)名前加“(void)”的作用又是什么呢?
最明顯的一點(diǎn)就是表示程序并不關(guān)心調(diào)用該函數(shù)后的返回值是什么,比如函數(shù)strcpy,我們直接用“strcpy(des_str,
src_str);”這樣的形式來調(diào)用?!?void)strcpy(des_str,
src_str);”這樣的形式還真不多見!
原因是這種寫法不針對(duì)人,也不針對(duì)編譯器,而是針對(duì)靜態(tài)代碼檢測(cè)工具,它會(huì)把函數(shù)返回值作為一項(xiàng)檢測(cè)標(biāo)準(zhǔn)。在某些大公司,比較重視代碼規(guī)范,若在代碼靜態(tài)檢測(cè)時(shí)需要檢測(cè)該項(xiàng)。此時(shí)就需要用在被調(diào)用的函數(shù)(名)前加上“(void)”這種形式來告訴靜態(tài)代碼檢測(cè)工具程序并非沒有處理該函數(shù)的返回值,而是該處確實(shí)不需要處理它(該函數(shù)的返回值),不需要再對(duì)該處代碼作此項(xiàng)檢測(cè)。其實(shí)這和我們?cè)诖a中使用“#pragma
warning
(disable:
XXXX)”的道理是一樣的。
l例如:
統(tǒng)計(jì)整數(shù)里面各位
1
2
3
的個(gè)數(shù)
//***************************************************
#
include
stdio.h
int
c1,
c2,
c3;
void
fun(long
n)
{
c1
=
c2
=
c3
=
0;
while
(n
!=
0)
{
switch
(n
%
10)
{
case
1:
c1++;
break;
case
2:
c2++;
break;
case
3:
c3++;
}
n
/=
10;
}
}
int
main()
{
long
n;
scanf("%ld",
n);
//輸入整數(shù)n
fun(n);
//調(diào)用自定義函數(shù)fun
printf("C1=%d
C2=%d
C3=%d\n",
c1,
c2,
c3);
//輸出
}
void有兩種意思。第一種意思是無返回值,也就是說,void放在函數(shù)前面,那么,函數(shù)結(jié)束的時(shí)候,不需要return什么值(其實(shí)也可以寫return;);
第二種意思是任意返回值。這個(gè)意思,在某些應(yīng)用上很有用。一般用來修飾指針。即void指針。