任务:编写一个程序,实现一个整数、长整数、浮点数和双精度除2的运算,要求所有的类型的数除2只使用一个函数
void字面意思是”无类型”,void*无类型指针,无类型指针可以指向任何类型的数据。
void定义变量是没有任何意义的,当定义void a,编译器会报错。
#include<stdio.h>
#define MaxSize 100
//编写一个程序,实现一个整数、长整数、浮点数和双精度除2的运算,要求所有的类型的数除2只使用一个函数
/*
void字面意思是”无类型”,void*无类型指针,无类型指针可以指向任何类型的数据。
void定义变量是没有任何意义的,当你定义void a,编译器会报错。
*/
void half(void *num,char type)
{
switch(type)
{
case 'i':
*((int *)num) /= 2;
break;
case 'l':
*((long *)num) /= 2;
break;
case 'f':
*((float *)num) /= 2;
break;
case 'd':
*((double *)num) /= 2;
break;
}
}
int main()
{
int i=10;
long l = 50000;
float f = 24.8;
double d = 123.4567;
printf("Before Half %d\t %ld\t %lf\t %f\t\n",i,l,f,d);
half(&i,'i');
half(&l,'l');
half(&f,'f');
half(&d,'d');
printf("After Half %d\t %ld\t %lf\t %f\n",i,l,f,d);
return 0;
}