2013-04-27 2 views
3

Предположим, у меня есть программа на C, которая использует только функции от stdio.h.Включает ли неиспользуемые заголовки какое-либо влияние на код?

Теперь, если я включаю нежелательные заголовки, такие как stdlib.h, errno.h и т. Д. И скомпилировать программу, тогда эти нежелательные заголовки окажут влияние на сегмент кода?

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

+0

Заголовки не загружают код в программу, они в основном просто объявляют функции и структуры. Код загружается путем ссылки на конкретные библиотеки. – Barmar

+1

Может потребоваться больше времени для компиляции; но на современных машинах разница, вероятно, слишком мала, чтобы заметить. –

ответ

2

Нет, ваша программа только тянет код, на который ссылается. Включение заголовка, который вы не используете, будет оптимизирован из окончательного кода.

Я должен уточнить: «Включение заголовка, который вы не используете, не приведет к« лишним отходам »в конечном продукте». Никакой код не оптимизирован, потому что никакой код не генерируется (поскольку он не ссылается).

1

Файлы заголовков используются для компилятора, если есть «неиспользуемые файлы head», время компиляции будет низким, когда проект будет небольшим.

Но для большого проекта он должен быть хорошо обработан. И вы знаете: «Простая красота!»

И это не связано с окончательным двоичным продуктом.