История изменений
Исправление bormant, (текущая версия) :
просто объявить копию этого типа под другим именем ttype2
Зачем под другим именем?
Единица трансляции другая. Или думаете включение заголовков в разные единицы трансляции работает как-то иначе?
foo.h
typedef int some_t;
foo.c
#include "foo.h"
some_t var;
bar.c
#include "foo.h"
extern some_t var;
После препроцессора компилятор видит:
foo.c
typedef int some_t;
some_t var;
typedef int some_t;
extern some_t var;
Исправление bormant, :
просто объявить копию этого типа под другим именем ttype2
Зачем под другим именем?
Единица трансляции другая. Или думаете включение заголовков в разные единицы трансляции работает как-то иначе?
foo.h
typedef int some_t;
foo.c
#include "foo.h"
some_t var;
bar.c
#include "foo.h"
extern some_t var;
После препроцессора компилятор видит: foo.c
typedef int some_t;
some_t var;
typedef int some_t;
extern some_t var;
Исходная версия bormant, :
просто объявить копию этого типа под другим именем ttype2
Зачем под другим именем?
Единица трансляции другая. Или думаете включение заголовков в разные единицы трансляции работает как-то иначе?
foo.h
typedef int some_t;
foo.c
#include "foo.h"
some_t var;
bar.c
#include "foo.h"
extern some_t var;