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

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

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

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

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

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函数,C语言中的main函数以及main函数是如何被调用的相关推荐

  1. c语言不用math就算次方,C语言中math.h定义了哪些函数

    //1.三角函数 double sin(double); //1.1.正弦 double cos(double); //1.2.余弦 double tan(double); //1. 3.正切 //2 ...

  2. c语言putchar函数_C语言中的putchar()函数与示例

    c语言putchar函数 C语言中的putchar()函数 (putchar() function in C) The putchar() function is defined in the < ...

  3. c语言的point函数,C语言中friend友元函数详细解析

    C语言中friend友元函数详细解析 友元函数是可以直接访问类的私有成员的非成员函数.它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字frien ...

  4. c语言中在main外面定义的int变量,C语言中,把变量定义在主函数之外和定义在主函数之内有什么区别...

    C语言中,把变量定义在主函数之外和定义在主函数之内有什么区别 答案:7  信息版本:手机版 解决时间 2018-12-14 06:44 已解决 2018-12-13 14:23 C语言中,把变量定义在 ...

  5. java 函数fun_c语言中fun用法详解_后端开发

    Java Dao层的作用_后端开发 Dao层叫数据访问层,属于一种比较底层,比较基础的操作,可以具体到对于某个表或某个实体的增删改查,其Dao层的作用是对数据库的访问进行封装,从而不涉及业务,实现解耦 ...

  6. putc函数_C语言中的putc()函数与示例

    putc函数 C语言中的putc()函数 (putc() function in C) The putc() function is defined in the <stdio.h> he ...

  7. c语言中的printf函数_C语言中的printf()函数与示例

    c语言中的printf函数 C语言中的printf()函数 (printf() function in C) The printf() function is defined in the <s ...

  8. main c语言中变量的定义,C语言中在main函数中定义的变量是全局变量么_后端开发...

    PHP 和 JavaSript 区别_后端开发 PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,主要用于Web开发领域,而JavaSript是一种具有函数优先的轻量级,解释型或即时编译型的高 ...

  9. c语言strlen用法,如何使用c语言中的strlen()函数

    c语言中strlen()函数的用法是:[strlen(const char *str)].该函数用于计算字符串的长度,直到空结束字符,但不包括结束字符,并返回字符串的长度. 函数介绍: (推荐教程:c ...

最新文章

  1. java打印文档_从Java应用程序打印文档?
  2. sourceTree安装与使用
  3. Apache CarbonData 2.0 开发实用系列之一:与Spark SQL集成使用
  4. 云计算教程学习入门视频课件:什么是中间件?
  5. Linux下VsFTP和ProFTP用户管理高级技巧 之一
  6. 注释(/**/) 给CSS带来的麻烦
  7. 架构 简述负载均衡和CDN技术
  8. 计算机网络-UDP和TCP套接字编程
  9. 扩展卡尔曼滤波算法 EKF
  10. Android EditText 只能输入数字
  11. 在那个春暖花开的季节 今天微微的小雨 伴着轻轻的晚风我们一起来编写 员工考勤信息管理...
  12. 阿里秒挂,疯狂复习半个月,拿下美团offer(后台开发JAVA岗)
  13. 跨境电商多商户系统怎么选
  14. HDOJ 3911 线段树
  15. 淘宝详情页分发推荐算法总结:用户即时兴趣强化
  16. VB.Net 解决winForm界面卡死
  17. AAAI 2021论文接收列表内有关因果的文章
  18. 如何让自己时刻冷静的方法_情绪激动时如何冷静下来?教你4招很管用
  19. 智能编码助手Copilot
  20. 服务器开超线程性能提升多少,超线程能提升处理器效率

热门文章

  1. 浏览器页面通知之notify
  2. thinkphp_邮箱找回密码_已迁移
  3. Html页面配置多国语言,Nginx 页面多国语言处理
  4. C++实现sin和arctan
  5. es同步mysql方案_ES数据同步方案
  6. nginx限流方法一:limit_reqlimit_req_zone限制处理速率
  7. php微信h5分享到朋友圈,H5页面在微信端的分享(分享到朋友圈,好友)
  8. 6.单行函数多行函数
  9. 刺激消费的线上盲盒运营解析,你知道盲盒吗
  10. android链接三星手机号码,Ubuntu 14.04 连接Android 手机(三星note3) 进行应用调试