现在各种框架能自动生成很多代码,不知道做客户端软件的程序员们,还有多少人需要自己写main函数。
main函数的一种常见错误写法:
void main () or void main (void)
后一个还好些,c中函数如果没有参数的话,最好在声明函数原型的时候填进去一个void,明确表示没有参数。好习惯么。错误在于main函数本身是有返回值的,是int类型的值。原型如下:
int main (void)
当返回值是0的时候表示正常退出;否则返回1,表示出错。带参数的main函数是这样子的:
int main (int argc, char * argv[])
argc表示参数个数;char * argv[]表示具体参数——这个我是这么理解的,char * 表示是一个指向字符串的指针,后面加上 [] 表示是字符串指针数组,就是说argv是一个指针数组,每个指针指向一个字符串。默认的时候,argc的值是1,argv[0]存放的是程序名字。通常,参数是被这样解析的:
int main (int argc, char * argv[]) { ...... for (int i=1; i<argc; i+=2) // 'i=1'跳过第一个参数,即程序名字 { switch (argv[i][1]) // 判断参数标识,如:-f, -i, -s... { case 'f': // extract the real parameter from argv[i+1]... break; ...... } } ...... } |