Рассмотрим следующую структуру typedef в C:
21:typedef struct source{
22: double ds; //ray step
23: double rx,zx; //source coords
24: double rbox1, rbox2; //the box that limits the range of the rays
25: double freqx; //source frequency
26: int64_t nThetas; //number of launching angles
27: double theta1, thetaN; //first and last launching angle
28:}source_t;
Я получаю ошибку:
globals.h: 21: ошибка: переопределение 'struct source'
globals.h: 28: ошибка: конфликт типов для 'source_t'
globals.h: 28: примечание: предыдущее объявление 'source_t' было здесь
Я пытался использовать другие форматы для этого определения:
struct source{
...
};
typedef struct source source_t;
и
typedef struct{
...
}source_t;
Которые оба возвращают одну и ту же ошибку.
Почему это происходит? это выглядит совершенно правильно для меня.