c语言中在main函数之前会执行什么?

如题所述

都胡扯,一个C语言的执行是从本程序的主函数开始,到本程序的主函数结束。 其余函数都是一个被调用的过程。
至于头文件之类的预编译命令,既然叫预编译那就是编译之前完成的。预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-08
#include中的内容,例如#include<stdio.h>执行stdio.h中包含的库函数,像printf跟scanf。
还有自己定义的函数也是在main执行前编译好的。用得时候直接调用。
第2个回答  推荐于2018-03-31
main函数之前--真正的函数执行入口或开始

一种解释

实际上,在可执行文件被加载之后,控制权立即交给由编译器插入的Start函数,它将对后面这些全局变量进行准备:
   _osver 操作系统的构件编号
_winmajor 操作系统的主版本号
_winminor 操作系统的次版本号
_winver 操作系统完全版本号
__argc 命令行参数个数
  __argv 指向参数字符串的指针数组
_environ 指向环境变量字符串的指针数组
Start函数初始化堆并调用main函数.mian函数返回之后,Start函数调用Exit函数结束该进程.
启动函数Start的源代码在:
   crt0.c Microsoft Visual C++
c0w.asm Borladn C++本回答被网友采纳
第3个回答  2011-11-08
预处理命令,如#include"stdio.h",到系统及c语言函数库找库函数。
第4个回答  2011-11-08
自己看一看编译原理吧

c语言中在main函数之前会执行什么?
main函数之前--真正的函数执行入口或开始 一种解释 实际上,在可执行文件被加载之后,控制权立即交给由编译器插入的Start函数,它将对后面这些全局变量进行准备:_osver 操作系统的构件编号 _winmajor 操作系统的主版本号 _winminor 操作系统的次版本号 _winver 操作系统完全版本号 __argc 命令行参数...

main函数执行以前还会执行什么代码
C++中,全局对象的构造函数会在main 函数之前执行。在大多数的实现方式里,核心会运行专门的启动代码,启动代码会在启动main()之前完成所有的初始化工作,这其中当然包括了全局对象的初始化。这个所谓的启动代码就是Runtime函数库的Startup代码。

C语言为什么main函数开头要声明其它函数?
这个叫做函数声明,因为main函数是程序的入口,就是程序从main函数开始执行的,当在main函数里遇到一个未知的函数时就会报错。所以种做法,一种是把子函数放在main函数之前,另一种是在main函数之前定义子函数,推荐第二种。

在main之前,IAR都做了啥
看来IAR迟迟不执行main()函数,就是为了执行__iar_data_init2,我们来分析分析IAR都干了些什么坏事~首先压R4,LR入栈,然后加载0x0800'7C78至R0,0x0800'7C9C至R4,马上跳转到0x0800'7D62执行R0,R4的比较,结果若是相等,则弹出R4,PC,然后立即进入main()。不过IAR请君入瓮是自不会那么快放我们出来的——结果不...

main函数是C程序的开始吗?
与之相对应的是,__attribute__((destructor))属性,它的作用是在main函数完成或调用exit函数后自动调用关联的函数。这有助于清理或释放程序执行中使用的资源。总结来说,C语言中的这些属性类似于C++类中的构造函数和析构函数,分别在程序运行前和后执行特定任务。它们用于初始化和清理数据,确保程序的...

C语言 用户自定义函数在主函数前面时系统先执行主函数还是自定义...
c程序都是从main函数开始执行的,见到自定义函数再调用;自定义函数在主函数前定义,只是省了该函数的声明,函数还是从main函数开始执行,main函数调用其他函数,包括你自定义的函数;

c程序的执行总是从___开始执行。
C程序的执行并非总是从程序的第一条语句开始。实际上,程序的执行起点是main函数。在程序启动时,操作系统会调用main函数,从而开始执行程序。在main函数执行完毕之前,程序会调用其他任何定义在程序中的函数,并在完成所有函数的调用后结束。在C语言中,main函数是程序的入口点。它至少存在一个,尽管在理论...

...多个函数,那么先执行哪个,(第一个肯定是main函数,而且与它在程序中...
您好!第一个执行的也不见得就是main函数,如果程序里有静态语句块的话,那就先执行静态语句块。至于其他函数,那就看主函数中调用谁了,如果不调用,它就不会执行,相当于没写。

c语言中,main()之前可以不加数据类型吗?加与不加有区别吗?
可以说加不加int是没有区别的。在ANSI C的标准中,main的标准返回值是整型,如果你什么都没有加,编译系统会自动加上int类型的。这时如果你使用GCC的话(VC是没有的)会有一个警告。void是无类型,表示没有返回值,你的主函数如果不需要返回的话,最好加上它。最后,建议你的主函数显式的使用int...

[C语言]函数的定义中什么时候要在main之前声明函数?
楼主记住这么一个原则就行了。函数要先声明后使用。即函数调用之前一定要知道该函数的类型。如果fun1在main函数之前已经实现,那么main函数调用fun1的时候就已经知道fun1函数的类型了,就不需要声明了。如果fun1在main函数之后实现,那么调用之前一定要先声明。

相似回答