У меня есть программа на С++, подобная этой:
typedef struct _nodo
{
...
} node;
void cuenta(node& *Lista, char c);
Когда я компилирую, не показывает никаких ошибок. Теперь, когда я хочу использовать этот код для программы на C, компилятор показывает ошибку:
error: expected ')'
void cuenta(node* &Lista, char c);
В чем разница между &
и *
в C++ и C?
&
в списке аргументов — это функция C++ (ссылки), которой просто нет в C. То, что вы показываете, является допустимым C++, но недопустимым C. Вам нужно будет использовать*
вместо&
и настроить синтаксис. ко всем использованиям параметра в теле функции и убедитесь, что вы вызываете функцию с&var
вместоvar
. Итак, C++ синтаксически более удобен. - person Jonathan Leffler   schedule 27.10.2013