【问题标题】:two or more data types in declaration specifiers error in header file头文件中的声明说明符中有两个或多个数据类型错误
【发布时间】:2013-07-16 16:56:38
【问题描述】:

我是一名操作系统开发人员,我想用我的 gcc 交叉编译器(版本 = 4.5.4)编译以下内容(在文件 cpu.h 中)

#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:错误:声明说明符中有两种或多种数据类型

我做错了什么?

【问题讨论】:

  • 你的代码没有问题
  • 一切似乎都正确。

标签: c gcc gcc4


【解决方案1】:

通常,该错误是在结构声明后缺少分号时出现的。我在这里没有看到,但是下一个结构可能缺少分号。

typdef struct{

...


} next_struct <- missing ;

【讨论】:

  • 我忘记在另一个文件中的结构后添加分号
猜你喜欢
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多