void

来源:互联网 发布:怎样修改软件版本号 编辑:程序博客网 时间:2024/05/16 08:28
一、void

1、void 是一种“抽象类型”,sizeof(void) = 0,故不允许使用void来定义变量。
例如:void void_variable
           int func(void void_argument) 都是错误的。

2、void 作为函数返回值的限定
在C89标准中,如果某个函数没有返回值,那么返回类型为void。 例如void add(int a, int b)。
假如某个函数没有限定返回类型,例如 add(int a, int b),那么编译器默认的返回类型是整数类型。
void add(int a, int b){    /*error*/
     return a + b;
}

add(int a, int b) {          /*OK*/
     return a + b;
}

3、void 作为函数的参数
如果某个函数没有参数,那么将其声明为void。例如int func(void)。
假如某个函数没有参数,但是没有声明为void,则int func(),则在调用func函数时,可以接受任何参数。
int func(void) {
    return 0;
}
func(2);                //error
func(2.5);             //error
func(2, 'a');           //error

int func(){
    return 0;
}

func(2);                     /*OK*/
func(2.5);                  /*OK*/
func(2, 2.5);              /*OK*/

二、void*

1、void*可以声明变量,它是真实存在的。
void *p;
sizeof(void*) = 4
sizeof(p) = 4
sizeof(void) = 0;

2、void *能够指向任何类型的数据,也就是说任何类型的数据指针都可以赋值给void*指针。
int *p1;
float *p2
void *p;
p = p1;    /* OK */
p = p2     /* OK */

3、void*指针是不能做计算的,因为不知道void*指向的数据类型。
/* error C2036: “void *”: 未知的大小 */
void *p;
p++;   

本人现经营一个微信订阅号如下:欢迎大家关注,获取相关内容。
订阅号账号是:begginghard_zgh

订阅号名称是:读书笔记 By 张光辉



0 0
原创粉丝点击