我正在阅读Relationship between C and C++并且对这个问题的技术性更感兴趣。
例如,如果你想在C ++中使用线程,你(假设一个Linux平台)会使用pthreads吗?我知道C ++有STL和Boost库填补了很多空白......但是C ++程序员通常是否使用C代码库?
我正在尝试决定是否值得学习C ++,因为我已经知道C(不可否认,学习C不是先决条件并且可能是一个缺点)但是我不确定C ++和C库等是如何结合的一起....
答案 0 :(得分:5)
通过C ++ 03,是的,你可能会使用pthreads。当前的C ++ 11草案已经在标准库中内置了线程,因此您可能会使用它(尽管它基于pthreads,因此它们之间几乎没有实际区别)。
然而,总的来说,是的,直接从C ++使用C库很容易,并且在没有C ++库的情况下,使用它们很常见。就此而言,即使存在C ++库,有些人有时也更喜欢使用C库。
答案 1 :(得分:2)
C库经常在C ++中使用。有时它们会被包含在更好的C ++界面中,有时则不然。例如,围绕C socket API的许多瘦C ++包装器,但人们经常直接使用套接字。我一直在C ++中直接使用各种POSIX函数。
你确实需要确保你已经理解了C(尝试将C ++字符串直接传递给期望C字符串的C函数的新C ++程序员的数量......)。并且需要时间来学习做某些事情的最佳方法(需要指向数据数组的C函数?只需给它C ++向量的第一个元素的地址,不要手动分配/构建新的数组)。
答案 2 :(得分:1)
如果您只关心C和C ++库的互操作性。
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B
是一个非常好的链接。
如果你从未做过反对的面向编程,我建议尝试一下C ++。两者都是图灵完整的语言,没有什么C ++做不到C已经不能做到的。