我是编程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();
}
答案 0 :(得分:29)
Visual Studio仅支持C89。这意味着所有变量必须在函数顶部的任何其他变量之前声明。
编辑:@KeithThompson敦促我添加一个技术上更准确的描述(并且真正正确地指出我的方法并非如此)。所有声明(变量或其他任何声明)必须在块中的所有语句之前。答案 1 :(得分:28)
我至少8年没有使用visual,但似乎Visual的有限C编译器支持不允许混合代码和变量。是int i=1;
声明的错误行吗?尝试将其移至func();
另外,我会使用extern void func(void);
答案 2 :(得分:1)
这样:
int i=1;
for(;i<=5; i++) {
应该用惯用语写成:
for(int i=1; i<=5; i++) {
因为没有必要在函数范围内声明for
循环变量。