c - 几个 WinMain 问题

标签 c standards

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

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

其次,WinMain 是由操作系统以类似于动态链接的方式调用的,还是只是像 main 一样的程序启动点?

我为什么要问?我主要使用 C 来编程 MCU。与软件相比,我更注重硬件,所以我喜欢 MCU,我发现它们以及为它们编程更“清晰”。

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

所以,我喜欢 C,但我发现它的标准有点老了。谢谢。

最佳答案

I believe WinMain is NOT C or C++ standart, but is only added by Microsoft to determine when to load different CRT startup code, am I right?

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

And second, is WinMain called by OS, in a way of lets say similiar to dynamic linking, or is it just program startup point like main?

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

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

相关文章:

c - argv 和 char 的问题

C 中的完整类型到不完整类型 : C11 standard

c++ - 是否有可用于基准测试的标准图形数据结构?

gps - 纬度长或长纬度

cryptography - 在填写表格的 Web 应用程序上是否有电子签名的标准实现?

将 char *buffer 中的数据复制/移动到 char info[4][10] 的多维数组

c - 如何在 ubuntu 14.04 上安装 .c 和 Makefile 驱动程序

c - USACO 数字三角形

c - 将 FILE 指针传递给函数

c++ - NaN 在 float 和 double 之间的类型转换