在 C 中声明全局联合
我不确定如何在 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’.
如何以可以将其用作函数的返回类型的方式声明联合?
先感谢您! 安德鲁
I am unsure how to declare a global union in C. Below is my code (all of which is outside of 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;
}
With this, I receive the error:
test.c:35: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘find’.
How can I declare the union in a way that I can use it as a return type for a function?
Thank you in advance!
Andrew
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你打错字了。
有一个
DictVal
typedef,但您尝试在定义上使用DictValue
。You've typo'ed.
There's a
DictVal
typedef but you tried to useDictValue
on the definition.拼写错误。
您声明:
但正在尝试使用
Replace DictValue with DictVal。
还要让 main 返回一些东西。通常应该是 0。
上帝保佑!
Spelling error.
You declared:
but are trying to use
Replace DictValue with DictVal.
Also make main return something. Normally it should be 0.
God bless!