这样的代码:
for(int i=0;i<10;i++)
{
//do something;
}
在VC6.0里面编译是通不过的,for(int i=0;i<10;i++)这是C++的语法,在C语言编译环境里面,需要写成:
int function()
{
int i=0;
//声明要放在函数的开始部位!
//在声明变量(可含有初始化)之前,不能写除了声明其他变量或者声明函数以外的任何其他的逻辑
//do something;
for(i=0;i<10;i++)
{
//do something;
}
}
举一个例子:
#include<stdio.h>
int main(int argc, char*argv[])
{
void showMsg();//声明子函数
int i=0;//声明用于循环的控制变量
printf("Hellow World!\n");
//关于main函数与系统交互的默认参数显示如下
printf("main 函数传入的第一个参数是后续字符串参数的个数,用空格分开,这个参数是:\n%d\n", argc);
for(i=0;i<argc;i++)
{
printf("第 %d 个参数是: %s\n", i, argv[i]);
}
showMsg();//调用子函数
return 0;
}
void showMsg()
{
int i=0;
printf("这是一个子函数!\n");
while(i<3){
i++;
printf("这是子函数里面的一个循环: %d\n",i);
}
}
例子中主函数main()里面,声明子函数和声明变量的两个语句如下:
void showMsg();//声明子函数
int i=0;//声明用于循环的控制变量
这两句的位置可以互换。但是要注意,对于子函数的声明和变量的声明必须放在主调函数刚开始的位置,这是VC6.0的一个特点,进行上机实验或考试时候一定要注意!!
总结一下:
1 不要在循环控制语句的条件()里面定义变量。
2 任何函数中要使用的变量需要在函数刚开始的时候声明
3 调用其他函数时,如果子函数的定义在主调函数的后面,一定要在主调函数刚开始的时候进行子函数的声明
4 在编程的时候不宜编写过长的函数,尽量把逻辑功能互相之间分离开,然后写到单独的函数里面去,否则根据以上总结出来的经验,程序很可能变得比较难读,需要不断翻阅函数刚开始进行声明的地方。