Я пытаюсь научить себя программированию C, и я использую DevC++ для своей среды разработки под Windows XP. Я немного запутался в правильном способе вызвать свои собственные файлы заголовков.C Заголовочный файл - правильный способ включить
У меня есть основной исходный файл называется main.c и отдельный файл для функций называется myFunctions.c, который я включаю в main.c, используя «включаю„myFunctions.h“ с всеми моими прототипами функций, проживающими в этом заголовке файл.
myFunctions.c содержит две функции, называемые showDate(), и одну, называемую showScreen(), и обе функции могут быть вызваны из main.c все хорошо и хорошо.
Мои проблемы начались, когда я попытался вызвать showDate() из showScreen(), и во время компиляции/ссылки он жаловался, потому что у меня не было прототипа внутри myFunctions.c для showDate().
Что я хочу знать, какое из следующих действий мне нужно сделать?
включают "myFunctions.h" внутри myFunctions.c
- Объявите прототип в обоих myFunctions.h и myFunctions.c
- Объявите прототип всего myFunctions.c только
Все вышеперечисленное, похоже, исправляет ошибку компилятора и позволяет мне вызвать функцию bot из main.c и внутри myFunctions.c, но я не могу найти окончательный источник, который является правильной процедурой.
Возможно, рассмотрите видимость, прежде чем принимать решение между # 1 и # 3. Используйте # 1, если вам нужно вызвать эту функцию из какого-либо другого .c-файла. Используйте # 3, если функция не нужна нигде вне локального файла. Таким образом, вы уменьшаете беспорядок в ваших заголовочных файлах и действительно можете использовать их в качестве определения интерфейса. –
Справа. Функции, вызываемые из других источников, должны быть в файле .h. Внутренние функции должны быть объявлены статическими и прототипированными в .c файле. Это дает C некоторую столь необходимую модульность. –