Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1535055
  • 博文数量: 113
  • 博客积分: 3526
  • 博客等级: 中校
  • 技术积分: 1815
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-08 09:46
个人简介

记录总结自己的工作

文章分类

全部博文(113)

文章存档

2015年(19)

2014年(10)

2013年(6)

2012年(16)

2011年(24)

2010年(21)

2009年(17)

分类: C/C++

2009-09-08 09:50:45

每一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的顺序,如以下的例子:  
   
  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    
  #include    
  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   butone" stop!    
   
  注意:可以用双引号括起内含空格的参数,如本例中的:"argument with   blanks"和"Last   but   one")。    
   
  应该提醒的是:传送main()   函数的命令行参数的最大长度为128个字符   (包括参数间的空格),这是由DOS   限制的。   每一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的顺序,如以下的例子:  
   
  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    
  #include    
  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   butone" stop!    
   
  注意:可以用双引号括起内含空格的参数,如本例中的:"argument with   blanks"和"Last   but   one")。    
   
  应该提醒的是:传送main()   函数的命令行参数的最大长度为128个字符   (包括参数间的空格),这是由DOS   限制的。  
阅读(2504) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Valgrind 使用简单说明

给主人留下些什么吧!~~