Visual C принимает неверное количество аргументов?
Почему это компилируется в Visual Studio:
void foo(int a) {}
int main() {
foo(1,2);
}
Есть предупреждение
source_file.c(4) : warning C4020: 'foo' : too many actual parameters
но почему это не ошибка, как в случае с gcc / clang?
Мне известны определения функций в стиле K & R, но это относится только кfoo()
который будет принимать переменное количество аргументов.
Цитаты из стандарта, позволяющие это сделать, будут очень благодарны.