C / C ++中的两个“主要”function

我可以用C或C ++编写一个带有两个主要function的程序吗?

不是。所有程序都有一个main(),这就是编译器和链接器生成一个可启动的可执行文件的方式。

你基本上有两个选择:

  1. 让main()解释一些命令行参数来决定要调用的实际main。 缺点是你将有两个程序的可执行文件。

  2. 从共享代码中创建库,并针对该库编译每个主文件。 你最终会得到两个可执行文件。

您可以使用两个名为main函数。 这个名字没有任何特殊之处,也没有保留。 有什么特别的function ,它碰巧有这个名字。 该function是全球性的。 因此,如果您在其他名称空间中编写主函数,您将拥有第二个main函数。

 namespace kuppusamy { int main() { return 0; } } int main() { kuppusamy::main(); } 

第一个mainfunction并不特别 – 请注意您必须明确return

是的 但是,它是特定于平台而不是标准C,如果您询问您真正想要实现的目标(而不是尝试解决该问题),那么您可能会收到对您更有帮助的答案。

不,程序只能有1个入口点(即main() )。 实际上,更一般地说,在C中只能有一个给定名称的函数。

main()定义了程序的入口点,程序中只能有一个main()函数(入口点)。

坦率地说,你的问题对我来说没有多大意义。

如果一个是static并且驻留在不同的源文件中,我没有看到任何问题。

你对“主要function”是什么意思? 如果你的意思是在程序启动时执行的第一个函数,那么你只能有一个函数。 (你最初只能有一个!)

如果您希望应用程序在启动时执行不同的操作,您可以编写一个主函数来读取命令行(例如),然后决定调用哪个其他函数。

在一些非常特殊的架构中,你可以。 这就是Cell处理器的情况,你有一个主处理器的主程序(64位PowerPC处理器元素称为PPE)和一个或多个主程序用于8个不同的协处理器(称为SPE的32位协同处理元件) )。

不,你不能在C语言中拥有多个main()函数。 在标准C语言中,main()函数是一个特殊函数,它被定义为程序的入口点。 您使用C语言或任何其他语言创建的任何函数的副本不能超过一个 – 除非您指定不同的签名。 但是在main()的情况下,我认为你别无选择;)

不,main()是程序的入口点,因为你不能有两个入口点,你不能有两个main()。

你可以编写它,它会编译,但它不会链接(除非你的链接器不符合要求)

成语是发送argv[0]的值。 使用硬链接(POSIX),您甚至不会丢失磁盘空间。

标准C不允许嵌套函数,但GCC允许它们。

 void main() { void main() { printf(“stackoverflow”); } printf(“hii”); } 

此代码的o / p为-hii

如果你使用GCC编译器。

如果你想在你的程序中使用2 main()这样两个都成功执行,那么有一个简单的技巧;你可以使用define.Example-

 void main() { printf("In 1st main\n"); func1(); } #define main func1 void main() { printf("In 2nd main\n"); } 

这里的o / p将是:

在第1主要

在第2主力

注意:此处将生成警告冲突类型的func1。

是的,不要改变定义的地方。

这可能是您的查询的答案

 void main() { func1(); } #define main func1 void main() { printf("inside 2nd main"); } 

不在C,C ++中

但现在C#.net引入技巧,你可以在一个应用程序中使用2个主电源。 我也在我的应用程序中实现。 我有方案和要求并成功实施。

参考和certificate在这里https://www.youtube.com/watch?v=KJcBj3hLIpM

是,允许多个main()但不在全局命名空间中。

“每个C ++程序必须只有一个名为main()的全局函数” – Bjarne stroustrup。

例如1:

 namespace foo { int main() //Main 1 { return 1; } } int main() // Main 2 { } // Main 1 : namespace is foo // Main 2 : namespace is global // Allowed : Yes , its allowed as both the main() are present in different namespaces. 

例2:

 int main() //Main 1 { return 1; } void main() // Main 2 { } // Main 1 : namespace is global // Main 2 : namespace is global // Allowed : No , as multiple main() in global namespace . Compile-time error is thrown : redefinition of main() ..