【发布时间】: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 目标。