У меня есть следующий исходный код в C89:
рутинная_a. c:
struct DataRoutineA routineA(int a, int b) {
struct DataRoutineA data = (struct DataRoutineA *) malloc(sizeof(DataRoutineA));
data.a = a;
data.b = b;
return data;
}
и следующий файл заголовка:
рутинная_a.h :
struct DataRoutineA {
int a;
int b;
};
extern struct DataRoutineA routineA(int a, int b);
Цель routine_a.h
состоит в том, чтобы его можно было использовать в качестве заголовка для других файлов исходного кода. Следовательно, структура определена, а также определение внешней функции. В этом случае я понимаю, что заголовок определен правильно.
Однако что произойдет с предложением extern, если этот заголовок также используется для routine_a.c
? Какой был способ исправить это в ANSI C / C89? Нужны ли мне два разных заголовка для этого случая?