Пустой аргумент в определении функции, но примитивный тип данных в объявлении
У меня есть запрос с кодом ниже. Как приведенный ниже код интерпретируется в соответствии с K&R c? Нет ошибки компиляции, и код работает нормально. Я использовал -traditional в опции сборки в кодовых блоках. Некоторое время искал, но не смог получить удовлетворительного ответа.
void func(int);
int main(void) {
func(10);
return 0;
}
void func(void){
}
1 ответ
Как приведенный ниже код интерпретируется согласно K&R C?
Как код с синтаксической ошибкой. K&R C не знает ни о прототипах, ни о void
ключевое слово (оба были введены в C89), так что это синтаксическая ошибка.
Начиная с C89, конфликтующие объявления являются нарушением ограничения (причудливые слова для ошибки), которые необходимо диагностировать.