gpt4 book ai didi

c - “redefinition of ' 富 ' as different kind of symbol”

转载 作者:行者123 更新时间:2023-12-01 13:55:07 29 4
gpt4 key购买 nike

我正在尝试重构和引入一些旧代码,我遇到了这样的事情:

          struct foo;
typedef struct foo * foo;

尝试编译它时,出现以下错误:

Source/Types/Types.h:27:18: error: redefinition of 'foo' as different kind of symbol
typedef struct foo * foo;
^

有人知道是什么原因造成的吗?我已经很长时间没有接触代码了,但我当然不记得有任何与此相关的错误。它是代码库中最核心的一些代码,一切都取决于它;如果它确实是一个错误,我不明白我怎么可能错过这样一个明显的错误。由于原来的 foo 是一个“struct 标签”(只是在 struct 关键字之后的一个正常引用),它怎么会和我新的 foo 冲突typedef 的类型?

编辑 1:这是完整的实际文件,也许我遗漏了什么,但它看起来非常简单。它会转储 大量 上述相同的错误,每种错误一个:

# if !defined(TYPE_DECLARATIONS)
# define TYPE_DECLARATIONS

# include "Core.h"
# warning "in Core.h"

static int class = 0; // to prove I’m not compiling as C++

struct e(fork);
typedef struct e(fork)* e(fork);

struct e(execution);
typedef struct e(execution)* e(execution);


struct e(thing);
typedef struct e(thing) e(thing);

struct e(typeRepresentation);
typedef struct e(typeRepresentation)* e(typeRepresentation);


struct e(typeRepresentation) {
void * family;
char name[64]; };

struct e(thing) {
void * const pointer;
e(typeRepresentation) const isa; };


# endif //!defined(TYPE_DECLARATIONS)

(此外,请忽略 e() 宏;在本例中它是一个 noop。)

最佳答案

啊,我解决了我自己的问题。我设法搞砸了我的 e() 宏,以至于它实际上是在执行 noop,删除了有问题的代码。 :O

我是个笨蛋。抱歉浪费了大家的时间。

关于c - “redefinition of ' 富 ' as different kind of symbol”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191527/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com