我有几个非常简单的问题。我在网上搜索了它们,但是找到了不同的答案,所以我只想知道该遵循哪个。

因此,首先,我相信WinMain不是C或C ++标准,而是由Microsoft添加的,以确定何时加载不同的CRT启动代码,对吗?

其次,WinMain是由OS调用的,可以说类似于动态链接,还是像main这样的程序启动点?

我为什么要问?我主要使用C对MCU进行编程。我比硬件更注重硬件,所以我喜欢MCU,我发现它们并对它们进行编程更加“清晰”。

但是当我开始对C语言本身及其标准感兴趣时,我发现它非常困难。我的意思是,例如,在MCU上,您不需要main的int返回类型,在win32应用程序中,您需要的启动代码与pure main不同。

因此,我喜欢C,但是我发现它的标准已经过时了。谢谢。

最佳答案

我相信WinMain不是C或C ++标准,而是由Microsoft添加的,以确定何时加载不同的CRT启动代码,对吗?


是。所有C和C ++标准都将main()(并且仅main())定义为程序入口点(尽管其确切签名可能在语言和标准版本之间有所不同)。


  其次,WinMain是由OS调用的,可以说类似于动态链接,还是像main这样的程序启动点?


实际上是从main()调用的。 Windows程序中也有一个main(),仅隐藏在WinAPI代码的深处。

关于c - 很少有WinMain问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3739210/

10-11 21:30