主要方法执行

Hii,

我们通常看到程序执行开始于C,C ++,Java等语言的main方法(我熟悉这些)。 我想知道编译器如何知道程序中是否存在MAIN方法。

除了它是程序执行的入口点之外, main方法的含义是什么…这些标准对于C,C ++有何不同……

提供您认为有用的任何链接……

通常,在每个C或C ++程序的开头执行的代码(通常由编译器/链接器默认包含)执行一些初始化,然后调用一个名为main的函数。 如果此函数不存在,则在链接程序时将导致未解析的名称(其中必须解析所有名称)。 如果它存在,它将由程序初始化代码调用。

初始化代码执行一些内务处理(例如,将main函数的返回值转换为程序的退出代码等)

没有。 它只是程序起点的传统名称。

Cmain()sin()或任何其他函数一样正常。 托管实现中唯一的要求是它符合其中一个原型

 int main(void); int main(int, char **); 

编辑

你甚至可以从代码中调用main() 🙂

 #include  int main(int argc, char **argv) { printf("main() called with %d arguments.\n", argc); if (argc) { main(0, NULL); } return 0; } 

在Windows上,它都以可移植可执行文件格式开头: http : //en.wikipedia.org/wiki/Portable_Executable 。

可以通过链接器指定入口地址: http : //msdn.microsoft.com/en-us/library/y0zzbyt4.aspx

托管应用程序在其程序集元数据中引用了静态main方法。 这是编译器的命令行选项: http : //msdn.microsoft.com/en-us/library/6s2x2bzy%28v=VS.71%29.aspx