2014-09-14 3 views
0

Могу ли я включить файл first.c в другой second.c? (Я занимаюсь программированием сокетов для хранения сообщений, полученных сервером в связанном списке, поэтому в первой программе я пытаюсь сохранить связанный список и второй программный файл сокета программ для доступа к первым данным в секунду). Какие данные в первом файле можно получить во втором файле? Это хорошая практика?В том числе .c файл c program

Пожалуйста, объясните о пользовательских файлах .h и дайте мне пример для обоих.

+1

Вы не хотите включать файл C в другой файл C. Это очень плохая практика, и это действительно уродливо. – Maroun

+0

Да, можно добавить исходный файл C в другой исходный файл C (в отличие от файлов заголовков). Нет, вам очень редко нужно это делать. Для возможного исключения см. [Как проверить статическую функцию?] (Http://stackoverflow.com/questions/593414/how-to-test-a-static-function/593423#593423). –

+1

См. Также [Как связать несколько файлов реализации в C] (http://stackoverflow.com/questions/15622409/how-to-link-multiple-implementation-files-in-c/) и [Должен ли я использовать '# include' в заголовках] (http://stackoverflow.com/questions/1804486/should-i-use-include-in-headers/). –

ответ

0

Язык C - это разрешительный язык низкого уровня. Если программист хочет делать странные вещи, компилятор не сможет ничего остановить.

Ваш вопрос относится к этому вкусу: вы можете включить first.c в second.c, ни компилятор, ни компоновщик не протестуют. И в простых случаях (только 2 исходных файла) он будет работать одинаково. Вы также можете переименовать first.c в first.h и включить его. Все это просто конвенция ... и хорошие практики.

Потому что никогда не было делать это (за исключением особых случаев, предложенных Джонатаном Леффлером). Вы делаете отдельные правила компиляции разбитыми. Когда вы включают файл, это (с точки зрения компилятора) так же, как включение его в текстовый редактор. Вы знаете, что у вас всегда может быть один монолитный исходный файл, и вы должны знать (или вы скоро, если попытаетесь ...), что трудно проверить и подвергнуть ошибкам, потому что у вас есть только 2 области: глобальный и локальный, чтобы функционировать, и это может легко привести к плохо структурированному программированию.

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

Вывод - это не что иное, как вы получили в комментариях: да, вы можете, но вы, конечно же, не захотите этого делать.

Смежные вопросы