我对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();
}
发布于 2013-03-29 12:18:02
我至少有8年没有使用visual了,但是Visual有限的C编译器支持似乎不允许混合代码和变量。错误行是否在int i=1;
的声明中??尝试将其移动到对func();
的调用之上
此外,我还会使用extern void func(void);
发布于 2013-03-29 12:17:49
Visual Studio仅支持C89。这意味着所有的变量都必须在函数顶部的任何其他变量之前声明。
编辑:@KeithThompson敦促我添加一个技术上更准确的描述(实际上只是纠正我的描述在某一方面不正确)。所有声明(变量或其他任何内容)必须位于块中的所有语句之前。
发布于 2013-03-29 12:17:45
这一点:
int i=1;
for(;i<=5; i++) {
应该按照习惯用法写成:
for(int i=1; i<=5; i++) {
因为在函数作用域中没有声明for
循环变量的点。
https://stackoverflow.com/questions/15697190
复制相似问题