В VS2010 следующий код компилируется и запускается в файле .c:
void F1(,a,b,c,d,e){} // Note the leading comma.
void F2(void){
int x = 10;
void* y = 0;
F1(x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, y); // Compiles fine.
}
То есть он действует так, как будто его где-то видели:
void F1();
Следующий код не компилируется с неизвестной ошибкой идентификатора в строке printf для каждого параметра:
void F1(,a,b,c,d,e){
printf("%d, %d, %d, %d, %d\n", a, b, c, d, e);
}
Является ли это частью стандарта C? Есть идеи, что происходит?