"void"在C语言中是一个常见的类型。总结起来有以下几点:
1:如果函数没有返回值,应声明为“void"类型。
2:如果函数没有参数,参数应声明为”void";
3:"void *"指针类型在ANSI中不允许算法操作,比如不能自增等。
4:如果函数的参数和返回值可以是任意类型的指针,应分别声明为“void *",比如:
void *memcpy(void *dest,const void *stc,size_t len);
void *memset(void *buffer,intc,size_t num);
5:void *运算规则:
1)任意类型的指针都可以直接赋值给"void *"
2)"void *"不能随便赋值给其他不同类型的指针,需转换成"void *"类型
比如:void *p1; void *p1;
int *p2; int *p2;
p1=p1; p2 = p1; 其中蓝色的是对的,而紫色就是错的。
6:对于"void *"类型的函数的特别说明,一般情况下,如果用"void"定义一个函数,则说明该函数没有返回值,可"void *"定义的函数不是表示没有返回值,而是表示返回一个"void *"类型的指针。
比如:void *SysInit(); main()
{ {
函数体; void * p1;
--------; p1 = SysInit();
}