当前位置:  开发笔记 > 编程语言 > 正文

是不是说"C/C++"错了?

如何解决《是不是说"C/C++"错了?》经验,为你挑选了5个好方法。

我已经看到很多关于使用不恰当的"C/C++"表达的问题.我认为的原因是:

新手C和C++程序员可能不理解这两种语言之间的区别.

人们并不真正关心它,因为他们想要一个通用,快速和"肮脏"的答案

虽然C/C++有时可以解释为"C或C++",但我认为这是一个很大的错误.C和C++提供了不同的编程方法,即使C代码可以很容易地实现到C++程序中,我认为使用单个表达式(C/C++)引用两种不同的语言也是错误的.

无论如何,有些问题可以被认为是C或C++问题.你怎么看待这件事?



1> Steve Klabni..:

C/C++是C++早期的坚持,它们与今天相似得多.这起初并没有真正的错误,但总是越来越多.

基本结构足够相似,但大多数简单的问题仍然可以在两者之间起作用.有关此主题的整篇维基百科文章:http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B

由此产生的最大谬论是,因为有人精通C语言,所以他们在C++方面同样擅长.


由此产生的第二大谬论是,因为有人精通C++,所以他们同样擅长C语言.
@Chris - 绝对.我们在大学时使用了一些C++,但从未接触过C语言.有人认为我也认识C,当我告诉他们我没有时,我也笑了.

2> Jeff B..:

请记住,C++的原始实现只是作为预编译器输出"真实"编译器的C代码.所有C++概念都可以在普通的C中手动编码(但不是编译器强制执行).

当引用编译器和其他语言/编程工具时,"C/C++"也是有效的.实际上,每个可用的C++编译器都会编译 - 因此被称为"C/C++"编译器.大多数都有关于是否根据扩展处理.C和.CPP文件的选项,或者将它们全部编译为C或所有这些文件作为C++.

另请注意,可以从第一个C/C++编译器在单个编译器项目中混合使用C和C++源代码.这可能是模糊语言之间界限的关键因素.

为C++创建的许多语言/编程工具也适用于C,因为语言语法实际上是相同的.许多语言工具都有单独的Java,C#,Python版本 - 但由于强烈的相似性,它们有一个适用于C和C++的"C/C++"版本.



3> Alex Jenter..:

我们公司已经注意到以下奇怪的事实:如果求职者在他的简历中写下"高级C/C++知识",那么他通常很有可能不知道;)


C和C++的高级知识?

4> Joel Coehoor..:

这两种语言截然不同,但它们有很多共同之处.很多C代码在C++编译器上编译得很好.在早期学生级别,许多C++代码仍然适用于C编译器.

请注意,在某些情况下,代码的含义可能在两个编译器之间以非常微妙的方式有所不同,但我认为在某些情况下即使在不同品牌的C++编译器之间也是如此,如果你愚蠢到依赖于undefined或contested/non - 符合行为.



5> paercebal..:

是的,不是.

C和C++有很多共同之处(事实上,大部分C都是C++的一个子集).

但是C更倾向于"强制编程",而C++除了C范例之外,还有更容易访问的范例,如功能编程,通用编程,面向对象编程,元编程.

所以我看到"C/C++"项目要么是"C和C++的交集",要么"熟悉C编程以及C++编程",具体取决于上下文.

现在,这两种语言确实不同,并且对类似问题有不同的解决方案.AC开发人员会发现很难"解析/理解"C++源代码,而C++开发人员不会轻易识别C源代码中使用的模式.

因此,如果你想在"C/C++"表达式中看到C与C++的距离,那么一个很好的比较是GTK + C教程,在C++(GTKmm)中也是如此:

C:GTK + Hello World: http ://library.gnome.org/devel/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD

C++:GTKmm Hello World: http ://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/sec-helloworld.html

阅读这些资源非常具有启发性,因为就我解析它们而言,产生完全相同的东西,"相同"的方式(就语言而言).

因此,我猜C/C++"表达式"可以通过这些来源的比较来表达.

:-)

所有这一切的结论是,如果在以下情况下使用它是好的:

描述C和C++的交集

描述熟悉C编程以及C++编程

描述兼容代码

但它不会是:

证明在不需要兼容性的情况下保持C++(或C)子集中的代码与C(或C++)的兼容性(在大多数C++项目中,由于非常有限,因此不需要).

断言C和C++可以/应该以相同的方式编码(如上面的GTK +/GTKmm示例所示)

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有