我是一名c#程序员,但今天我正在考虑迁移到c ++,我首先想到的是有两种类型的项目CLR控制台应用程序和Win32控制台应用程序
令我困惑的是,在Win32中,我可以使用printf或cout写入控制台行
在CLR中我也可以使用熟悉的Console :: WriteLine
我完全感到困惑的是,只要写一行就能完成所有这些功能,以及CLR和Win32应用程序之间的区别是什么
答案 0 :(得分: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框架非常快速地 。但一般来说,请使用与您的语言相关联的版本。
答案 1 :(得分:1)
CLR,Common Language Runtime,用于构建.net应用程序。如果您不需要.net库,只需使用Win32控制台即可。
Cout是一个C ++命令,其中printf是一个C命令。 C ++仍然支持很多C命令。大多数时候我使用C ++变体,但由于它们完成工作的方式不同,您可能希望在某些情况下使用旧的C命令。
另一个注意事项:对于从C#转移到C ++的人来说,只需要一些有用的建议:您需要自己管理内存。您创建的新对象需要删除,没有像C#中那样的内置内存管理器。