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