我遇到了一些 C 代码似乎很常见的问题:将一个结构分配给另一个结构,编译器不知道该结构的类型是什么。我已经尝试在各处放置各种类型定义和结构,但仍然无法编译该血腥的东西,现在可以再看到树木的树林,请帮助。
typedef struct Option Option; //fwd decl
typedef struct OptionsList OptionsList;
typedef struct OptionsList {
struct Option* Option;
struct OptionsList* Next; // presumably this is anonymous
} OptionsList;
typedef struct Option {
CHARPTR Name;
CHARPTR Value;
struct OptionList* children;
} Option;
struct OptionsList* OptionsList_Create(Option* Option);
struct Option* Options_Create(CHARPTR Name, CHARPTR Value) {
struct Option* option = (struct Option*) malloc(sizeof(struct Option));
**option->children = OptionsList_Create(NULL);** // <- ARRRRRGGGGGHHHHHH!!!!!!!
return option;
}
警告来自以下行:
option->children = OptionsList_Create(NULL);
警告是
警告 C4133:“=”:不兼容的类型 - 从“OptionsList *”到“OptionList *”
Vs2012 更新 2012 - 项目正在编译为 C (/TC)
非常感谢。