ошибки при добавление структуры с __attribute__ в .h файл
Добавил в заголовочный файл следующие определение структуры:
typedef struct {
float data[32];
int size;
}Mcalc;
Mcalc MCALC __attribute__((section(".DIO")));
компилятор выдает следующие ошибки:
multiple definition of `MCALC'
first defined here
multiple definition of `MCALC'
first defined here
Как можно решить данную проблему ?
Ответы (1 шт):
Автор решения: AlexGlebe
→ Ссылка
В заголовочном файле делаете только предварительное объявление переменной с помощью extern. Без никаких атрибутов.
att.h :
typedef struct {
float data[32];
int size;
}Mcalc;
extern Mcalc MCALC ;
А в одном из файлов реализацию.
att.c :
# include "att.h"
Mcalc MCALC __attribute__((section(".DIO")));
main.c :
# include "att.h"
int main(){
MCALC = ( Mcalc ) { .size = 0 , .data = { 0 } };
}