(void)0相當於巨集null,null本身的含義為「空」,在c語言代表「不存在、不確定」的含義。
0不能簡單的理解為「沒有」的意思,在c語言及二進位制中,0和1代表的是「一件事物的正反兩個方面「,0是一種明確的狀態,不是沒有含義。
舉例:1、就像乙個led燈開關一樣,0代表關,1代表開。」關「是一種明確的狀態,代表燈沒有亮,」開「也是一種明確的狀態,代表燈亮了。」空「代表什麼呢?代表沒有看到那盞燈(未確定),不知道現在是」開「還是」關「,甚至是不是存在那麼一盞燈,都是未知的(未定義)。
2、二進位制的0和1,可以理解為一張紙的正反面,它們之間是相互依存的,相互證明的關係,二者缺一不可,否則無論是只有1還是只有0,都沒有了變化,只是乙個死板的數了。參考老子的道德經,「有無相生,難易相成,長短相形,高下相傾,音聲相和,前後相隨」,結合這句話來理解二進位制再好不過了。
void型別的作用:
規則1:任何型別可以轉換為void型別,來顯示的表明對該值的丟棄。
規則2:void型別不可以轉換為其他型別,void指標除外。
用途:空,0,假,之間的區別?
「空」表示一種不確定或者不存在,不可以作為條件,也不可以給其他變數賦值為空。
0,可以表示為數字0,也可以在條件語句裡表示假
假,邏輯變數,在條件語句中表示假。
舉例:if(條件為真)
執行語句;
if(條件為假)
不執行if(條件為空)
報錯!因為空不是一種明確的狀態。
當我們想明確的表示該值不存在或者放棄該值的時候,可以將相應的值轉換為void型別。
舉例:void fun1(int a); //該函式明確表示沒有返回值,如果沒有void,c語言預設返回int型別的值。
(void)(a=13); //明確的拋棄表示式a=3的值,預設a=3的值為右值3。
(void)0; //明確的將0的型別改為void,因為0可以在條件表示式中表示為假,也可以當作int型別給變數賦值,當0變為void型別後,這些都不可以了。
C語言中的 void 0 與 void 0
前幾天看到乙個巨集,它大概是這樣的 define assert param expr expr void 0 assert failed u8 file line 的含意簡單,關鍵是那個 void 0 的用法,我還是第一次見到 我用 void 的時候,有兩種情況 1.放到函式前面,強調函式沒有返回值...
C語言中的 void 0 與 void 0
前幾天看到乙個巨集,它大概是這樣的 define assert param expr expr void 0 assert failed u8 file line 的含意簡單,關鍵是那個 void 0 的用法,我還是第一次見到 別笑 我用 void 的時候,有兩種情況 1.放到函式前面,強調函式沒有...
函式指標 void 0
在很多情況下,尤其是讀別人所寫 的時候,對 c語言宣告的理解能力變得非常重要,而c語言本身的凝練簡約也使得c語言的宣告常常會令人感到非常困惑,因此,在這裡我用一篇的內容來集中闡述一下這個問題。問題 宣告與函式 有一段程式儲存在起始位址為 0的一段記憶體上,如果我們想要呼叫這段程式,請問該如何去做?答...