關鍵字
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 閱讀(525)
評論(0) 編輯 收藏 所屬分類:
閱讀筆記