void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
#include <stdio.h>
#define uint16_t unsigned int
void print1(void *dat , uint16_t len)
{
if(len == 1)
{
printf("value:%d\n",*(short *) dat);
}
else if(len > 1)
{
for(int i = 0; i < len ; i++ )
{
printf("i:%d\tvalue:%d\n",i,*(short *) dat);
dat += 2;
//也可以使用memcpy函数将数组的内容拷贝到另一个数组中
//memcpy(DesArr,(short *)dat,len);
}
}
}
int main()
{
short temp1 = 15;
short temp2[10]={1,2,3,4,5,6};
print1(&temp1,1);
print1(&temp2,6);
return 0;
}
让void作为形参的目的在于,可以让一个函数处理更多的数据类型,并且各个类型参数的处理方式类似,就没有必要写多个函数进行处理