ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Понедельник
21 сентября
/1036039
Топик полностью
йцyкeн (12.09.2020 23:36, просмотров: 33) в ответ на #4 Детский. Я объявил в "*.c" функцию "int foo(){};" (а точка-с-запятой тут по делу?). В этом же *.c до объявления я задекларировал "ing foo(void);" и вдобавок в *.h написал то же "ing foo(void);". Вопрос: чем различаются прототипы в *.c и *.h. Если в *.h нет объявления, то функция внешним файлам не видна? - автор: teap0t
int foo(){}; - просто ошибка. Здесь функция имеет пустое тело {}, а должна возвращать int, то есть тело должно как минимум содержать { return 0; }. Нужно различать declaration (прототип) и definition (определение). int foo(); - прототип, точка с запятой нужна. int foo() { return 0; } - определение, точка с запятой после } не нужна. 
Ответить
Ответы