при включении атрибута получаю ошибку 'error: section attribute not allowed for 'Mcalc''

Почему выдает ошибку при подключении атрибута? Вот такой код:

__attribute__((section(".DIO")))
typedef struct {
float data[32];
int   size;
}Mcalc;
Mcalc MCALC;

Получаю ошибку error: section attribute not allowed for 'Mcalc'


Ответы (1 шт):

Автор решения: AlexGlebe

Этот атрибут можно ставить для переменной. В определении типа нельзя.

typedef struct {
  float data[32];
  int   size;
}Mcalc;

Mcalc MCALC  __attribute__((section(".DIO"))) ;

asm :

    .file   "secti.c"
    .text
    .globl  MCALC
    .section    .DIO,"aw",@progbits
    .align 32
    .type   MCALC, @object
    .size   MCALC, 132
MCALC:
    .zero   132
    .ident  "GCC: (SUSE Linux) 7.5.0"
    .section    .note.GNU-stack,"",@progbits
→ Ссылка