【问题标题】:If I treat my C code like C++ code, will it run like normal? [duplicate]如果我像对待 C++ 代码一样对待我的 C 代码,它会像往常一样运行吗? [复制]
【发布时间】:2021-01-10 02:53:12
【问题描述】:

我认为这是一个非常简单的问题。


上下文:我正在学习允许我在 Visual Studio Code 中运行 C++ 代码的教程,但我正在尝试运行 C 代码,而不是 C++ 代码。我试图运行的程序是一个简单的 Hello World 程序(如下所示),但这个问题适用于所有 C 代码。

#include <stdio.h>

int main() {
    printf("Hello World!")
}

【问题讨论】:

  • C 和 C++ 不一样,你应该使用 C 编译器来编译你的代码。
  • C 有一些 C++ 中不允许的特性(如可变长度数组)。您可以编写不会被 C++ 编译器编译的有效且正确的 C 代码。
  • C 和 C++ 是从一个共同的分支分支出来的,当时称为 C,几十年前的祖先。从那时起,C 演变成更好的 C,C++ 成为更好的 C++。两者看起来都不完全像它们分支的根。
  • 另外值得注意的是,Visual Studio 的 C 支持令人惊讶。我相信他们现在支持 C11 但不支持 C99。

标签: c++ c


【解决方案1】:

C 和 C++ 是不同的语言。尽管它们的语法相似,但某些结构的语义是不同的。

C++ 包含了 C 的很大一部分,但也存在分歧。您不能只是假设编译为 C++ 的 C 代码会给出相同的结果。

您可以编写有效的 C 和有效 C++ 的代码,但在两种语言中的含义不同。

【讨论】:

    【解决方案2】:

    虽然 C++ 在很大程度上可以看作是 C 的超集,但有些结构是无效的 C++,而另一些则具有不同的行为。

    不要处理这个问题,而是告诉你的编译器以 C 而不是 C++ 为目标。所有流行的 C++ 编译器也支持 C(至少一个版本)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      相关资源
      最近更新 更多