void 的意义
在C语言中:
void修饰函数返回值和参数
void修饰函数返回值和参数是为了表示 “无”
· 如果函数没有返回值, 那么应该将其声明为 void
· 如果函数没有参数, 应该声明参数为 void
void 的分析1:void变量
不存在void变量, C语言中没有定义void究竟是多大内存的别名
#include <stdio.h>
int main()
{
void var; // error
void array[5]; // error
return 0;
}
注意:现代编译器大多会对 ANSI C 进行扩展, void是否会占内存依具体编译器而定
void 的分析2:void指针
C语言规定只有相同类型的指针才可以相互赋值
void* 指针作为左值用于 “接受” 任意类型的指针
void*指针作为右值使用时需要进行强制类型转换
// malloc()函数的返回值类型为 void*
int* pI = (int*)malloc(sizeof(int));
char* pC = (char*)malloc(sizeof(char));
void* p = NULL;
int* pni = NULL;
char* pnc = NULL;
p = pni; // ok
p = pnc; // ok
pni = p; // error
pnc = p; // error