Я иногда вижу это в коде других людей:
public void *foo() { ... } public void bar() { ... }
, но я так и не понял, для чего было значение *, и есть ли разница между public void *foo() и public void foo()?
*
public void *foo()
public void foo()
*** Это код C ++ здесь!
public void *foo() - это открытая функция, которая возвращает пустой указатель (который может быть чем угодно). Дополнительную документацию по указателям можно найти здесь: http://www.cplusplus.com/doc/tutorial/pointers/ (в частности, раздел пустых указателей).
public void *foo() и public void* foo() одинаковы, а позиция * является чисто стилевой вещью (хотя стиль может иметь значение при использовании в другом месте).
public void* foo()
public void foo() - публичная функция, которая ничего не возвращает.
Интервал сбивает вас с толку. void *foo(int) - это то же самое, что и void* foo(int). Первый возвращает void *, последний ничего не возвращает. Некоторые люди предпочитают прикреплять '*' к типу именно для того, чтобы избежать этой путаницы.
void *foo(int)
void* foo(int)
void *