#include "stdio.h"
void half(void *pval,char type);
main()
{
int i=20;
longl=100000;
float ff=12.456;
double d=123.044444;
printf("%d\n",i);
printf("%ld\n",l);
printf("%f\n",ff);
printf("%lf\n",d);
half(&i,'i');
half(&l,'l');
half(&ff,'ff');
half(&d,'d');
printf("\n%d",i);
printf("\n%ld",l);
printf("\n%f",ff);
printf("\n%lf",d);
return 0;
}
void half(void *pval,char type)
{
switch(type)
{
case 'i':
{
*((int *)pval)/=2; //我想问一下,这个语法怎么理解,太复杂了
break;
}
case 'l':
{
*((long *)pval)/=2;
break;
}
case 'ff':
{
*((float *)pval)/=2;
break;
}
case 'd':
{
*((double *)pval)/=2;
break;
}
}
}
|