在重命名后,重命名为C ++的C文件将与C ++编译器兼容? 所以我有25个C文件和1个C ++文件,我不想创建Make文件或类似的东西。我想将所有C文件转换为C ++,以便简单地重命名工作或我该怎么办?
答案 0 :(得分:3)
总的来说,是的。您将不得不担心名为class
的变量等,sizeof
字符文字,名称修改以及其他一些很少遇到的问题。如果您要将C99转换为C ++,则必须删除一些C99功能。
关于名称修改,使用extern "C"
引用任何C符号。一个常见的习语是:
#ifdef __cplusplus
extern "C" {
#endif
extern int myGlobal;
extern int myFunction(void);
/* etc */
#ifdef __cplusplus
}
#endif
答案 1 :(得分:1)
取决于编译器上的somwhat(可能),但是一旦你用它命名,gcc就会将它们编译/修改为C ++。
这是C ++的一大优势,早在今天。有效的C是有效的C ++(主要是),所以转移到新语言是微不足道的。
答案 2 :(得分:1)
像往常一样,你没有给我们足够的信息,但如果你问的是微软和/或GCC编译器,他们会在没有明确信息的情况下,根据他们在扩展名上编译文件的方式。如果将.cpp文件重命名为.c,它将被编译为C源代码而不是C ++(反之亦然),但这绝不意味着该文件将编译而不会出错。
答案 3 :(得分:0)
它们可能编译也可能不编译为C ++文件。语言很接近,但不一样。例如,在C中,变量可以命名为“new”,但在C ++中是一个关键字,所以
int new = 12;
将在C中编译,但不在C ++中编译。 “class”,“public”,...等C ++关键字相同。
总体目标是使其编译或编译失败,但永远不会编译错误。虽然我不确定他们是否100%成功。