我有一个将 void* 传递给结构的例程。在里面 例程我将它转换为正确的类型,例如
SomeFunc(void* pMsg) {
printf("Event = %d\n", static_cast<struct MyEventMsg*>(pMsg)->Event);
}
如果我正在访问结构的许多成员,代码看起来很漂亮 杂乱。我可以创建一个正确类型的新指针并分配它 cast void*,但似乎没有必要创建 一个临时变量只是为了这个目的。有什么办法可以投 参数 pMsg 为正确的类型?
谢谢 道格
最佳答案
创建正确类型的指针并为其分配 void* 的类型是正确的方法。如果您为指针选择一个“好的”名称,它将使代码更短且更易于阅读。
你说你认为指针“不必要”。如果这是因为您认为存在与之相关的运行时成本,您很可能会发现编译器会为您消除指针。
关于c++ - 将函数参数从 void* 转换为 actual,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446097/