解析void函數應用「void函數已有主體怎麼解決」

void不是「空」的意思,是「萬能」的意思。

void與普通變量的結合

void修飾普通變量 也就是這個變量的類型是任何類型,比如void a; a=10;不過幾乎沒有人這樣做,這樣寫在有些編譯器中也是出錯的。如下圖所示:

嵌入式開發《C語言(十:不要再認為void關鍵字是「空」的意思)》

因此我們在定義變量時都會給一個確定的類型。同時系統會給這個變量分配相應的內存空間,如果定義為void類型變量,系統就不知道要給這個變量分配多大的內存空間。因此這樣寫是錯的。同樣,void*修飾變量也是類似。

void與函數的結合

void在自己定義函數中作為參數和返回值的使用。如果函數沒有返回值,那麼可以將這個函數的返回設置為void類型。比如

void fun(int i)
{
 printf("i = %d n", i)
}

如果函數有返回值,但是在定義的時候沒有返回類型,那麼默認的返回值的類型為整型。如果函數沒有參數應在函數名後的小括號內寫上void,常見的int main(void)或者比如

int fun(void)
{
 int i = 10;
 return i;
}

void *指針與函數的結合

void *修飾指針變量 表示這個變量可以指向任何類型的指針。

如果在實際的開發中,如果我們所需要的參數或者是返回值為任意一種指針類型,那麼可以將參數或者返回值寫成void *形式。比如我們常用的memcpy memset函數都是這樣做的。這些內存操作函數只管所需要的空間大小,不管申請後這些空間是用來存儲int類型還是char類型亦或是其他類型額數據。這樣也就保證了這些內存函數使用的範圍更廣。這裡的參數個返回值void*類型就表示可以是任何需要的類型。

void *memcpy(void *dest, const void *src, size_t n);

void *memset(void *s, int c, size_t n);

以上就是所總結的void的用法,這些都是必須要掌握的,上機實戰,理解才是王道

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/281925.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-21 13:20
下一篇 2024-12-21 13:20

相關推薦

發表回復

登錄後才能評論