Следующий код выдает ошибку компиляции на обоих звоном (3.6.0) и GCC (4.9.2) (coliru link)Непоследовательность поведения при передаче параметров в функции с 0 параметров
#include <stdio.h>
void foo(void){
printf("lalala\n");
}
int main(void)
{
foo(1, 2, 3, 4, 5, 6, 67);
return 0;
}
Хотя VS2013 (в то время как компилируются с/TC/W4) только выдаст предупреждение
предупреждение C4087: 'Foo': объявленный с Пустотой списка параметров ... 9 1
Является ли это ошибка в VC или clang и gcc слишком суровые?
В VC вы делаете компиляцию C компиляции на C++? Предупреждение выглядит как C++ как функция без параметров, как правило, 'foo()'. – chux
@chux в [C++ это ошибка для VC] (http://rextester.com/RYTJH69552) –
@chux Да, как я писал в вопросе, я использую флагов/TC, а также «Компилировать как код C (/ TC) "в свойствах проекта -> Свойства конфигурации -> C/C++ -> Дополнительно -> Компиляция как опция – Scis