为什么必须在主函数开头定义变量?

我要先printf一大堆文字(用不到变量),然后int p,就会出错说变量p没定义。
但是把int p放到主函数里的第一行就没事了。
既然我前面不用p,为什么还要早早地定义它?

这个是编译器的原因,不是c语言的规定。

你用的是 visual stduio 吧。用gcc dev c++ 和以前的VC++都不会要求这样,而vs有这个要求。追问

我用VC++6.0

追答

你这个VC6比较特殊啊 我的版本就没有这个规定
这主要和编译器有关的。所以没有什么好解释的。不过养成这样一个好习惯 也不错。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-12
C的规则是所有变量在函数开始(局部变量(静态变量除外))或者程序开始(全局变量)都要声明,C++中就没有这样的要求了,不过使用之前都要声明。追问

我用的是VC++6.0,但建的文件是.c的,是有这样的区别吗?

追答

有区别,后缀名为.c就是C的源文件,C++的语法是不能用的

本回答被提问者采纳
第2个回答  2013-04-12
那你就用C++吧,C不行。这完全是规定,你非要问理由谁也答不上来,因为压根儿没理由!追问

我用的是VC++6.0,但建的文件是.c的,是有这样的区别吗?

追答

VC++6.0不存在你说的问题,你的集成环境开头是否有一行#include "stdafx.h"?