我有时会在其他人的代码中看到这一点:
public void *foo() {
...
}
public void bar() {
...
}
但我从未明白*
的含义是什么,以及public void *foo()
和public void foo()
之间是否存在差异?
***这是这里的C ++代码!
答案 0 :(得分:10)
public void *foo()
是一个公共函数,它返回一个void指针(基本上可以是任何东西)。有关指针的更多文档可以在这里找到:http://www.cplusplus.com/doc/tutorial/pointers/(特别是void指针部分)。
public void *foo()
和public void* foo()
是相同的,*
的位置纯粹是一种风格的东西(虽然这种风格在其他地方使用时会产生影响)。
public void foo()
是一个不返回任何内容的公共函数。
答案 1 :(得分:2)
间距令你感到困惑。 void *foo(int)
与void* foo(int)
相同。前者返回void *
,后者不返回任何内容。有些人更喜欢将'*'精确地附加到类型上以避免这种混淆。