在阅读C traps and Pitfalls时,我遇到了以下代码段:
struct logrec{
int date;
int time;
int code;
} // semicolon is missing
main()
{
..
..
}
请注意,在}之后缺少分号,这会使main()
返回结构。
而不是询问main()
返回struct的问题[因为main()
返回int以外的其他行为是未定义的行为],所以我想问任何其他fun()
的问题。例如
struct Abc{int a;} fun(){
Abc a1; //Error : Unknown type name 'Abc'
}
int main(){
.....
}
正如评论声明Abc a
中提到的那样,错误未知类型Abc 。
所以我对此有两个问题:
fun()
内声明任何类型Abc的变量,那么如何
我可以退回struct Abc吗?答案 0 :(得分:3)
这只是一个简单的语法错误。 Abc
与struct Abc
的类型不同。
变化:
struct Abc{int a;} fun(){
Abc a1; //Error : Unknown type name 'Abc'
}
为:
struct Abc{int a;} fun(){
struct Abc a1;
} //^^^^^^