随笔 - 251  文章 - 504  trackbacks - 0
<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

本博客系个人收集材料及学习记录之用,各类“大侠”勿扰!

留言簿(14)

随笔分类

收藏夹

My Favorite Web Sites

名Bloger

非著名Bloger

搜索

  •  

积分与排名

  • 积分 - 200395
  • 排名 - 285

最新评论

关键字 Void 表示函数不接受任何参数或不返回任何值,同时还可以用在创建通用指针:一个可指向任何类型的数据对象的指针。如:

Void *ptr; // ptr 声明为一个通用指针,但没有指定它指向的东西。

Void 指针最常见的用途是用于声明函数的参数。你可能会希望你的一个函数能够处理不同的类型的参数,可以将 int 变量传递给它,也可以将 float 变量传给它,等等。这样的情况下,你可以将函数声明为接受 void 指针作为参数,则它可以接受任何类型的数据,可以将指向任何东西的指针传递给该函数。如:

Void half(void *val);

下面是一个例子程序:

#include < stdio.h >
void  half( void   * pval, char  type);
int  main( void )
{
int  i = 20 ;
long  l = 100000 ;
float  f = 12.456 ;
double  d = 123.044444 ;

printf(
" \n%d " ,i);
printf(
" \n%ld " ,l);
printf(
" \n%f " ,f);
printf(
" \n%lf\n\n " ,d);

half(
& i, ' i ' );
half(
& l, ' l ' );
half(
& d, ' d ' );
half(
& f, ' f ' );

printf(
" \n%d " ,i);
printf(
" \n%ld " ,l);
printf(
" \n%f " ,f);
printf(
" \n%lf\n\n " ,d);
return   0 ;
}

void  half( void   * pval, char  type)
{
switch (type)
{
 
case   ' i ' :
  
{
   
* (( int   * )pval) /= 2 ;        // 强制转换类型,存取指针pval指向的int变量
    break ;
  }

  
case   ' l ' :
  
{
   
* (( long   * )pval) /= 2 ;        // 强制转换类型,存取指针pval指向的long变量
    break ;
  }

  
case   ' f ' :
  
{
   
* (( float   * )pval) /= 2 ;        // 强制转换类型,存取指针pval指向的float变量
    break ;
  }

  
case   ' d ' :
  
{
   
* (( double    * )pval) /= 2 ;        // 强制转换类型,存取指针pval指向的double变量
    break ;
  }

}

}

程序输出结果:
20
100000
12.456000
123.044444


10
50000
6.228000
61.522222

posted on 2006-12-11 15:12 matthew 阅读(517) 评论(0)  编辑  收藏 所属分类: 阅读笔记

只有注册用户登录后才能发表评论。


网站导航: