关键字
				Void
				表示函数不接受任何参数或不返回任何值,同时还可以用在创建通用指针:一个可指向任何类型的数据对象的指针。如:
		
		
				Void *ptr; //
				将
				ptr
				声明为一个通用指针,但没有指定它指向的东西。
		
		
				Void 
				指针最常见的用途是用于声明函数的参数。你可能会希望你的一个函数能够处理不同的类型的参数,可以将
				int
				变量传递给它,也可以将
				float
				变量传给它,等等。这样的情况下,你可以将函数声明为接受
				void
				指针作为参数,则它可以接受任何类型的数据,可以将指向任何东西的指针传递给该函数。如:
		
		
				Void half(void *val);
		
		
				下面是一个例子程序:
		
		
				 #include
				<
				stdio.h
				>
				#include
				<
				stdio.h
				>
				
						
						 void
				 half(
				void
				 
				*
				pval,
				char
				 type);
				
				void
				 half(
				void
				 
				*
				pval,
				char
				 type);
 int
				 main(
				void
				)
				int
				 main(
				void
				)

 
				
						 {
				
				
						{
 int
						 i
						=
						20
						;
						int
						 i
						=
						20
						;
 long
						 l
						=
						100000
						;
						long
						 l
						=
						100000
						;
 float
						 f
						=
						12.456
						;
						float
						 f
						=
						12.456
						;
 double
						 d
						=
						123.044444
						;
						double
						 d
						=
						123.044444
						;

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

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

 printf(
						"
						\n%d
						"
						,i);
printf(
						"
						\n%d
						"
						,i);
 printf(
						"
						\n%ld
						"
						,l);
printf(
						"
						\n%ld
						"
						,l);
 printf(
						"
						\n%f
						"
						,f);
printf(
						"
						\n%f
						"
						,f);
 printf(
						"
						\n%lf\n\n
						"
						,d);
printf(
						"
						\n%lf\n\n
						"
						,d);
 return
						 
						0
						;
						return
						 
						0
						;
 }
}
				
				
						
						 void
				 half(
				void
				 
				*
				pval,
				char
				 type)
				
				void
				 half(
				void
				 
				*
				pval,
				char
				 type)

 
				
						 {
				
				
						{
 switch
						(type)
						switch
						(type)

 
						
								 {
						
						
								{
 case
								 
								'
								i
								'
								:
 
								case
								 
								'
								i
								'
								:

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

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

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

 
  
								
										 {
								
								
										{
 *
										((
										double
										  
										*
										)pval)
										/=
										2
										;       
										//
										强制转换类型,存取指针pval指向的double变量
   
										*
										((
										double
										  
										*
										)pval)
										/=
										2
										;       
										//
										强制转换类型,存取指针pval指向的double变量
										
												
												 break
										;
										
										   
										break
										;
 }
  }
								
								
										
										 }
}
						
						
								
								 }
}
				
				
						
						 
				
		 
		
				程序输出结果:
20
100000
12.456000
123.044444
		
				
10
50000
6.228000
61.522222
	posted on 2006-12-11 15:12 
matthew 阅读(545) 
评论(0)  编辑  收藏  所属分类: 
阅读笔记