c++ - 将函数参数从 void* 转换为 actual

标签 c++

我有一个将 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/

相关文章:

c++ - 为什么会有 `std::llabs` ?

c++ - 可以从纯虚函数返回引用吗?

c++ - 如何使用 QRegExp 从 QString 中获取子字符串?

c++ - 我有一个关于将 std::array 传递给函数的问题

c++ - Qt:如何解析json中的数字

c++ - 算法 - build 最高的塔

C++ asterisk 星号运算符

c++ - C++ 中的日期操作

c++ - 返回字符串 vector

c++ - 在 map 和列表之间寻找标准容器