Почему в C не разрешены функции со списком аргументов переменной длины, например:
void f(...) { // do something... }