2010-12-08 2 views
2

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

После моей последней задачи разработки я вижу, что есть файл заголовка, который включен где-то, что теперь не нужно. Есть ли хороший способ найти другие подобные файлы заголовков (и таким образом уменьшить зависимости), кроме попытки удалить файл заголовка и увидеть, что что-то сломается?

Я использую GCC 4.3.2 для Linux.

+0

«компиляция завершается ошибкой, если я объявляю переменную и не использую ее». Какой вариант компилятора вы установили для этого? Это звучит полезно, но так строго ;-) – Mawg 2014-11-26 12:43:02

ответ

3

Нет, нет способа заставить gcc сбой, если заголовок не требуется. Включенные заголовки могут содержать почти что угодно, поэтому предполагается, что тот, кто их включил, имел все основания для этого. Представьте себе следующую несколько патологический случай:

int some_function(int x) { 
#include "function_body.h" 
return x; 
} 

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

+0

У вас, сэр, есть извращенный и искривленный ум. Мне это нравится :-) – Mawg 2014-11-26 12:43:51

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