Chinaunix首页 | 论坛 | 博客
  • 博客访问: 641547
  • 博文数量: 263
  • 博客积分: 9025
  • 博客等级: 中将
  • 技术积分: 2567
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-01 17:42
文章分类

全部博文(263)

文章存档

2012年(4)

2011年(64)

2010年(47)

2009年(44)

2008年(99)

2007年(5)

我的朋友

分类: C/C++

2011-04-16 23:40:55

         "void"在C语言中是一个常见的类型。总结起来有以下几点:

1:如果函数没有返回值,应声明为“void"类型。

2:如果函数没有参数,参数应声明为”void";

3:"void *"指针类型在ANSI中不允许算法操作,比如不能自增等。

4:如果函数的参数和返回值可以是任意类型的指针,应分别声明为“void *",比如:

     void *memcpy(void *dest,const void *stc,size_t len);

     void *memset(void *buffer,intc,size_t num);

5:void *运算规则:

                     1)任意类型的指针都可以直接赋值给"void *"     

                     2)"void *"不能随便赋值给其他不同类型的指针,需转换成"void *"类型

   比如:void *p1;                              void *p1;

               int *p2;                                 int *p2;

                p1=p1;                                p2 = p1;    其中蓝色的是对的,而紫色就是错的。

6:对于"void *"类型的函数的特别说明,一般情况下,如果用"void"定义一个函数,则说明该函数没有返回值,可"void *"定义的函数不是表示没有返回值,而是表示返回一个"void *"类型的指针。

  比如:void *SysInit();                                                         main()

             {                                                                              {

                          函数体;                                                               void * p1;

                         --------;                                                                   p1 =  SysInit();

             }                                                                               }

阅读(1249) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~