gpt4 book ai didi

c++ - 哪个更有效 :A Win32 func. 或类似的 CRT func。在 VC++ 应用程序中?

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:13 25 4
gpt4 key购买 nike

我开始 win32 编程是为了好玩,因为我喜欢复杂的东西,我喜欢编程(这都是 Charles Petzold 和 Jeffrey Richter 写出如此漂亮的书的错。)可能是因为我对性能代码有兴趣。

现在,真正的问题是:我将使用 GetEnvironmentVariable()[一个 win32 API 函数] 和 getenv()[一个标准 CRT 函数] 的例子。

这两个都返回作为参数提供的环境变量的值。

那么使用哪个更有效,或者换句话说,哪个调用堆栈更短,哪个更直接?想想一些 func。被调用一百万次。

我相信它们中的任何一个映射到另一个。我是对的还是我在这里遗漏了什么。

总结:在为win32 api编程时,如果api和c/c++库中都有提供相同功能的函数,我应该使用哪个?

谢谢。

最佳答案

对于大多数应用,使用一个或其他 API 不太可能成为主要的性能问题。

CRT 和 C++ 标准库映射到 Win32 API,因此直接使用 Win32 会稍微更有效率。如果您需要编写可移植的 C 代码,请使用 CRT。

在 C++ 中,大多数情况下,使用标准库可以更轻松地生成符合惯用语的正确代码,这比直接使用 Win32 带来的边际性能提升更重要。

getenv这可能不是一个很好的例子,因为映射到 Win32 是微不足道的。考虑转而复制 <iostream>使用 Win32 API,好的库的好处变得更加清晰。

关于c++ - 哪个更有效 :A Win32 func. 或类似的 CRT func。在 VC++ 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4465134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com