void不是“空”的意思,是“万能”的意思。
void修饰普通变量 也就是这个变量的类型是任何类型,比如void a; a=10;不过几乎没有人这样做,这样写在有些编译器中也是出错的。如下图所示:
因此我们在定义变量时都会给一个确定的类型。同时系统会给这个变量分配相应的内存空间,如果定义为void类型变量,系统就不知道要给这个变量分配多大的内存空间。因此这样写是错的。同样,void*修饰变量也是类似。
void在自己定义函数中作为参数和返回值的使用。如果函数没有返回值,那么可以将这个函数的返回设置为void类型。比如
void fun(int i)
{
printf("i = %d n", i)
}
如果函数有返回值,但是在定义的时候没有返回类型,那么默认的返回值的类型为整型。如果函数没有参数应在函数名后的小括号内写上void,常见的int main(void)或者比如
int fun(void)
{
int i = 10;
return i;
}
void *修饰指针变量 表示这个变量可以指向任何类型的指针。
如果在实际的开发中,如果我们所需要的参数或者是返回值为任意一种指针类型,那么可以将参数或者返回值写成void *形式。比如我们常用的memcpy memset函数都是这样做的。这些内存操作函数只管所需要的空间大小,不管申请后这些空间是用来存储int类型还是char类型亦或是其他类型额数据。这样也就保证了这些内存函数使用的范围更广。这里的参数个返回值void*类型就表示可以是任何需要的类型。
void *memcpy(void *dest, const void *src, size_t n);
void *memset(void *s, int c, size_t n);
戴表是一种仪式感「人为什么要有仪式感?」「小王子」里说:仪式感就是使某一天与其他日子不同,使某一个时刻与其他时刻不同。仪式感对我们而言,庄重而有意义,它足以让平凡的日子也可以散发出光芒。同样的,手表对我们来说就是生活中的一种仪式感。相信在日常生活中,一个人可能不会每天都佩戴着手表的,但在某些特定的场合,比如「有重要的面谈」或是「第一次和女票约会」,都会巴不得把家里最好最时尚的手表戴上,并且服装也会很注意,要跟手表搭配好让自己信心十足。 以上就是所总结的void的用法,这些都是必须要掌握的,上机实战,理解才是王道。
芝柏GIRARD-PERREGAUX 尽显尊贵,来自瑞士拉绍德封的芝柏表,始创于1791年,两个多世纪以来,芝柏表的创意源源不绝,全赖背后无数超卓的制表工匠,代代相传,努力不懈,使其优良的制表传统得以发扬光大,举世推崇的地位。手表制作,是心思的结晶,也是对美学和技巧完美配合的追求;满足不同年代的品味和潮流之余,必须无损传统素质及优点,才能叫人赏心悦目,始终如一。