void的使用

void的用法大概有如下幾種:

(1)如果函數沒有返回值,那麼應聲明爲void類型;

(2)如果函數無參數,那麼應聲明其參數爲void;

(3)如果函數的參數可以是任意類型指針,那麼應聲明其參數爲void * ;

//例如以下,交換任意兩個變量:
void swap(void* lsh, void* rhs, size_t size)
{
    ......
}
//有了這樣一個函數,那麼如果想要交換兩個變量,那就可以:
swap(&ai, &bi, sizeof(int));
swap(&af, &bf, sizeof(float));


(4)void*可以用來聲明一個任意類型的指針變量,

  例如:int p=13; void* a=&p;

(5) void不能代表一個真實的變量;


對於函數指針和void的結合,需要注意的是:

void* fun( ) ; //聲明一個返回值可以是任意類型指針的函數fun()
void vfun( ) ; //聲明一個沒有返回值的函數vfun()

void (*xxx)( ) ;  //這是一種變量類型,可用來定義函數指針變量

例如:void (*pfun)(); 是聲明一個函數指針變量pfun,該類型函數就是形如 void func() 的這種函數類型類型,pfu可以指向這類函數,如:pfun=vfun;

這種聲明方式可以用在將一個函數聲明爲另一個函數的參數,例如 

//聲明一個函數,可以接受三個參數,para1爲一個函數指針,para2和para3爲int型
void runfunc(void (*func) (int, int), int a, int b)
{
func(a,b);
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章