错误C2143:语法错误:缺少’;’ 在’类型’之前
我是编程C的新手..请告诉我这个程序有什么问题,以及为什么我收到此错误: 错误C2143:语法错误:缺少’;’ 在’类型’之前 ….
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;
的声明中的错误行int i=1;
?? 尝试将其移到func();
的调用之上func();
另外,我会使用extern void func(void);
Visual Studio仅支持C89。 这意味着所有变量必须在函数顶部的任何其他变量之前声明。
编辑:@KeithThompson敦促我添加一个技术上更准确的描述(并且真正恰到好处地纠正了我的一方面)。 所有声明(变量或其他任何声明)必须位于块中的所有语句之前。
这个:
int i=1; for(;i<=5; i++) {
应该用惯用语写成:
for(int i=1; i<=5; i++) {
因为没有必要在函数范围内声明for
循环变量。