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

一般程序中都是认为C语言程序在运行过程中,是由Main函数开始,最后到Main函数结束。

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

_osver 操作系统的构件编号
_winmajor 操作系统的主版本号
_winminor 操作系统的次版本号
_winver 操作系统完全版本号

 

_argc 命令行参数个数

 

_argv 指向参数字符串的指针数组

_environ 指向环境变量字符串的指针数组
Start函数初始化堆并调用main函数.mian函数返回之后,Start函数调用Exit函数结束该进程.
启动函数Start的源代码在:crt0.c Microsoft Visual C++

------------------------------------------------------------------------------------------------------------------------

更新于2019-01-14

在C99标准中,main的定义方式只有一下两种是正确的:

(1)无参数形式

int main()

{

//do somethings;

return 0;

}

(2)带参数形式

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

{

//do somethings;

return 0;

}

---------------------------------------------------------------------------------------------------------------

更新于2019-1-15

main(int argc,char *argv[ ])

命令行参数:

可执行文件名   参数   参数  参数

argc 是表示参数个数(可执行文件名也是一个参数);

argv是表示输入命令行时由系统接收实际参数的个数自动复制的;

main(int argc,char *argv[ ])

{

       while(argc-->1)

        {

         printf("%s \n",*(++argv));

         }

}

 

eg:

输入:exename bbj1 bbj2 bbj3;

输出:bbj1

            bbj2

            bbj3

 

你可能感兴趣的:(C语言)