-3

我是 ac# 程序员,但今天我正在考虑迁移到 c++,我想知道的第一件事是有 2 种类型的项目 CLR 控制台应用程序和 Win32 控制台应用程序

另外让我感到困惑的是,在 Win32 中,我可以使用 printf 或 cout 将行写入控制台

而在 CLR 中,我也可以使用熟悉的 Console::WriteLine

我很困惑拥有所有功能只是为了写一行有什么意义,CLR和Win32应用程序之间有什么区别

4

2 回答 2

4
  • printf是C方式。它不是类型安全的,但速度很快。它在标准 C 库上运行。(C++ 可以做到这一点,但这不正常。)
  • cout是C++方式。它是类型安全的,并且是 C++ 中的常规方式。它在标准 C++ 库上运行。
  • WriteLine是 .Net 方式,因此是 C++/CLI 方式。它在 .Net 库上运行。
  • WriteConsole是Windows的方式。这是一个原始的操作系统调用,所以速度很快,但很难使用且不可移植。不要使用这个。

至于比较语言,C 是一种不太复杂的语言(使您的代码更复杂),但 C++ 有模板,因此它们的速度大致相同,具体取决于任务。它们是普通的 Win32 应用程序,这意味着它们已预先编译为原始机器代码,并由处理器直接运行。C++/CLI 运行在 .Net 框架之上,这意味着它在由 .Net 框架运行时进行编译,并且它的运行速度往往比 C 或 C++ 慢。

对这一切持保留态度。 WriteConsole能做别人不能轻易做的事。.Net 框架在某些方面速度惊人。但一般来说,使用与您的语言相关的版本。

于 2012-11-09T17:51:30.690 回答
1

CLR,公共语言运行时,用于构建 .net 应用程序。如果您不需要 .net 库,只需使用 Win32 控制台。

Cout 是 C++ 命令,其中 printf 是 C 命令。C++ 仍然支持很多 C 命令。大多数时候我使用 C++ 变体,但由于它们完成工作的方式存在差异,您可能希望在某些情况下使用旧的 C 命令。

另一个注意事项:对于从 C# 迁移到 C++ 的人来说,只是一个有用的建议:您需要自己管理内存。您创建的新对象需要被删除,没有像 C# 中那样的内置内存管理器。

于 2012-11-09T17:49:55.247 回答