#include<stdio.h> void MyInt(void const *ar,int size) { size/=4; //int 一次打印4字节 int const *p=(int const *)ar; for(int i=0;i<size;++i) { printf("%d ",p[i]); } printf("\n"); } void MyFloat(void const *ar,int size) { size/=4; //float 一次打印4字节 float const *p=(float const*)ar; for(int i=0;i<size;++i) { printf("%f ",p[i]); } printf("\n"); } void MyPrint(void const *ar,int size,void(*pfun)(void const*,int)) { if(NULL!=pfun) { pfun(ar,size); } } void main() { const int n=10; int ar[n]={12,23,34,45,56,67,78,89,90,100}; float dr[n]={1.2,2.3,3.4,4.5,6.7,8.9,9.0,10.0}; MyPrint(ar,sizeof(ar),MyInt); MyPrint(dr,sizeof(dr),MyFloat); } //sizeof中数组名代表整个数组的大小,其他情况下数组名代表首元素的地址。
函数指针实现无类型打印
猜你喜欢
转载自blog.csdn.net/shimadear/article/details/80378216
今日推荐
周排行