您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何進行void類型深層的分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
下面將對void關鍵字的深刻說明,并詳述void及void指針類型的使用方法與技巧,初學者對C/C++語言中的void及void指針類型不甚理解,因此在使用上出現了一些錯誤。。。
1.void的含義
void的字面意思是“無類型”,void類型 *則為“無類型指針”,void *可以指向任何類型的數據。void幾乎只有“注釋”和限制程序的作用,因為從來沒有人會定義一個void變量,讓我們試著來定義:
這行語句編譯時會出錯,提示“illegal use of type 'void'”。不過,即使void a的編譯不會出錯,它也沒有任何實際意義。void真正發揮的作用在于:
(1) 對函數返回的限定;
(2) 對函數參數的限定。
眾所周知,如果指針p1和p2的類型相同,那么我們可以直接在p1和p2間互相賦值;如果p1和p2指向不同的數據類型,則必須使用強制類型轉換運算符把賦值運算符右邊的指針類型轉換為左邊指針的類型。
int function(void) { return 1; } 則進行下面的調用是不合法的: function(2); 因為在C++中,函數參數為void的意思是這個函數不接受任何參數。 我們在Turbo C 2.0中編譯: #include "stdio.h" fun() { return 1; } main() { printf("%d",fun(2)); getchar(); }
因此,為了避免混亂,我們在編寫C/C++程序時,對于任何函數都必須一個不漏地指定其類型。如果函數沒有返回值,一定要聲明為void類型。這既是程序良好可讀性的需要,也是編程規范性的要求。
另外,加上void類型聲明后,也可以發揮代碼的“自注釋”作用。代碼的“自注釋”即代碼能自己注釋自己。規則二 如果函數無參數,那么應聲明其參數為void
在C++語言中聲明一個這樣的函數:
int function(void) { return 1; } 則進行下面的調用是不合法的: function(2); 因為在C++中,函數參數為void的意思是這個函數不接受任何參數。 我們在Turbo C 2.0中編譯: #include "stdio.h" fun() { return 1; } main() { printf("%d",fun(2)); getchar(); }
編譯正確且輸出1,這說明,在C語言中,可以給無參數的函數傳送任意類型的參數,但是在C++編譯器中編譯同樣的代碼則會出錯。在C++中,不能向無參數的函數傳送任何參數,出錯提示“'fun' : function does not take 1 parameters”。所以,無論在C還是C++中,若函數不接受任何參數,一定要指明參數為void。
看完上述內容,你們對如何進行void類型深層的分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。