Что является более эффективным с кодом C? - PullRequest
2 голосов
/ 23 сентября 2010

Что более эффективно с кодом C, с которым я работаю, перенося мой код в существующую программу C или включив h-файл #include, чтобы он вызывал отдельный файл .c?

Когда это скомпилировано в .exe, как это работает с включением его в исходный код по сравнению с файлом h и отдельным файлом .c?

Я не уверен, сколько строк кода есть в программе, в которую я бы включил этот другой код, но мой код содержит всего около тысячи строк кода.

Спасибо, DemiSheep

Ответы [ 2 ]

9 голосов
/ 23 сентября 2010

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

Что может изменить .c файл , так это скорость компиляции , которая может быть быстрее для одного файла, чем для группы файлов, которые должны быть связаны друг с другом. IIRC, одна из причин, почему предпочтительный метод распространения исходного кода SQLite - это один огромный «объединенный файл C» - это скорость компиляции.


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

0 голосов
/ 24 сентября 2010

Я знаю, что у этого уже есть хороший ответ, который говорит, что нет разницы, но хотел добавить это

Директива #include говорит препроцессору обрабатывать содержимое указанного файла, как если бы это содержимое появилосьв исходной программе в том месте, где появляется директива.

Я бы написал это сам, но msdn docs говорят это довольно хорошо.

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