C - Xcode中的重定义错误

时间:2015-04-29 06:34:18

标签: c xcode header-files redefinition

我的c头文件在Xcode中有以下错误消息

O(n log n)

但是当我在命令行中使用Redefinition of 'entry' 编译它时,它完美地工作。你们中的任何人都可以解释原因吗?

这是gcc

snapshot.h

这是snapshot.c:

#ifndef SNAPSHOT_H
#define SNAPSHOT_H

#define MAX_KEY_LENGTH 16
#define MAX_LINE_LENGTH 1024

typedef struct value value;
typedef struct entry entry;
typedef struct snapshot snapshot;

struct value {
    value* prev;
    value* next;
    int value;
};

// the line below is where the redefinition error appears
struct entry {
    entry* prev;
    entry* next;
    value* values;
    char key[MAX_KEY_LENGTH];
};

struct snapshot {
    snapshot* prev;
    snapshot* next;
    entry* entries;
    int id;
};

#endif

1 个答案:

答案 0 :(得分:6)

entry最初被保留为关键字,后来被宣布为过时的。所以较旧的编译器不允许它(参见this question)。更改结构的名称,一切都应该没问题。