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

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

main函数之前--真正的函数执行入口或开始

一种解释

实际上,在可执行文件被知孙加载之后,控制权立即交给由编译器插入的Start函数,它将对后面这些全局变量进行准备:

 _osver *** 作系统的构件编号

_winmajor  *** 作系统的主版本号

_winminor  *** 作系统的次版本号

_winver  *** 梁塌作系统完全版本号

__argc 命令行参数个数

  __argv 指向参数字橡猛圆符串的指针数组

_environ 指向环境变量字符串的指针数组

Start函数初始化堆并调用main函数.mian函数返回之后,Start函数调用Exit函数结束该进程.

启动函数Start的源代码在:

 crt0.c Microsoft Visual C++

c0w.asm Borladn C++

c语言编译器对于源代码的编译是顺序编译的,当你的任意一个函数中调用某个函数的时候,这个函数的原型必须在调用之前声明孝埋,否则就会出现编译错误,例如:

void a(int b)

{

printf("%d\n", b)

}

int main(int argc, char *argv)

{

a(10)

return 0

}

以上的程序迟旁就没有问题巧旦蚂,如果两个函数的位置倒一下,就会报错,解决办法是,将函数“a”的原型在main之前声明,如:

void a(int b)

int main(int argc, char *argv)

{

a(10)

return 0

}

void a(int b)

{

printf("%d\n", b)

}

你可以这样试试。

看什么编译器,有的编译器,可以默认包含枯袜stdio.h,就不用include

而且,如果不用任何函搭败弊知族数,所有编译器都可以不用include

比如

int

main()

{

int

a

=

1

int

b

=

2

int

c

=

a

+

b

return

(c)

}

只有main就可以


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12423511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存