精华内容
下载资源
问答
  • C语言中main函数可以什么位置

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

    C语言中main函数可以在任意位置。每一个C语言程序有且只有一个主函数(main()),且程序必须从main()函数开始,它是程序开始时调用的第一个函数。函数定义形式:【int main(void){}】。

    e187fb95e7e9e76f901e9a8eb6f35816.png

    C语言规定,在一个C程序中,main()函数可以在任意位置。

    (推荐教程:c语言教程)

    解析:

    每个C程序有且只有一个主函数(main),且程序必须从main()函数开始执行,而且main()函数可以放在程序中的任意位置。

    详细介绍:

    在宿主环境中编译的C程序必须定义一个名为main的函数,这是程序开始时调用的第一个函数。

    main()函数的定义有以下两种形式:

    (1) 函数没有参数,返回值为 int 类型。int main( void ) { /* … */ }

    (2) 函数有两个参数,类型分别是 int 和 char**,返回值是 int 类型。int main( int argc, char *argv[ ] ) { /* … */ }

    这两种定义方式都符合 C 语言标准。除此之外,许多 C 的实现版本还支持第三种、非标准语法的定义方式:int main( int argc, char *argv[ ], char *envp[ ] ) { /* … */ }

    函数返回值是 int,有 3 个参数:第一个是 int,另外两个是 char**。

    展开全文
  • main函数,又称主函数,是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种...

    在c语言中,main函数可以放在任意位置。在执行一个c语言编写的程序时,main函数就相当于是执行程序的入口。只要是没有语法和逻辑上的错误,main函数可以放在任意位置。

    fa9462d89292d3e606331af3f1458bef.png

    main函数,又称主函数,是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?

    答案是操作系统。

    C语言发展至今,对main函数有多种不同的写法,下面就来探究一下各种不同的写法。注:测试环境为Ubuntu 17.10,GCC版本为7.2.0。

    NO.1main(){}

    例:#include

    main(){

    printf("Hello World\n");

    }

    8a619e8840d3f7770990208b4a7908eb.png

    NO.2void main(){}

    例:#include

    void main(){

    printf("Hello World\n");

    }

    e29b35e47c7833092e25990239cfff3f.png

    NO.3int main(){}

    例:#include

    int main(){

    printf("Hello World\n");

    return 0;

    }

    ccb8b479bae6ab154eaa302b96611885.png

    NO.4int main(void){}

    例:#include

    int main(void){

    printf("Hello World\n");

    return 0;

    }

    b032dac2c068804e9ad4ed9f4a6829eb.png

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

    例:#include

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

    printf("Hello World\n");

    return 0;

    }

    afef0d5585d5f8f11f3ad0c16554af16.png

    NO.6int main(int argc,char **argv){}

    例:#include

    int main(int argc,char **argv){

    printf("Hello World\n");

    return 0;

    }

    15a5e34e8f5e2d4ebf93abe27f62d03a.png

    从上面的测试来看,写法1在C90标准下可以正常编译,而在C99和C11标准下会抛出一个警告(不写返回值,默认的返回值为int,也就相当于写法1和写法3等价)。写法2-6在C90、C99、C11标准下均能正常编译。在这么多写法中,到底哪一些才是main函数的标准写法?于是查阅了C标准文档对main函数的规范写法,见下图:

    fb5754c0bc39fa9b82f0139063cf6236.png

    从标准文档中可以看出,写法4、5、6才是main函数的规范写法。写法5与写法6是等价的。那为什么又会有写法1、2、3呢?那是因为从1972年C语言被设计出来到C90标准发布这段时间,对C语言不同的实现就导致了对main函数的差异性。强烈不推荐写法2,因为main函数是被操作系统调用的,操作系统会根据main函数的返回值来判断程序的正确执行与否,如果返回void,那代表的是什么状态呢?而且一些编译器支持这种写法,一些编译器不支持,所有的标准并未认可这种写法。对于写法1和写法3还勉强能够接受,不过也不建议这样写,最好还是按照标准写法来写。为什么要按照标准写法来写?那是因为为了让C程序具有更好的移植性。写法5与写法6是等价的,第一个参数代表main函数参数的个数,第二个参数用指针分别指向这些参数。argv[0]代表程序名,argv[1]到argv[argc-1]代表程序参数。下面再看看main函数的返回值问题,见下图

    ee40fda6ae6596d94f6d813b536042f2.png

    从图中可以看出,如果main函数的返回值是int类型的兼容类型,从main函数返回后的值与exit一起相当于执行了exit xxx。xxx代表从main函数返回后的值。如果忘记写了return语句,当执行到main函数体的右大括号},会返回默认值0。返回0代表程序执行成功,程序退出。如果main函数的返回类型不是int类型的兼容类型,程序返回给操作系统的状态将会不明确。

    更多web开发知识,请查阅 HTML中文网 !!

    展开全文
  • main函数C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是:int main(int argc, char *argv[]);其中argc是命令行参数的个数,argv是指向参数的各个指针所构成的数组。当内核执行C程序时...

    main函数是C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是:

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

    其中argc是命令行参数的个数,argv是指向参数的各个指针所构成的数组。

    当内核执行C程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程(什么鬼?)。可执行程序文件将此启动例程指定为程序的起始地址——这是由连接编辑器设置的,而连接编辑器则是由C编译器调用。启动例程从内核取得命令行参数和环境变量值,然后为按上述方式调用main函数做好安排。

    大概的过程就是如下图所示了:

    f5e95456fd316cc0f7600f6242f0f57a.png

    http://blog.csdn.net/sxh741/article/details/54970085这个链接中讲的还挺清楚的

    http://www.cnblogs.com/findumars/p/6417932.html讲的是C++的main函数执行之前的做的事情

    1、先来看一个简单的C程序(simple.c)作为例子讲解

    2、编译

    gcc -o simple simple.c

    3、查看可执行文件的基本信息

    objdump -f simple

    4、什么是ELF

    5、关于起始地址

    C语言中math.h中常用的函数

    1.绝对值 ①函数原型: int abs(int x); 函数功能: 求整数x的绝对值 int number=-1234; abs(number); ②函数原型:double fabs(double ...

    go语言中strings包中的Trim函数的作用是什么

    答:Trim函数原型如下: func Trim(s string, cutset string) string 去掉字符串s中首部以及尾部与字符串cutset中每个相匹配的字符,如: s=" ...

    C语言中malloc函数的使用方法

    C语言中malloc是动态内存分配函数.函数原型:void *malloc(unsigned int num_bytes);参数:num_bytes 是无符号整型,用于表示分配的字节数.返回值:如果分 ...

    C语言中static修饰符的意义

    在C语言中,static通常有2种含义:1)定义变量的生命周期:2)定义变量或者函数的作用域. 变量的生命周期是指,相对于程序运行的进程生命周期,变量存在的时间段.变量的生命周期由变量的存储类型(位置 ...

    c++中的函数重载、函数重写、函数重定义

    目录 一.函数重载 二.函数重写 三.函数重定义 为了更加深刻的理解 函数重载.重写.重定义,我们可以带着如下这两个问题去思考: 1.子类中是否可以定义父类中的同名成员?为什么? 可以,因为子类与父类 ...

    C语言中main函数的参数argc和argv

    参考资料: http://wiki.opencv.org.cn/index.php/Main%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0argc%EF%BC%8Cargv% ...

    c语言中的main函数讨论

    **从刚开始写C程序,相比大家便开始写main()了.虽然无数的教科书和老师告诉我们main是程序的入口.那么main函数是怎么被调用的,怎么传入参数,返回的内容到哪里了,返回的内容是什么?接下来我们 ...

    [原创]C/C++语言中,如何在main.c或main.cpp中调用另一个.c文件

    C/C++语言中,如何在main.cpp中调用另一个.c文件主要有5种思路: 1.在VS2012 IDE中,将被引用的.c文件后缀名全部修改为.h,然后通过IDE的解决方案资源管理器中鼠标右键单击“头 ...

    C++中函数的默认参数和C语言中volatile的学习

    1.函数默认参数 1 int func(int a,int b=10) 2 { 3 return a*b; 4 } 5 6 int main() 7 { 8 int c=func(2); 9 cout ...

    随机推荐

    Android自定义控件之自定义组合控件

    前言: 前两篇介绍了自定义控件的基础原理Android自定义控件之基本原理(一).自定义属性Android自定义控件之自定义属性(二).今天重点介绍一下如何通过自定义组合控件来提高布局的复用,降低开发 ...

    jdbc 设置连接支持多条sql

    jdbc 参数加上 &allowMultiQueries=true 参考资料: 1.https://my.oschina.net/zhuguowei/blog/411853  Jdbc Url ...

    Linux 退格键不回显

    在程序使用system("stty erase ^H");可以实现在输入状态下,按退格键删除字符,不回显. 调用tcsetattr修改linux基本输入的控制字符定义 //Linu ...

    Cocos2dx集成于windows桌面窗口程序的步骤

    2D游戏需要做编辑器,而编辑器总是希望可以复用游戏中的逻辑来运行场景试看效果. 对于cocos2dx开发的程序,这个需求可以描述为: 实现一种方法,在桌面窗口程序中的某个控件上显示cocos2dx的场 ...

    小心loadrunner成为瓶颈

    最近在测试中发现一个问题,某些时候用进程跑场景的时候tps死活上不去,而用同样数量的线程跑的时候,TPS开始很高,然后很快的跌倒谷底.当遇到这个问题的时候往往就是loadrunner成为瓶颈了! 解决 ...

    Ubutun 16.04添加操作命令审计

    1.启用/var/log/messages,监控系统命令 说明:由于需要把操作命令记录到/var/log/messages,但是ubuntu默认并没有开启日志写入到这个文件 tchua@ubuntu: ...

    idea for Mac for循环快捷键

    1.itar 生成array for代码块 for (int i = 0; i < array.length; i++) { = array[i]; } 2.itco 生成Collection迭 ...

    Cleanup failed to process the following paths错误的解决

    在使用TortoiseSVN工具执行Cleanup操作时经常出现Cleanup failed to process the following paths的错误,具体如下图: 网上搜索了一下,找到了解 ...

    Visual Studio编译C工程出现的错误

    错误1. エラー 1 error LNK1561: エントリー ポイントを定義しなければなりません. 解决办法:将工程的类型改为dll动态库,设置方式如下: 右键工程,选择[プロパティ].在弹出的面板 ...

    【codeforces】【比赛题解】&num;869 CF Round &num;439 &lpar;Div&period;2&rpar;

    良心赛,虽然我迟了半小时233333. 比赛链接:#869. 呃,CF的比赛都是有背景的……上次是,这次是…… [A]巧妙的替换 题意: Karen发现了石 ...

    展开全文
  • c语言 如何在main中调用函数

    千次阅读 2021-05-21 13:32:50
    #include int main(){char f;float d = 0;float i = 0;float y = 0;//定义两个用于储存输入数值的函数printf("输入计算表达式,各项之间使用空格分开:\n");scanf("%f%c%f\n",&i,&f,&y);if(f = '+'){d =...

    #include int main(){

    char f;

    float d = 0;

    float i = 0;float y = 0;//定义两个用于储存输入数值的函数

    printf("输入计算表达式,各项之间使用空格分开:\n");

    scanf("%f%c%f\n",&i,&f,&y);

    if(f = '+'){

    d = jia(i,y);

    }

    printf("%f\n",d);

    }

    float jia(float a;float b;){

    float z;

    z = a + b;

    return (z);

    }

    编译软件提示

    167C:\Users\xiong\Desktop\计算器.c[Error] conflicting types for 'jia'

    117C:\Users\xiong\Desktop\计算器.c[Note] previous implicit declaration of 'jia' was here

    C:\Users\xiong\Desktop\计算器.cIn function 'jia':

    186C:\Users\xiong\Desktop\计算器.c[Error] 'a' undeclared (first use in this function)

    186C:\Users\xiong\Desktop\计算器.c[Note] each undeclared identifier is reported only once for each function it appears in

    1810C:\Users\xiong\Desktop\计算器.c[Error] 'b' undeclared (first use in this function)

    float jian(float a;float b;){

    }

    float chen(float a;float b;){

    }

    float chu(float a;float b;){

    }

    展开全文
  • main函数在C语言中是怎么定义的?有什么作用?更新时间:2019-10-24 13:55最满意答案额,main不是程序的最开始啦。拿用glibc的程序来说,C语言执行的过程应该是 _start -> _libc_start_main -> main -> ...
  • C语言C语言中main函数问题

    千次阅读 多人点赞 2016-04-12 19:44:42
    前言 C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数...最新的 C99 标准,只有以下两种定义方式是正确的: int main( void ) /* 无参数形式 */ {  ...  return 0; } int main( int argc, char
  • main函数不是必须放在其他函数之前,也就是说可以放在其他函数的上面,下面,都可以。编译器编译时,是逐行编译的。但是它是先找到主函数,主函数编译完也表明这个程序已经编译完了。如果主函数放在其他函数之前,...
  • PHP 和 JavaSript 区别_后端开发PHP是一种...C语言中在main函数中定义的变量不是全局变量,而是局部变量。main函数中定义的变量与全局变量的生命周期一样长。(推荐教程:C语言教程)注意:全局变量一定是定义在函数...
  • C语言中main函数参数使用

    千次阅读 2018-09-26 10:26:41
    C99标准定义main函数两种正确的写法 int main(void); int main(int argc, char* argv[]); 常见的不标准写法 void main() main() 这里主要说明带参数的main函数如何使用 int main(int argc, char* argv[]) { ...
  • 关于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函数的写法

    万次阅读 多人点赞 2018-01-03 20:02:29
    main函数是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种不同的写法,下面...
  • C语言main函数有几种写法?

    千次阅读 2021-05-20 03:46:33
    main函数,又称主函数,是程序执行的起点,我们平时写的main函数是什么样呢?1,是这样?main(){}2,还是这样?void main(){}3,还是这样?int main(void){}4,还是这样?int main(){}5,还是这样?int main(int ...
  • C语言main函数详解

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

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

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

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

    千次阅读 2021-05-21 05:33:26
    //--------------------------------------------------------本文目录结构|-提出问题|-解决问题|-推荐文章|-作业//-------------------------------------------------------...③在main函数结束吗?二、解决问题ma...
  • C语言中log函数怎么使用啊

    千次阅读 2021-05-18 11:52:08
    优质回答 回答者:奔跑的五花肉111、C语言中,有两个log函数,分别为log10和log函数,具体用法如下:2、函数名: log10功 能: 对数函数log,以10为底用 法: double log10(double x);程序示例:#include #include int ...
  • 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) // ...
  • 之前的文章,介绍了main函数的返回值 和 main函数的传参,本文主要介绍一下main函数的执行顺序。可能有的人会说,这还用说,main函数肯定是程序执行的第一个函数。那么,事实果然如此吗?相信看了本文之后,会...
  • C语言中函数分别有什么?

    千次阅读 2021-05-20 04:09:22
    C语言中函数在其他编程语言也称为过程或子程序。要执行任务,我们可以创建函数。一个函数可以被多次调用。 它提供了模块化和代码可重用性。C语言中函数的优点函数有很多优点。它们分别如下 -(1)代码可重用性通过...
  • C语言中函数是什么意思

    千次阅读 2021-05-21 04:54:35
    C语言中函数是什么意思简单来说函数就是c语言的模块,一块块的,有较强的独立性,但是可以相互调用。这是c和c++区分的地方,c++面向对象,对象独立完成功能,无需调用。一个c程序就可以是一个函数,里面再包含n个...
  • c语言main函数参数问题

    千次阅读 2020-02-11 14:18:47
    C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针...
  • C语言入门 函数调用 main函数 int main 是什么

    千次阅读 多人点赞 2020-07-25 23:56:40
    目录引入函数main 函数其他 引入 学任何编程语言的时候,大家应该写的第一个程序都是输出“Hello, world!”。 我学python,Java的时候都是,现在学C语言也不例外。 于是就有了以下代码: int main(){ cout <<...
  • C语言main函数参数、返回值

    千次阅读 2018-08-21 16:16:36
    C语言main函数返回值:  main函数的返回值,用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其他数字的含义则由系统决定,通常,返回非零代表程序异常退出。 C语言main函数写法  很多人...
  • C语言中main函数的参数详解

    千次阅读 2014-09-17 09:33:55
    C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。所以C99标准规定只有以下两种定义方式是正确的:  int main(void) //无参形式  int main(int argc, char *argv[]) //有参形式
  • C语言的入口函数不一定叫main

    千次阅读 2021-05-22 07:10:30
    原标题:C语言的入口函数不一定叫mainC语言的入口程序好像都被固定好了叫“main”但是不一定哦。先写个程序:#include#includeint main(){printf("俄罗斯方块---《C语言,好爽》2017年录 By 宁哥");system("pause");...
  • C/C++语言main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) 这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的...
  • 今天学习c++,突然想到为什么程序要从main函数开始执行。 也忘记老师有没有讲过,甚至有些遗忘。 担心之余开始前往csdn进行查询学习,终于一个大神博客学习到了,现在分享给大家。 main只是开发工具所规定的一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432,534
精华内容 173,013
关键字:

在c语言中main函数

c语言 订阅