为什么我要在memset函数中对一个结构进行类型转换。我看到很多代码如下所示:
memset( (char*) &mFdr, 0, sizeof(FdrData) );
FdrData
是一个struct,memset采用void指针。根据我的理解,我认为void指针应该采用任何类型的指针,并查看每个字节到你想要的任何内容。我知道0被转换为unsigned char。但我不明白类型转换为memset()
的结构的重要性。
答案 0 :(得分:0)
你不应该做你的例子中的内容。就像你说的那样,(char*)
没有任何意义。
memset
(来自使用c ++的c程序员)的许多历史用法都不需要(从不需要)。例如,您可以使用{}
...
struct Thing {
int x, y, z;
};
Thing t{}; // x = 0, y = 0, x = 0;
Thing t2; // x, y, and z could be anything
我想不到上次我在结构上使用memset。