【发布时间】:2013-03-29 04:10:17
【问题描述】:
我是 C 编程新手。请告诉我这个程序有什么问题,以及为什么我会收到此错误:error C2143: syntax error : missing ';'在“类型”之前....
extern void func();
int main(int argc, char ** argv){
func();
int i=1;
for(;i<=5; i++) {
register int number = 7;
printf("number is %d\n", number++);
}
getch();
}
【问题讨论】:
-
我至少有8年没用过visual了,但是Visual有限的C编译器支持允许混合代码和变量吗?是 int i=1 的声明中的错误行; ??尝试将它移到对 func() 的调用之上;另外,我会使用 extern void func(void);
-
您没有显示完整的代码。有问题的片段很好,不应该产生任何语法错误。
-
@RandyHoward:我认为这就是问题所在:Visual C 不允许混合声明和语句,这是 1999 年 ISO 标准添加到 C 中的一项功能,Visual Studio 不支持该功能。您应该将其发布为答案。
-
@RandyHoward:不从
main()返回值并不违法。在 C89/C90 中,它向环境返回未定义的状态。在 C99 中,它相当于return 0;。 -
在
for循环中对i进行初始分配会更清楚:int i; for (i = 1; i <= 5; i ++) ...。 (如果 MS 支持 C99,你也可以在那里声明它。)
标签: c visual-studio-2010