我不确定如何在C中声明全局联合。下面是我的代码(所有代码都在main之外)。
typedef union{
int iVal;
char* cVal;
} DictVal;
struct DictEntry{
struct DictEntry* next;
char* key;
DictVal val;
int cTag;
};
DictVal find(char* key);
int main()
{
struct DictEntry dictionary[101];
//printf("Hello");
}
DictValue find(char* key)
{
DictVal a;
a.iVal = 3;
return a;
}
有了这个,我收到错误:
test.c:35: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘find’.
如何以一种可以将它用作函数的返回类型的方式声明联合?
提前谢谢! 安德鲁
答案 0 :(得分:5)
你错了。
有DictVal
typedef,但您尝试在定义上使用DictValue
。
答案 1 :(得分:2)
拼写错误。
你宣布:
typedef union{
int iVal;
char* cVal;
} DictVal;
但正在尝试使用
DictValue find(char* key)
{
DictVal a;
用DictVal替换DictValue。
还要主要回报一些东西。通常它应该是0.
上帝保佑!