今天在工作时发现程序有可以优化的地方,程序中本来有一个结构体A,然后A这个结构体中包含了若干个结构体BCDEF等等。本意是将这若干个结构体的数据通过socket发送出去,原本每一个结构体都会有一个发送函数,现在想将它优化成一个发送函数。
那么问题来了?
这个函数的形参怎么设定?
指向结构体中的结构体的指针?
苦思冥想不得,然后看到memcpy以及memset中的void*,就想到了使用这个无类型指针。
首先介绍一下:
void*是一种特别的指针,因为它没有指向的类型,或者说不能根据这个类型判断出指向对象的长度。
void *指针具有以下特点:
1.任何指针(包括函数指针)都可以赋值给void指针;
2. void指针赋值给其他类型的指针时都要进行转换;
例:type * p=(