Проект в C. Не уверен, как я это сделал мой проект - PullRequest
0 голосов
/ 09 мая 2011

Привет, я только что закончил свой проект для школы. Я просто не уверен, как я это сделал.

У меня есть файлы:

headers.h - я храню здесь все заголовки функций (объявления) и открытых переменных.

save_sunctions.c - определение некоторых функций

move_sunctions.c - определение некоторых функций

loop_sunctions.c - определение некоторых функций

goone_sunctions.c - определение некоторых функций

main.c - в этом файле я использую все эти функции.

Это хорошо? Или я должен использовать "extern" или что-то еще?

Ответы [ 2 ]

5 голосов
/ 09 мая 2011

Я думаю, что более обычным является соотношение один к одному между заголовочными файлами и исходными файлами. Таким образом, в другом проекте вы можете включить только часть кода, не включая объявления заголовков для множества функций, которые не имеют определений в проекте.

Итак, для каждого файла .c имеется соответствующий файл .h с тем же именем, который объявляет каждую функцию в файле .c.

Вам нужно будет добавить так называемый guard в каждый заголовочный файл, чтобы убедиться, что он включен только один раз. Охранники выглядят так:

#ifndef GO_FUNCTIONS_GUARD
#define GO_FUNCTIONS_GUARD
.../* declarations go here
#endif

Что касается extern, то в том, что вы описываете, нет необходимости. Просто придерживайтесь заголовочных файлов.

1 голос
/ 09 мая 2011

Как правило, вы должны пытаться сохранить весь подобный код вместе.На мой взгляд, каждый файл .c должен иметь свой собственный файл .h для ссылки.Я думаю, что вы, вероятно, слишком разделили файлы, но это подлежит интерпретации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...