关键字
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 阅读(516)
评论(0) 编辑 收藏 所属分类:
阅读笔记