• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dlfen
博客园    首页    新随笔    联系   管理    订阅  订阅

main()主函数

main()主函数 每一C 程序都必须有一main()函数,可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面,而另一些程序员把它放在最后面,无论放在哪个地方,以下几点说明都是适合的。 1. main() 参数 在Turbo C2.0启动过程中,传递main()函数三个参数:argc,argv和env。 * argc: 整数,为传给main()的命令行参数个数。

main()主函数
    每一C 程序都必须有一main
()函数,可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面,而另一些程序员把它放在最后面,无论放在哪个地方,以下几点说明都是适合的。
    
1. main() 参数
    在Turbo C2
.0启动过程中,传递main()函数三个参数:argc,argv和env。
     
* argc:  整数,为传给main()的命令行参数个数。
     
* argv:  字符串数组。
            在DOS 
3.X 版本中,argv[0] 为程序运行的全路径名;
            对DOS 
3.0 以下的版本,argv[0]为空串("") 。
            argv
[1] 为在DOS 命令行中执行程序名后的第一个字符串;
            argv
[2] 为执行程序名后的第二个字符串;...
            
argv[argc]为NULL。     
     
* env:  安符串数组。
            env
[] 的每一个元素都包含ENVVAR=value形式的字符串。
            其中ENVVAR为环境变量如PATH或
87。
            value 为ENVVAR的对应值如C
:\DOS,C:\TURBOC(对于PATH) 或YES(对于87)。
    TurboC2
.0启动时总是把这三个参数传递给main()函数,可以在用户程序中说明(或不说明)它们,如果说明了部分(或全部)参数,它们就成为main()子程序的局部变量。    请注意:一旦想说明这些参数,则必须按argc,argv, env的顺序,如以下的例子:    
void main()
    
main(int argc)
    
main(int argc, char *argv[])
    
main(int argc, char *argv[], char *env[])
    
其中第二种情况是合法的,但不常见,因为在程序中很少有只用argc,而不用argv[]的情况。
    以下提供一样例程序EXAMPLE
.EXE, 演示如何在main()函数中使用三个参数:

 


/*program name EXAMPLE.EXE*/
#include<stdio.h>
#include<stdlib.h>
void 
main(int argc,char *argv[],char *env[])
{
    
int i;
    
printf("These are the %d command-line arguments passed to  \ main:\n\n", argc);
    
for(i=0; i<=argc; i++)
        
printf("argv[%d]:%s\n", i, argv[i]);
    
printf("\nThe environment string(s)on this system are: \ \n\n");
    
for(i=0; env[i]!=NULL; i++)
        
printf(" env[%d]:%s\n", i, env[i]);
}

 


    
如果在DOS 提示符下,按以下方式运行EXAMPLE.EXE:  C:\example first_argument "argument with blanks"  3  4 "last but one" stop!    
    
注意:可以用双引号括起内含空格的参数,如本例中的:"argument with blanks"和"Last but one"。    
    结果是这样的
: 
    
The value of argc is 7 
    
These are the 7 command-linearguments passed to main: 
    
argv[0]:C:\TURBO\EXAMPLE.EXE 
    argv
[1]:first_argument 
    argv
[2]:argument with blanks 
    argv
[3]:3 
    
argv[4]:4 
    
argv[5]:last but one 
    argv
[6]:stop! 
    
argv[7]:(NULL) 
    
The environment string(s) on this system are: 
    
env[0]: COMSPEC=C:\COMMAND.COM 
    env
[1]: PROMPT=$P$G /*视具体设置而定*/ 
    
env[2]: PATH=C:\DOS;C:\TC /*视具体设置而定*/
    
应该提醒的是:传送main() 函数的命令行参数的最大长度为128个字符 (包括参数间的空格),这是由DOS 限制的。

posted @ 2008-07-18 20:12  七夜鱼  阅读(322)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3