【问题标题】:Is it possible for Visual C++ 2008 Express Edition to compile C source code?Visual C++ 2008 Express Edition 是否可以编译 C 源代码?
【发布时间】:2010-06-28 13:32:25
【问题描述】:

我希望学习 C,这样我就可以理解许多主要编程语言背后的概念,而无需 C++ 拥有的快捷方式或 Java 拥有的垃圾收集器。我打算先学习 C,然后再去 C++,我目前正在学习计算机科学。

无论如何,我想知道用于 Windows 机器的 Visual C++ 2008 Express Edition 编译器是否能够编译 C 源代码。我会这么认为,因为您可以将 C 实现为 C++。 然而,当我尝试创建文件时,没有 C 选择。我可以创建头文件,但我不确定 C 或 C++ 需要哪些文件。我知道的信息很少。

如果我不能用那个编译器编译 C,还有其他编译器可以编译 C 吗?

谢谢。

【问题讨论】:

    标签: c compilation compiler-construction


    【解决方案1】:

    如果你用 .c 扩展名保存它,它会将源代码编译为 C89 的方言。

    它不会编译 C99。

    【讨论】:

      【解决方案2】:

      只需将文件重命名为“.c”,它将以“C”模式编译。

      或右键单击项目选择属性。然后导航到配置属性->C/C++->高级并将“编译为”设置为“编译为 C 代码 (/TC”)。括号中的位是您想要使用的命令行开关。

      【讨论】:

      • 谢谢 :) 这些很容易按照说明进行操作,我很容易更改了设置。
      【解决方案3】:

      是的,你可以。

      如果您给源文件添加“.c”扩展名,它将被编译为 C 代码。

      您还可以在项目选项(针对整个项目)或文件选项(针对某个文件)中指定编译模式(C 或 C++)。

      【讨论】:

        【解决方案4】:

        没问题,VC 有一个兼容 C89 的 C 编译器。它从文件扩展名中自动检测语言,.c 文件将被编译为 C。或者您通过右键单击文件、属性、C/C++、高级、编译为 = /TC 来强制它。避免这种情况。

        当您开始使用 Win32 控制台应用程序项目模板时,您需要进行一些更改。该模板是在假设您使用 C++ 的情况下设计的。右击stdafx.cpp,重命名为stdafx.c。重复项目的 .cpp 文件。现在所有内容都将编译为 C,包括对预编译头文件的支持。

        顺便说一句,对于立即开始使用 C++ 有一些话要说。也许是另一个问题的好话题。

        【讨论】:

        • 如果我从 C++ 开始,我将无法理解 C++ 自动执行的幕后操作。我也没有以前的编程经验,所以这将有助于我理解程序所需的例行程序。我认为。
        • 我不想用十英尺长的杆子碰它,但假设 C 将有助于学习 C++ 是有问题的。它们是非常不同的语言。正如我所说,开始一个关于它的新问题。
        【解决方案5】:

        还有一点值得一提,你应该可以毫无问题地将 C 代码编译为 C++。如果您使用外部代码,您可能会遇到链接问题,因为 C++ 编译器将使用不同的调用约定(和名称修改),但如果您只是使用自己的代码,这应该不是问题。

        【讨论】:

        • 不,您可以以非惯用方式编写 C 的特定子集,C++ 会编译它,但通常任何具有动态内存的 C 代码都会利用 C 较弱的类型系统并且没有强制转换这是 C++ 更严格的类型系统所需要的。
        • 嗯,所以你对我投了反对票,因为 C++ 需要来自 malloc 的显式转换?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-15
        • 1970-01-01
        相关资源
        最近更新 更多