C++ 用VisualStudio2005编译C程序?

C++ 用VisualStudio2005编译C程序?,c++,c,visual-studio,visual-studio-2005,C++,C,Visual Studio,Visual Studio 2005,我可以使用VisualStudio2005编译简单的C程序吗?似乎只有选项可以为VB、C或C++创建项目。如果这是可能的,我需要做什么?< /P> < P>只使用C++选项。如果你希望使用.c扩展而不是.cp,你可以,但是普通的C在C++项目中编译得很好。 选择C++控制台,你应该很好。VS将倾向于使用.CPP/ETC扩展,但应该能够使用.c和.h扩展,一般来说,C是C++的子集。对于一个简单的C程序,只需调用它为C++项目。我没有一个软件的拷贝,但是如果你用'.c'扩展创建一个文件,它会被当作

我可以使用VisualStudio2005编译简单的C程序吗?似乎只有选项可以为VB、C或C++创建项目。如果这是可能的,我需要做什么?< /P> < P>只使用C++选项。如果你希望使用.c扩展而不是.cp,你可以,但是普通的C在C++项目中编译得很好。

选择C++控制台,你应该很好。VS将倾向于使用.CPP/ETC扩展,但应该能够使用.c和.h扩展,

一般来说,C是C++的子集。对于一个简单的C程序,只需调用它为C++项目。我没有一个软件的拷贝,但是如果你用'.c'扩展创建一个文件,它会被当作C.我应该补充:……就像在90年代初我使用过的VisualStudio和Visual C++版本中所做的那样。 更新:对于@R,他的编程语言并不像他认为的那样最新:

C++是C语言的直接后代,它 保留几乎所有的C作为子集。 C++提供更强的类型检查 比C和直接支持更广泛的 比C语言更广泛的编程风格。 C++是一个更好的C 它支持编程风格 使用C完成了更好的类型检查 更多的符号支持 效率的损失。同时 从某种意义上说,ANSIC是一个比K&R更好的C 此外,C++支持数据 抽象,面向对象 编程和泛型编程 参见C++程序设计语言第三 版本附录B讨论 兼容性问题可供选择 正在下载[我的重点。]


<作者>是一个对C++有理解的研究员。在你试图通过几乎所有的内容来保存自己之前,请阅读我所写的:一般来说,C.…

< p>为了给你一个更具体的答案,VisualStudio肯定会在C++项目下编译C代码。它甚至会编译成C代码,而不是C++ VisualStudio将任何一个.c扩展当作C代码处理,默认情况下编译。尽管仅针对VS2008和VS2010进行了规定,但在有关的文档中对此进行了确认。甚至有一个编译器命令行开关/TC和一个选项,在任何.c文件的属性页中,将其编译为C++代码,而不是C默认值。

< P>我试图给出关于问题的图形反馈。从VisualStudio2008中的project 1PassCompilerFixNotation和源文件emitter.c的属性对话框中获取的屏幕截图应该与VS2005相同

对于整个项目:

在解决方案资源管理器中的“项目”节点上单击鼠标右键,然后选择“属性”

通过将条目Compile设置为Advanced选项卡中的条目,可以在

编译为C代码/TC 编译为C++代码/TP 为了这个项目。见下图

对于特定文件:

在解决方案资源管理器中的C/C++文件上单击鼠标右键,然后选择“属性”

通过将条目Compile设置为Advanced选项卡中的条目,可以在

编译为C代码/TC 编译为C++代码/TP 对于特定的文件。见下图

注意:特定文件设置超过项目默认设置


Microsoft Visual Studio 2005附带了一个可靠的C89/90编译器。在VS2005中使用C没有问题。扩展名为.c的文件将自动编译为c文件。或者,您可以使用项目设置/命令行开关覆盖语言,如其他答案中所述


请记住,VS编译器只支持经典的C89/90。C99的特性没有支持,甚至没有提到C11。

C不是远程的C++子集。为了进一步阐述和解释我的1,教一个新手C编码器用C++编译器编译他们的C代码也许是最糟糕的建议,除非你的目标是让他们讨厌C。C和C++的交叉是一个语言,有C++和C的所有缺点,没有一个优点。如果没有其他的,遵循你的建议的人最终会滥用MALOC,并且很可能会编写由于C字符编译器的类型和大小等问题而导致的在实际C编译器上失败的代码。实际上,R,教初学者使用C++编译器是他们能遇到的最好的事情之一。C++在L.C中强制执行很多需要的东西,但是,如果你读我的实际ANWSWER,你会注意到我建议用'.c'扩展创建文件,这会使它被当作C。不管C的语句的作者的名字是C++的一个子集,这个声明显然是错误的。曾经有一段时间,C在这方面是松散的,但这段时间已经过去了。今天发表这样的声明只会让人困惑。这个问题是非常真实的,因为问题是关于微软Visual C++产品。它没有实现C99或任何更现代的东西 你是对的,这很好用。但更简单的是只使用.c文件扩展名。如果保留默认设置,VS会自动将此类文件编译为C代码。