我已经看到很多关于使用不恰当的"C/C++"表达的问题.我认为的原因是:
新手C和C++程序员可能不理解这两种语言之间的区别.
人们并不真正关心它,因为他们想要一个通用,快速和"肮脏"的答案
虽然C/C++有时可以解释为"C或C++",但我认为这是一个很大的错误.C和C++提供了不同的编程方法,即使C代码可以很容易地实现到C++程序中,我认为使用单个表达式(C/C++)引用两种不同的语言也是错误的.
无论如何,有些问题可以被认为是C或C++问题.你怎么看待这件事?
C/C++是C++早期的坚持,它们与今天相似得多.这起初并没有真正的错误,但总是越来越多.
基本结构足够相似,但大多数简单的问题仍然可以在两者之间起作用.有关此主题的整篇维基百科文章:http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B
由此产生的最大谬论是,因为有人精通C语言,所以他们在C++方面同样擅长.
请记住,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++"版本.
我们公司已经注意到以下奇怪的事实:如果求职者在他的简历中写下"高级C/C++知识",那么他通常很有可能不知道;)
这两种语言截然不同,但它们有很多共同之处.很多C代码在C++编译器上编译得很好.在早期学生级别,许多C++代码仍然适用于C编译器.
请注意,在某些情况下,代码的含义可能在两个编译器之间以非常微妙的方式有所不同,但我认为在某些情况下即使在不同品牌的C++编译器之间也是如此,如果你愚蠢到依赖于undefined或contested/non - 符合行为.
是的,不是.
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示例所示)