1.void的字面意思是'无类型'.void * 是无类型指针,void * 可以指向任何类型的数据.
2.数据类型的分装: int InitHardEnv(void ** handle);
典型的内存操作函数: void * memcpy( void *dest, const void *src, size_t len );
void * memset( void *buffer, int c, size_t num );
3. void修饰函数的返回值和参数时 表示没有返回值和参数. void function(void);
4. void指针:
C语言中只有相同类型的指针才可以互相赋值.
void * 作为左值,可以接受任意类型的指针赋值.
void * 作为右值赋值给其他类型指针时,需要强制转换类型.
int *p1 = NULL;
char *p2 = (char *) malloc( sizeof( char ) * 20 );
5. 不存在void类型变量.
C语言没有定义void占用多大内存.
printf( "sizeof(void):%d", sizeof( void ) ); //编译不能通过."不允许使用不完整的类型".
void a; //定义一个void类型变量,错误,编译不通过,因为编译器不知道要分配多少内存.
致读者:本人自学编程,知识薄弱,实践经验不够,博客文章难免有错误之处,希望读者能积极指正,感激不尽。
若您有更精妙的解决方案或者对文中有疑问,欢迎留言或联系我讨论问题。