【问题标题】:Including a .c file in a c++ program在 c++ 程序中包含 .c 文件
【发布时间】:2021-03-16 18:12:29
【问题描述】:

我正在做一个项目,其中一半的代码是 c,一半是 c++。

现在我想在我的 cppprogram.cpp 中包含 cprogram.c。

当在 c 程序中包含 c 文件时,您可以使用

#include "cprogram.c"

无论如何都可以在 c++ 中包含 c 程序。

【问题讨论】:

  • 您永远不应该#include *.c 文件。跨语言做这件事更糟糕。
  • 您可以这样做,当且仅当该文件中的代码可以编译为 C++(编译器不关心 .c 扩展名)。因此,换句话说,它也必须是有效的 C++。但是,通常你不会混合这样的东西,如果你混合 C 和 C++,你会分别编译它们。说了这么多,你不问。作为新用户,请从tour 开始阅读How to Ask
  • “在 c 程序中包含 c 文件时” - 这不是通常在 C 程序中包含 .c 文件的方式。它通常是单独构建的编译源文件列表的一部分,通常作为构建模式的一部分,例如 Makefile、CMakeLists.txt、Visual Studio 项目文件等。#include-ing .c 文件在 c++ 源文件 (.cpp/.cxx) 中充其量只是一场赌博。 C 和 C++ 是不同的语言。有一个机会它会“起作用”(这个词用得非常松散)。您最好将该文件正确地合并为 C 源代码,在您的构建系统中编译为 C 目标。

标签: c++ c


【解决方案1】:

除了你通常don't include .c files,而是.h文件,并且下面是bad practice,你可以将C文件包含到.cpp/.hpp文件中,方法是将包含包装到@987654328中@:

cppprogram.cpp

extern "C" {
#include "cprogram.c"
}

有关一些示例,请参阅 here

【讨论】:

    【解决方案2】:

    只要您使用 Make 或 Cmake,您只需添加 #include "cprogram.c"。 C++ 也与 C 兼容,因此您可以添加它。

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 1970-01-01
      相关资源
      最近更新 更多