关于main函数
main函数在一般的程序中是必须的但是也有例外:比如windows中编写的动态链接库(dll)模块。这是其他windows程序可以是用的代码,不属于独立的程序,所以可以不要main。还有专业环境中的程序,如机器人的控制芯片,也可以没有main函数。
那么main函数的参数又是个什么问题呢?不是说不准别人调用main函数吗。原来这个参数只能从本程序外的传参来。
mian函数的带参形式为
int main(int argc,char*argv[]){}
从函数参数的形式上看,包含一个整型和一个指针数组。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件(对windows操作系统而言),这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由系统在启动运行时传递参数了。在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:命令 参数1 参数2.... 参数n ¿
if(strcmp(argv[1]=="password"){}
这样只有命令行输入的是password时,程序才会执行。
在 C89 标准中,main()是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language 用的就是 main()。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:
int main( void ){} int main( int argc, char *argv[] ) {}
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我们最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。
也就是说在最新的C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常)
posted on 2013-03-13 21:53 1204771796 阅读(190) 评论(0) 编辑 收藏 举报