精华内容
下载资源
问答
  • 2021-05-18 13:48:17

    学过C语言的人都知道,main函数是程序启动的入口函数,每一个C语言程序里有一个main函数,在程序里它是唯独一个不能被其他函数调用的特殊函数。在众多的单片机C语言编译器里对main函数的写法都没有明确的要求,写法非常自由,可以写成带形参的函数,也可以写成无形参的函数,还可以写成返回值为任意数据类型的函数。通用的写法都是:void  main () {…}。而根据C99标准的要求,main函数是一个有返回值的函数,而且返回值类型必须为int。下面这段英文描述是从C99标准的PDF文档上复制下来的:

    5.1.2.2.1 Program startup

    The calLED at program startup is named main.The implementation declares no

    prototype for this .It shall be defined with a return type of int and with no

    parameters:

    int main(void) { /* ... */ }

    or with twoparameters (referred to here as argc and argv,though anynames may be

    used, as theyare LOCal to the in whICh theyare declared):

    int main(int argc, char *argv[]) { /* ... */ }

    or equivalent;9)or in some other implementation-defined manner.

    从C99标准的规定里可以看出,main函数的标准定义一般为这两种形式:

    第一种形式:

    int main (void)

    {

    ……

    return 0;

    }

    第二种形式:

    int main (int argc, char *argv[ ])

    {

    ……

    return 0;

    }

    第一种定义main函数不带形参,写起来比较简便。编写单片机C语言程序是不需要通过操纵系统向main函数传递参数的,所以笔者推荐采用第一种标准定义。

    标准的意义在于通用,对C语言来讲,符合标准意味着代码的可移植好。如果main函数不符合C99标准也没关系,只要编译器支持,对您的程序没有任何影响。到目前为止,没有哪个C编译器完全遵循C99标准,这都是为了让编译器兼容以前的代码,这也是为什么C标准十几年才修改一次的原因。当然,这并不代表新标准形同虚设,从发展趋势来看,C编译器都会逐渐向新标准靠拢。

    既然有了标准我们就应该遵循。我们可以用权威标准来衡量一个代码的优劣,去批判“另类”代码,写出标准的C代码,提高代码的可移植性。

    更多相关内容
  • C语言中,main()函数有三种形式。 1、无参数 #include <stdio> int main(void) { printf("Hello World!\n"); return 0; } 2、有两个参数 习惯上第一个参数是整型argc,保存了外部调用命令的参数个数,第二...
  • C语言main函数传参

    千次阅读 2021-01-25 16:07:49
    1. main 函数简介 main 函数作为应用程序的主要入口,在头文件 stdio.h 中。main 函数传递参数时需要完整定义为 int main(int argc, char **argv) 其中,参数 argc 表示参数的个数,参数 **argv 存储输入字符 的...

    1. main 函数简介

    main 函数作为应用程序的主要入口,在头文件 stdio.h 中。main 函数传递参数时需要完整定义为

    int main(int argc, char **argv)
    

    其中,参数 argc 表示参数的个数,参数 **argv 存储输入字符 的数组。argv[0] 表示程序名称,argv[1]~argv[n] 为输入的参数。
    不传参数的时候定义为

    int main(void)
    

    函数 main 的返回值为 int 型,用于判断程序执行成功或失败。

    2. main 函数例程

    编写简单的程序测试 main 函数

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv) {
    	int i = 0;
    	printf("The program name is %s\n", argv[0]);
    	printf("The command line has %d argument: \n", argvc - 1);
    	for (i = 1; i < argc; i++) {
    		printf("%s ", argv[i]);
    	}
    	return 0;
    }
    
    展开全文
  • C语言main函数参数详解

    千次阅读 多人点赞 2020-12-10 16:27:29
    main函数参数 一共有三个: 1.int argc 整型变量 2.char *argv[] 字符指针的数组,通俗一点就是字符串数组,每个元素都是字符串 3.char *envp[] 字符串数组 这三个东西再怎么神秘,也只是函数参数,只不过是main函数...

    main函数参数

    一共有三个:
    1.int argc 整型变量
    2.char *argv[] 字符指针的数组,通俗一点就是字符串数组,每个元素都是字符串
    3.char *envp[] 字符串数组
    这三个东西再怎么神秘,也只是函数参数,只不过是main函数的参数罢了!

     

    一、int argc参数

    用于存放命令行参数的个数

    二、char *argv[]参数

    每个元素都是一个字符串,表示命令行中的每一个参数。
     

    关于int argc和char *argv[]参数,我用以下代码说明:

    #include <stdio.h>
    int main(int argc,char *argv[],char *envp[])
    {	
    	int i = 0;
    	printf("参数个数为:%d\n",argc);
    	for (i = 0; i < argc; i++)
    	{
    		printf("%s\n", argv[i]);
    	}
    	system("pause");
    	return 0;
    } 
    

    编译运行的结果:
    参数只有一个,就是当前的exe文件
    在这里插入图片描述
    上文提及,既然这两个参数和命令行有关,那么我们用命令行运行一下:
    运行时顺便加上3个参数:zhangsan、lisi、wangwu,再加上原来的exe文件参数,这样总共就有4个参数。
    在这里插入图片描述

     

    三、char *envp[]参数

    这是一个存放环境变量的数组。
    运行以下代码:

    #include <stdio.h>
    int main(int argc, char *argv[], char *envp[])
    {
    	int i = 0;
    	while (envp[i] != NULL)
    	{
    		printf("%s\n", envp[i]);
    		i++;
    	}
    	system("pause");
    	return 0;
    }
    

    部分结果:
    在这里插入图片描述

    大家如果学习过别的语言,可能会涉及配置环境变量。如何找到环境变量的位置呢?
    对于win10系统:右击“此电脑”找到属性->再找到高级系统设置->环境变量
    在这里插入图片描述
    将运行结果和找到的环境变量对比一下,就会得到验证,这个参数确实是存放环境变量的数组。

    通常这三个参数在编程时不会使用,所以可以去掉。这样main函数就成了无参函数。

     

    展开全文
  • C语言main函数的参数

    万次阅读 多人点赞 2019-08-04 07:56:56
    在我们之前编写的C程序中,main函数是没有参数的,但是在实际开发中,main函数一般都需要参数,没有参数的情况极少。 main函数的参数是从命令提示符下执行程序的时候传入,例如ls 命令。 在以上示例中ls命令...

     

           在我们之前编写的C程序中,main函数是没有参数的,但是在实际开发中,main函数一般都需要参数,没有参数的情况极少。

           main函数的参数是从命令提示符下执行程序的时候传入,例如ls 命令。

          

           在以上示例中ls命令有两个参数,-l和book1*。

    main函数的参数

           main函数有三个参数,argc、argv和envp表示。

           int argc,用于存放命令行参数的个数。

           char *argv[],是个字符串的数组,每个元素都是一个字符指针,指向一个字符串,即命令行中的每一个参数。

           char *envp[],也是一个字符串的数组,这个数组的每一个元素是指向一个环境变量的字符指针。

           我们把envp放一下,先讲argc和argv。

           示例(book101.c)

          

           运行结果

          

           注意几个事项:

           1)argc的值是参数个数加1,因为程序名称是程序的第一个参数,即argv[0],在上面的示例中,argv[0]是./book101。

           2)main函数的参数,不管是书写的整数还是浮点数,全部被认为是字符串。

           3)参数的命名argc和argv是程序员的约定,你也可以用argd或args,但是不建议这么做。

    C程序的规范写法

           先假设程序执行都是有参数的,也就是说main函数都有参数,那么使用者怎么知道程序的参数个数和含义,记住它?看使用手册?不是,好的程序员会在程序中说明。我们先来看一个例子。

           示例(book103.c)

          

           运行程序的时候,如果参数个数相符,运行结果如下:

          

           如果参数个数不符,运行结果如下:

          

           从以上的例子可以看出,如果执行程序的时候参数与设计不符,显示程序的使用说明,说明文字应该包括程序的功能和全部参数的解释,还可以包括作者、联系方式等更详细的信息。

           程序的使用说明文字非常重要,有几个原因:1)程序的使用者不一定会写程序,也没必要去查使用手册等资料;2)程序的使用者就算会写程序,也没必要在使用的时候去看源代码,并且,你也不一定想让他看到源代码;3)如果程序的使用者是你自己,时间一长,你也会忘记程序的参数。

           当然,这些只是有经验程序员的约定,不是C语言的规定。

    envp参数

           envp存放了当前程序运行环境的参数。

           示例(book105.c)

          

           运行结果

          

           在实际开发中,envp参数的应用很少,各位了解一下就行了。

     

    版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

    来源:C语言技术网(www.freecplus.net

    作者:码农有道

    如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

    如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

    展开全文
  • C语言main函数返回值详解

    万次阅读 2019-08-30 23:54:28
    前言:本文程序代码均在...C语言main函数有两个标准写法 // C99加入两种 main 标准写法 int main(void) // 标准一写法 // 和 int main(int argc,char *argv[]) // 标准二写法 int main(int argc,char **argv) // ...
  • C语言main函数参数、返回值

    千次阅读 2019-11-04 01:39:15
    C语言main函数返回值: main函数的返回值,用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其他数字的含义则由系统决定,通常,返回非零代表程序异常退出,即使程序运行结果正确也仍需修复代码。 ...
  • 深度剖析c语言main函数---main函数的参数传递

    千次阅读 多人点赞 2018-07-10 00:20:38
    在上文中,我们主要讲了c语言main函数的返回值问题,本文主要将main函数的参数传递。 main函数传参  首先说明的是,可能有些人认为main函数是不可传入参数的,但是实际上这是错误的。main函数可以从命令行获取...
  • 深度剖析c语言main函数---main函数的返回值

    万次阅读 多人点赞 2018-07-09 23:19:06
    在接下来的几篇博文中,我将对c语言main函数进行深入的剖析,分别从函数返回值,函数参数,以及函数的执行顺序对main函数作一总结。本文主要聊聊main函数的返回值。 main函数的返回值  main函数的返回值用于...
  • C语言main函数的写法

    万次阅读 多人点赞 2018-01-03 20:02:29
    main函数是C程序的入口函数,即程序的...C语言发展至今,对main函数有多种不同的写法,下面就来探究一下各种不同的写法。注:测试环境为Ubuntu 17.10,GCC版本为7.2.0。 NO.1 main(){}例: #include mai
  • 【C】C语言main函数的三种形式

    万次阅读 2015-04-16 09:10:29
    C语言中,main()函数有三种形式。 1、无参数 #include int main(void) { printf("Hello World!\n"); return 0; } 2、有两个参数 习惯上第一个参数是整型argc,保存了外部调用命令的参数个数,第二个参数是指针...
  • C语言main函数详解

    千次阅读 2020-02-20 19:24:54
    int 指明了main()函数的返回类型,函数名后面的圆括号一般包含传递给函数的信息。对于void main(),有些编译器允许这种形式,但是还没有任何标准考虑接受它。 二、main()函数的返回值 从前面我们知道 main() 函数...
  • c语言main函数参数问题

    千次阅读 2020-02-11 14:18:47
    C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针...
  • main函数C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是:int main(int argc, char *argv[]);其中argc是命令行参数的个数,argv是指向参数的各个指针所构成的数组。当内核执行C程序时...
  • C语言main函数可以在什么位置

    万次阅读 2021-05-21 05:29:15
    C语言main函数可以在任意位置。每一个C语言程序有且只有一个主函数(main()),且程序必须从main()函数开始,它是程序开始时调用的第一个函数。函数定义形式:【int main(void){}】。C语言规定,在一个C程序中,main...
  • C语言main函数中argc和argv[]的理解

    千次阅读 多人点赞 2018-05-08 23:45:37
    大家应该都有一个模糊的记忆,C语言main函数是程序的入口函数,所以程序运行时main函数调用别的函数,并且给别的函数传入参数。但是没人告诉我们是谁“调用”的main函数。其实我们可以理解为是操作系统调用的main...
  • C语言main函数中嵌套定义函数

    千次阅读 多人点赞 2014-08-08 21:18:46
    今天在看串口编程示例程序时,意外发现该程序中竟然在main函数中嵌套定义了其他函数,调试了一下,居然通过了,然后我又写了个简单的测试程序,居然也通过了。 下面是测试代码: 这是运行结果: ...
  • Linux下C语言main函数的原型

    千次阅读 2013-12-09 11:06:53
    今天在研究dhcpd代码的时候,发现在dhcpcd.c中,main函数的写法为: int main(argn,argc,argv) int argn; char *argc[],*argv[]; { ...... } 以前见过的都是下面这些形式的: int main(); void main(); int main...
  • 深度剖析c语言main函数---main函数的执行顺序

    千次阅读 多人点赞 2018-07-10 14:09:37
    在之前的文章中,介绍了main函数的返回值 和 main函数的传参,本文主要介绍一下main函数的执行顺序。可能有的人会说,这还用说,main函数肯定是程序执行的第一个函数。那么,事实果然如此吗?相信在看了本文之后,会...
  • C语言中的main函数

    千次阅读 2020-09-21 00:15:01
    main函数的返回值是返回给系统的,如果main函数运行正常,就返回0,否则就返回相应的错误代码。通过错误代码,就可以判断出程序出错的原因。一些C语言的初学者习惯将 main函数的参数 我们在Linux中使用命令时,会在...
  • main函数不是必须放在其他函数之前,也就是说可以放在其他函数的上面,下面,都可以。编译器编译时,是逐行编译的。但是它是先找到主函数,主函数编译完也表明这个程序已经编译完了。如果主函数放在其他函数之前,...
  • C语言main()函数详解

    万次阅读 多人点赞 2017-10-19 16:33:12
    main()函数称之为主函数,一个C程序总是从main()函数开始执行的。   一、main()函数的形式 在最新的 C99 标准中,只有以下两种定义方式是正确的: int main( void ) /* 无参数形式 */ {  ...  return 0; }...
  • C语言中 int main (int argc, char *argv[]) argc指示程序启动时命令行参数的个数。 argv则包含具体的参数字符串。 例如: 如果有程序叫“hello.exe”,直接启动时,argc=1, argv[0]=hello.exe。 如果...
  • c语言main函数的位置是什么?

    千次阅读 2021-05-18 10:53:18
    c语言中,main函数可以放在任意位置。在执行一个c语言编写的程序时,main函数就相当于是执行程序的入口。只要是没有语法和逻辑上的错误,main函数可以放在任意位置。main函数,又称主函数,是C程序的入口函数,即...
  • C语言main函数的命令行传参

    千次阅读 2019-05-09 19:38:55
    但其实一个完整的main函数是如下定义的 main 函数中有两个参数,分别是 argc 和 argv。但是在 C 语言中规定,main 函数是不能被别的函数调用的,那究竟是谁传递了参数给main 函数呢? 答案是:命令行 当我们...
  • 关于c语言调用main函数自身,一点

    千次阅读 2019-03-19 14:47:26
    #include&amp;...int main(int i = 0){ int a,b; while(i != 5){ printf(“你好 &quot;); i++; main(i); } return 0; } 一共输出十五次,是5+4+3+2+1=15次的结果。 ...
  • c语言main是什么意思-与非网

    千次阅读 2021-05-18 16:39:30
    硬件型号:UNSIGNED-1系统版本:编程系统在C语言里是main称之为主函数,是所有程序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。对main()...
  • 主要介绍了C语言之没有main函数的helloworld示例,本文分解了带main函数的helloworld示例,从而分析出不需要main函数的helloworld示例,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 464,710
精华内容 185,884
关键字:

c语言main函数

友情链接: EKFofsoc.zip