Для каждого исходного файла, будь то файл .c или .h, рекомендуется включать только заголовки, которые ему нужны.Это не только сокращает время компиляции, но и служит для документирования функциональности файла.
Вот несколько примеров:
f1.c:
#include <stdio.h>
void print_int(int i)
{
printf("i=%d\n", i);
}
f2.c:
#include <stdlib.h>
void *safe_malloc(size_t size)
{
void *p = malloc(size);
if (!p) exit(1);
return p;
}
f3.c:
int sum(int a, int b)
{
return a+b;
}
Файл f1.c включает только stdio.h, потому что он выполняет ввод-вывод, но не выполняет никаких других функций.Точно так же f2.c включает только stdlib.h, потому что он использует определенные там функции, но не использует никаких функций ввода-вывода, а f3.c не включает никаких заголовков, потому что они им не нужны.
Если вы считаете, что включили ненужные файлы, закомментируйте их и скомпилируйте все предупреждения, чтобы узнать, какие из них объявляют нужные вам функции или переменные.