ошибка двух или более типов данных в спецификаторах объявления в заголовочном файле

Я разработчик ОС, и я хотел бы скомпилировать следующее (оно находится в файле cpu.h) с помощью моего кросс-компилятора gcc (ver= 4.5.4)

#ifndef X86_64_CPU_H
#define X86_64_CPU_H
#include<stdint.h>
typedef struct
{
    // manually secured registers
    uint64_t   rax;
    uint64_t   rbx;
    uint64_t   rcx;
    uint64_t   rdx;
    uint64_t   rsi;
    uint64_t   rdi;
    uint64_t   rbp;
    uint64_t   r8;
    uint64_t   r9;
    uint64_t   r10;
    uint64_t   r11;
    uint64_t   r12;
    uint64_t   r13;
    uint64_t   r14;
    uint64_t   r15;


    uint64_t   intr;
    uint64_t   error;

    // secured by cpu
    uint64_t   rip;
    uint64_t   cs;
    uint64_t   rflags;
    uint64_t   rsp;
    uint64_t   ss;
} cpu_state;
...
#endif

но, к сожалению, он говорит:

HAL/x86_64/cpu.h:4:1: ошибка: два или более типов данных в спецификаторах объявлений

Что я делаю не так?


person Martin Erhardt    schedule 16.07.2013    source источник
comment
В вашем коде нет ничего плохого   -  person David Ranieri    schedule 16.07.2013
comment
Вроде все правильно.   -  person pradipta    schedule 16.07.2013


Ответы (1)


Обычно эта ошибка возникает, когда отсутствует точка с запятой после объявления структуры. Я не вижу его здесь, однако возможно, что в следующей структуре отсутствует точка с запятой.

typdef struct{

...


} next_struct <- missing ;
person Scotty Bauer    schedule 16.07.2013
comment
Я забыл добавить точку с запятой после структуры в другом файле - person Martin Erhardt; 16.07.2013