溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行void類型深層的分析

發(fā)布時(shí)間:2021-12-27 16:16:26 來(lái)源:億速云 閱讀:230 作者:柒染 欄目:編程語(yǔ)言

今天就跟大家聊聊有關(guān)如何進(jìn)行void類型深層的分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

下面將對(duì)void關(guān)鍵字的深刻說明,并詳述voidvoid指針類型的使用方法與技巧,初學(xué)者對(duì)C/C++語(yǔ)言中的voidvoid指針類型不甚理解,因此在使用上出現(xiàn)了一些錯(cuò)誤。。。

1.void的含義
void的字面意思是“無(wú)類型”,void類型 *則為“無(wú)類型指針”,void *可以指向任何類型的數(shù)據(jù)。void幾乎只有“注釋”和限制程序的作用,因?yàn)閺膩?lái)沒有人會(huì)定義一個(gè)void變量,讓我們?cè)囍鴣?lái)定義:

這行語(yǔ)句編譯時(shí)會(huì)出錯(cuò),提示“illegal use of type 'void'”。不過,即使void a的編譯不會(huì)出錯(cuò),它也沒有任何實(shí)際意義。void真正發(fā)揮的作用在于:
(1) 對(duì)函數(shù)返回的限定;
(2) 對(duì)函數(shù)參數(shù)的限定。
眾所周知,如果指針p1和p2的類型相同,那么我們可以直接在p1和p2間互相賦值;如果p1和p2指向不同的數(shù)據(jù)類型,則必須使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符把賦值運(yùn)算符右邊的指針類型轉(zhuǎn)換為左邊指針的類型。

int function(void)  {  return 1;  }  則進(jìn)行下面的調(diào)用是不合法的:  function(2);  因?yàn)樵贑++中,函數(shù)參數(shù)為void的意思是這個(gè)函數(shù)不接受任何參數(shù)。  我們?cè)赥urbo C 2.0中編譯:  #include "stdio.h"  fun()  {  return 1;  }  main()  {  printf("%d",fun(2));  getchar();  }

因此,為了避免混亂,我們?cè)诰帉慍/C++程序時(shí),對(duì)于任何函數(shù)都必須一個(gè)不漏地指定其類型。如果函數(shù)沒有返回值,一定要聲明為void類型。這既是程序良好可讀性的需要,也是編程規(guī)范性的要求。

另外,加上void類型聲明后,也可以發(fā)揮代碼的“自注釋”作用。代碼的“自注釋”即代碼能自己注釋自己。規(guī)則二 如果函數(shù)無(wú)參數(shù),那么應(yīng)聲明其參數(shù)為void
C++語(yǔ)言中聲明一個(gè)這樣的函數(shù):

int function(void)  {  return 1;  }  則進(jìn)行下面的調(diào)用是不合法的:  function(2);  因?yàn)樵贑++中,函數(shù)參數(shù)為void的意思是這個(gè)函數(shù)不接受任何參數(shù)。  我們?cè)赥urbo C 2.0中編譯:  #include "stdio.h"  fun()  {  return 1;  }  main()  {  printf("%d",fun(2));  getchar();  }

編譯正確且輸出1,這說明,在C語(yǔ)言中,可以給無(wú)參數(shù)的函數(shù)傳送任意類型的參數(shù),但是在C++編譯器中編譯同樣的代碼則會(huì)出錯(cuò)。在C++中,不能向無(wú)參數(shù)的函數(shù)傳送任何參數(shù),出錯(cuò)提示“'fun' : function does not take 1 parameters”。所以,無(wú)論在C還是C++中,若函數(shù)不接受任何參數(shù),一定要指明參數(shù)為void。

看完上述內(nèi)容,你們對(duì)如何進(jìn)行void類型深層的分析有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI