c++ - 为什么不将 .cpp 转换为 c 程序文件?

标签 c++ c compilation

<分区>

我读到大多数新的C++编译器都可以编译C和C++程序,还读到不要将扩展名.cpp用于C编程文件,以告知编译器在C中编译。什么是使用 C++ 编译器的“C 编译”和“C++ 编译”的区别。给一个C程序扩展名.CPP用C++编译器编译有什么问题吗?

给定一个带有 C++ 约束的 C 程序(比如不使用类型名、新的、私有(private)的、类等作为标识符),与 C 编译器相比,C++ 编译器编译带有 .CPP 扩展名的 C 程序有何不同。

最佳答案

What is the difference in "C compile" and "C++ compile" using a C++ compiler.

各自根据不同语言的规则解释源代码。一种解释为 C,另一种解释为 C++。

Is there any problem when a C program is given extension .CPP and compiled with a C++ compiler ?

是的。尽管 C 与 C++ 的一个子集非常相似,但在很多情况下,有效的 C 并不是有效的 C++。例如,某些关键字在 C++ 中是保留的,但在 C 中不是:

int private = 42;
int class = 7;

C 中允许一些类型转换,但 C++ 中不允许

char * array = malloc(32);

如果您对 C++ 编译器正在编译的语言撒谎,则其中任何一个以及除此之外的更多内容都会导致 C++ 编译器失败。

关于c++ - 为什么不将 .cpp 转换为 c 程序文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28557242/

相关文章:

c++ - 如何在 Linux 中将 OpenCV 添加到 LD_LIBRARY_path?

c++ - Visual Studio C++ 链接器警告 : LNK4006 with C Run-Time (CRT)

c - 如何使用 GDB 设置具有整数值的 double 变量?

javascript - Webpack 将 config.js 编译为 config.json

javascript - 如何将 JavaScript array() 转换为 ATL/COM 数组?

c++ - 受 VCL 影响的基准测试

c++ - 如何在后续流程启动时确保 RNG 的唯一种子?

C:为什么 size_t 不是 C 关键字?

c++ - 限制函数在代码库中的使用次数

wcf - 根据配置更新服务引用地址?