? 1、void的字面意思是“無類型”,void *則為“無類型指針”,void *可以指向任何類型的數據。
? 2、用法1:數據類型的封裝
int InitHardEnv(void **handle);
典型的如內存操作函數memcpy和memset的函數原型分別為
void * memcpy(void *dest, const void *src, size_t len);
void * memset ( void * buffer, int c, size_t num );
? 3、用法2: void修飾函數返回值和參數,僅表示無。
如果函數沒有返回值,那麼應該將其聲明為void型
如果函數沒有參數,應該聲明其參數為void
int function(void)
{return 1;}
? 4、void指針的意義
C語言規定只有相同類型的指針才可以相互賦值
void*指針作為左值用於“接收”任意類型的指針
void*指針作為右值賦值給其它指針時需要強制類型轉換
int *p1 = NULL;
char *p2 = (char *)malloc(sizoeof(char)*20);
? 5、不存在void類型的變量
C語言沒有定義void究竟是多大內存的別名