代码之家  ›  专栏  ›  技术社区  ›  jangelo42

什么是(void*)参数

  •  3
  • jangelo42  · 技术社区  · 15 年前

    -(void)使用此数据块的dosomething:(void*)数据;

    然后,delegate方法将数据强制转换为:

    -(void)使用此数据块的dosomething:(void*)数据 一个对象*我的对象; myObject=(anObject)数据; ....

    为什么这样做,它是良好的编码实践吗?我会用数据代替。

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Paul Sonier    15 年前

    void*作为一种类型,表示可以传递任何指针,接收指针的代码将把它强制转换为它认为合适的任何类型。

        2
  •  0
  •   Community Mohan Dere    9 年前

    如果指定类型,指针仍指向内存分配的开始,但如果增加其位置,指针将跳过该特定类型所需的所有内存,并指向下一个内存块。

    如果是空指针,就不会发生这种情况。如果您增加位置,您可以结束在内存中的对象,而不是在下一个对象。这样你可以更好地控制记忆。

    这个 previous SO answer 或许也能帮到你。