void 与 void * 利与弊!

1838阅读 1评论2012-08-27 glinuxi
分类:C/C++

     在学习C语言或者C++的时候,我们都会遇到一个关键字----void;void 代表的是无类型。让我们觉得void 的就是万能的,其实不然。
     对于void 真正发挥的作用在于:
     1、对函数返回的限定;
     2、对函数参数的限定
     但是,在编写的代码中有的人也会想到用void,因为有了void 我们就不会受到类型的多方面的限制了。
但是使用void申请变量的时候,在C/C++中编译器是会报错。

void 的事例代码

  1. #include<stdio.h>
  2.  int main()
  3.  {
  4.       void ok;
  5.       return 0;
  6.   }
错误:
  void 指针
  1、与另外一个指针进行比较;
  2、想函数传递void *指针和返回void *指针;
  3、给另一个void *指针赋值;
  4、不允许使用void*指针操纵它指向的对象;

void * 代码

  1. #include<iostream>
  2.  using namespace std;
  3.  struct ok
  4.   {
  5.         int a;
  6.        char c;
  7.  };

  8.  typedef struct ok ok_struct;
  9.  int main()
  10.  {
  11.    ok_struct data;
  12.    void * ptr =(void*)&data;
  13.    data.a=1;
  14.    data.c = 'r';
  15.    cout<<"data = "<<data.a<<" "<<data.c;
  16.    cout<<"Dptr = "<<((ok_struct*)ptr)->a<<" "<<((ok_struct*)ptr)-> ;
  17.       return 1;
  18.  }


上一篇:一步一步学Linux与Windows 共享文件-----Samba
下一篇:Kobject模型

文章评论