Я нашел программу, которая использует различные параметры при создании и объявлении функций, поэтому я сделал основную программу.
#include <iostream>
using namespace std;
void add(int a, int b);
int main()
{
add(3,4);
}
void add(int c, int d){
int e = c + d;
cout << e << endl;
}
Я запускаю эту программу, и она работает. Означает ли это, что нет необходимости использовать одно и то же имя параметра как в «прототипировании функции», так и в «объявлении функции»?
Да, имя параметров, используемых в объявлении и определении, не должно совпадать. Вместо этого тип параметров (и порядок) должен быть одинаковым. На самом деле, имена параметров не нужны, особенно в объявлении функций, даже в определении они также могут быть опущены, если вы их не используете.
$ 8.3.5 / 13 Функции
[Dcl.fct]:
(акцент мой)
При желании идентификатор может быть предоставлен как имя параметра; если присутствует в определении функции ([Dcl.fct.def]), он называет параметр. [Примечание: В частности, имена параметров также необязательны в определениях функций и имена, используемые для параметра в разных объявлениях, и определение функции не обязательно должны совпадать. Если имя параметра присутствует в объявлении функции, которое не является определением, его нельзя использовать за пределами его объявления функции, поскольку это является степенью его потенциальной области видимости ([basic.scope.proto]). — конец примечания]
А также 8,3,5 $ / 8 функций
[Dcl.fct]:
Тип возврата, список параметров типа, реф-классификатор, резюме-спецификатор-сл, и есть ли функция без броска Исключение-спецификация, но не аргументы по умолчанию ([Dcl.fct.default]) или спецификация исключения ([Except.spec]), являются частью типа функции.
Обратите внимание, что список параметров-типов, не включая их имена, является частью типа функции.
Других решений пока нет …