我遇到了一些我不太理解的 C 代码。以下编译并运行得很好。1) 为什么我可以将 char* 转换为 struct* 和 2) 使用这个成语而不是 void* 有什么好处吗?
struct foo
{
int a;
int b;
char *nextPtr;
};
. . .
// This seems wrong
char *charPtr = NULL;
// Why not
//void *structPtr = NULL;
struct foo *fooPtr;
fooPtr = (struct foo*)charPtr;
// 编辑删除字符串部分,因为这不是问题的重点。