LINUX.ORG.RU

История изменений

Исправление 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;
bar.c
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;
bar.c
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;