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);
}