如果参数里面用了void,就是不需要参数的意思,比如:
char * getToday(void);
char * today = getToday();//直接使用即可
如果函数返回值是void,就是不需要返回任何具体东西的意思,比如:
void ClearMemory(char * mem, int size)
{
for(int i = 0; i < size; i++) mem[i] = 0;
return; //不需要返回任何实际的东西,直接return 即可
}
使用:char hello[6] = "hello"; ClearMemory(hello, 6); //这时hello内容已经完全置空了
void *表示地址,其实在32位计算机里面就是个长整数:
void * malloc(int size); void free(void * pointer);
char * hello = (char *)malloc(6);
strcpy(hello, "hello");
printf(hello);
free(hello);
看明白了吗?hello是个空指针,经过malloc分配了内存,用完了,然后通过free再释放
会有人总结这种东西么...
void用得很少, 至少我看到的少, 一般就只用于函数定义时的返回值和参数列表.
void*用得倒是挺多, 用来强制类型转换, 用来声明一个指向自定义数据类型, 用来指向不确定的数据类型等等.
比如
int main ()
{
void *pData;
int i;
float f;
int mode;
scanf ( "%d", &mode );
if ( mode )
pData = (void*)&i;
else
pData = (void*)&f;
DoSomething ( pData, mode );
}
void* 一般是未定义类型指针,也可以是一个通用的指针。比如你分配内存空间的时候就是一个未定义类型的空间。
void* buf = malloc(sizeof(int)*1024);
int* ibuf = (int*) buf;
自己看吧
http://baike.baidu.com/view/1004734.htm