C语言在源代码编写和链接方面很大程度上兼容. 因此，两种语言的开发工具（例如IDE和编译器）通常被集成到单个产品中，程序员可以自己选择编写的是C还是C ++，开发工具通常会根据程序员的选择使用不同的编译器和链接器或不同的库。即便如此，C并不是C++的子集， 一般的C语言代码不经修改很难被一些严格符合C++标准的C++编译器成功编译；同样，几乎所有的C++代码都无法被C语言编译器编译。 在这篇文章中，我们主要讨论的是它们在公共部分的差异，比如在C语言中合法的代码到了C++中成为了不合法的代码，或一段代码在