Почему прототипы функций включают имена параметров, когда они не требуются?

Я всегда думал, что прототип функции должен содержать параметры функции и их имена. Однако я только что попробовал:

int add(int,int);

int main()
{
    std::cout << add(3,1) << std::endl;
}

int add(int x, int y)
{
    return x + y;
}

И это сработало! Я даже пытался скомпилировать с особой осторожностью:

g++ -W -Wall -Werror -pedantic test.cpp

И все равно работало. Итак, мой вопрос: если вам не нужны имена параметров в прототипах функций, почему это так часто? Есть ли в этом какая-то цель? Связано ли это с сигнатурой функции?

10
задан Keith Pinson 28 September 2012 в 20:33
поделиться