[英]error C2143: syntax error: missing ';' before '{' in C
目前,我遇到一个非常奇怪的C错误。 当我尝试编译以下.c代码时:
#include <stdio.h>
int main() {
int five() {
return 5;
}
for (int i = 0; i < 10; i++) {
printf("%d ", five());
}
return 0;
}
,我得到以下错误:
error C2143: syntax error: missing ';' before '{' in C
我认为编译器出了点问题,但是怎么办?
我正在Windows 10及其开发人员命令行上使用Visual Studio Community 2017。 所以我的编译器是cl。
很高兴听到某人是否有线索。
这是您要达到的目标吗?
#include <stdio.h>
int five() {
return 5;
}
int main() {
for (int i = 0; i < 10; i++) {
printf("%d ", five());
}
return 0;
}
编译器通过“令牌”工作“令牌”。 在int main() {
它会看到标记int
, five
, (
和)
,它们是函数5的声明的一部分(返回int
并接受未指定但固定的数量的参数)。 这个声明用令牌完成;
但是下一个可用的标记是{
,这会使整个语法无效。
TLDR:嵌套函数在C中是非法的。
格式正确,带有一些开头和结尾的注释,以使内容清晰。
#include <stdio.h>
int five() /* Start of Function FIVE */
{
return 5;
} /* End of Function FIVE */
int main() /* Start of MAIN */
{
for (int i = 0; i < 10; i++)
{
printf("%d ", five());
}
return 0;
} /* End of MAIN */
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.