加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c -cli – C/C++LI:Console :: WriteLine()或cout?

发布时间:2020-12-16 04:55:36 所属栏目:百科 来源:网络整理
导读:我要回到学校,我们必须上C班. 我熟悉这种语言,但有一些我从未听说过的事情…… 一般来说,我的老师说普通C是“不安全的”.它生成“不安全的代码”(无论这意味着什么).这就是为什么我们必须使用应该制作“安全”代码的C/C++LI. 现在…… CLI不仅仅是Microsoft
我要回到学校,我们必须上C班.
我熟悉这种语言,但有一些我从未听说过的事情……

一般来说,我的老师说普通C是“不安全的”.它生成“不安全的代码”(无论这意味着什么).这就是为什么我们必须使用应该制作“安全”代码的C/C++LI.

现在…… CLI不仅仅是Microsoft .NET扩展吗?

他还告诉我们使用Console :: WriteLine()而不是cout.由于Console :: WriteLine()是“安全的”而cout是“不安全的”.

这一切对我来说都很奇怪……任何人都可以澄清一下吗?

谢谢!

解决方法

说得非常生硬和简单.

安全

通过“安全代码”,您的老师可能意味着托管代码.这是你不必“关心”指针和内存的代码,你有一个垃圾收集器来处理你的问题.你正在处理参考.像这样构建的语言的例子是java和c#.代码被编译为“虚构”操作码(中间语言,IL for C#),并编译和运行实时(JIT,及时编译). IL生成的代码必须转换为真正的基于本机平台的操作码,在java中这是jvm所做的事情之一.您可以轻松地从这些语言中反汇编代码.并且它们可以在几个平台上运行而无需重新编译.

不安全

通过“不安全的代码”,教师意味着普通的本地c非托管代码,其中所有内存和资源管理都由您处理.这为人为错误,内存泄漏,资源泄漏和其他内存错误留出了空间,通常不会在托管语言中处理.它还编译为纯字节码(本机程序集操作码),这意味着您必须为要定位的每个平台编译代码.您将遇到必须为每个平台制作大量特定代码,具体取决于您要编写的代码.很高兴看到线程相关的简单事物,例如线程依赖,现在是c标准的一部分.

然后你有c / CLI,基本上是混合.您可以在c中使用.net框架中的托管代码,它可以用作桥接器,并用于创建包装器.

Console :: WriteLine()是托管的.net代码,安全.

cout是来自< iostream>的标准iso c,不安全

You find a related post here,with a broader answer here和here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读