在VisualStudio2010中编译“C”文件时,它是否编译为C++;文件 >代码> C 和 C++ >代码>是不同的语言,我仍然可以在Visual Studio 2010下在C++项目中编译它们。为什么呢?编译器是否将 C++ 文件解释为 C++ >代码> >?< /p> < p>是的,它被编译为C++文件,除非源文件具有“.c”扩展< /p> 除少数例外外,C语法也是有效的C++语法,所以C源代码经常会被C++编译器成功编译。 < P>不,它是编译成C代码的。 VisualStudio中的C++项目可以包含C++和C代码。cl编译器识别文件扩展名并相应地进行编译

在VisualStudio2010中编译“C”文件时,它是否编译为C++;文件 >代码> C 和 C++ >代码>是不同的语言,我仍然可以在Visual Studio 2010下在C++项目中编译它们。为什么呢?编译器是否将 C++ 文件解释为 C++ >代码> >?< /p> < p>是的,它被编译为C++文件,除非源文件具有“.c”扩展< /p> 除少数例外外,C语法也是有效的C++语法,所以C源代码经常会被C++编译器成功编译。 < P>不,它是编译成C代码的。 VisualStudio中的C++项目可以包含C++和C代码。cl编译器识别文件扩展名并相应地进行编译,c++,c,visual-studio-2010,visual-studio,C++,C,Visual Studio 2010,Visual Studio,以.c结尾的文件编译为c代码。以.cp或.cxx结尾的文件被编译为C++。这可以改变为文件< P> C不是C++,但是这两种语言是这样设计的,以保持兼容性。 有一个公共子集允许写一个H文件,其中可以包含在C和C++编译单元中;这取决于语言标准 更重要的是,尽管标准没有规定,但它们默默地假设在给定的机器上,这两种语言将共享一个所谓的ABI应用程序二进制接口。这允许从一种语言到另一种语言进行调用 不同于C语言、java语言或VB .NET语言,它要求一个项目的所有文件都被编译成一个批处理,C++和C

以.c结尾的文件编译为c代码。以.cp或.cxx结尾的文件被编译为C++。这可以改变为文件

< P> C不是C++,但是这两种语言是这样设计的,以保持兼容性。

有一个公共子集允许写一个H文件,其中可以包含在C和C++编译单元中;这取决于语言标准

更重要的是,尽管标准没有规定,但它们默默地假设在给定的机器上,这两种语言将共享一个所谓的ABI应用程序二进制接口。这允许从一种语言到另一种语言进行调用

<>不同于C语言、java语言或VB .NET语言,它要求一个项目的所有文件都被编译成一个批处理,C++和C++是基于单个编译单元的思想。因此,可以将不同类型的文件(C,C++,Asm)包含到单个项目中。 然而,人们可以从另一个角度来看待它。我有一个C#项目,其中一些C#源由T4生成。我可以将其视为一个项目,其中生成的程序集由C#文件生成,但C#文件本身可以通过一些准备步骤(如T4转换)获得


同样,您可以将C++项目视为一个项目,其中由目标文件生成结果集,但可以通过一些准备步骤获得目标文件,例如编译C或C++编译单元。而且,你可以把准备好的对象文件也包含到你的项目中(通常是批处理的,称为库)。< /P> < P>不,它不是编译成C++,因为VisualStudio同时支持C和C++。 如果你编译c程序,它只编译为c。。。如果你想在一个程序中编译这两个程序,你只需添加C和C++的头文件。(即)包括


如果你同时使用这两种报头,你可以同时编译这两个程序,也可以使用C++中的PrtfF扫描程序,而U可以在C编程中使用CIN和CUT。谢谢大家!

为此使用/TP选项