【问题标题】:Is it possible to show errors when I write C++ code in C?当我用 C 编写 C++ 代码时是否可能显示错误?
【发布时间】:2020-06-20 00:01:04
【问题描述】:

我必须用 C 编写作业,但我不想只为这门课程下载新的 IDE。我想使用 VS 2019 和 MSVC 来编译它,但我想为 C 中没有的东西生成错误。这可能吗?

【问题讨论】:

  • 使用.c 文件。那些编译为 C 而不是 C++。
  • 当您在 VS 中使用 C 代码时,这应该会自动发生。最近他们甚至瞄准了标准兼容性,例如c99 预处理器等。
  • 您可能需要在编译标志中添加类似 -std=c99 的内容。
  • #ifdef __cplusplus / #error wrong compiler / #endif

标签: c++ c visual-studio visual-studio-2019


【解决方案1】:

默认情况下,MSVC 会将带有.c 扩展名的文件编译为“C”,将带有.cpp 扩展名的文件编译为“C++”。但是,如果(无论出于何种原因)这不是似乎是这种情况,您可以指定基于项目(甚至基于单个源文件)使用哪种语言。

为此,请在解决方案资源管理器中右键单击项目并选择“属性”命令。在弹出的对话框中,打开C/C++节点,选择Advanced项;然后,在Compile As 属性中选择“编译为C 代码”。像这样:

您可以对项目中的单个文件执行相同的操作,方法是右键单击该文件,而不是单击其包含的项目。

注意:Visual Studio (MSVC) 的普通“C”编译器本机使用非常旧的语言标准。您可能会发现 clang-cl 插件非常有用,因为它符合更现代的标准(它使用 LLVM 编译器)。您可以通过“Visual Studio 安装程序”程序安装它(如果您有 VS-2019)。

【讨论】:

    【解决方案2】:

    要在 Visual Studio 中编写 C 程序,创建项目时就像要设置 C++ 项目一样,但使用 .c 扩展名命名源文件。这将导致它们以 C 语法编译,因为具有 .cpp 扩展名的文件被假定为 C++ 源代码。

    并非所有 C99 功能都在 C 编译器中实现。如果您只想做一些复杂的项目,这是一个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 2014-01-21
      • 2018-12-09
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多