C++ 在C+中使用(丑陋的)C代码+;与extern一起;";
我在编写丑陋的旧C代码时遇到了一些问题。 我想使用C++编译器并使用这个旧代码的部分。 标题.hC++ 在C+中使用(丑陋的)C代码+;与extern一起;";,c++,c,C++,C,我在编写丑陋的旧C代码时遇到了一些问题。 我想使用C++编译器并使用这个旧代码的部分。 标题.h extern "C"{ int header(); } 标题c #include "header.h" int header(){ const int i=20; int *ptr = &i; } 这是使用带有警告的gcc(4.9.3)编译的(没有外部“C”),但在g++中存在错误: “从'const int*'到'int*'[-fppermissive]的转换无效” 我对这个代码没有兴
extern "C"{
int header();
}
标题c
#include "header.h"
int header(){
const int i=20;
int *ptr = &i;
}
这是使用带有警告的gcc(4.9.3)编译的(没有外部“C”),但在g++中存在错误:
“从'const int*'到'int*'[-fppermissive]的转换无效”
<>我对这个代码没有兴趣,但是想知道是否有一种方法可以用C++编译器编译任何工作C代码?
(这只是C中的“工作”,而不是C++中的“实际问题是用GCC编译但不是用G+编译”< /P> < p>您有两个备选方案: < >修复所有无效的C++或的错误
<>代码>外部“C”<代码>只在调用函数时,使C++编译器使用C函数名。如果你选择用C++编译器编译那些函数,它就不会使这些函数用C规则实际编译。 < p>你有两个备选方案: < >修复所有无效的C++或的错误
<>代码>外部“C”<代码>只在调用函数时,使C++编译器使用C函数名。如果你选择用C++编译器编译这些函数,它就不能使这些函数用C规则实际编译。“如果有一种方法可以用C++编译器编译任何工作C代码?”不,尽管声明的目标是使C++“C”更好,这两种语言完全不同。尽量不要让事情变得更难。只要C++编译器用C代码>外部C“/Cuth>”看到C函数的声明,那么就可以用C编译器继续编译它,链接器也会同样高兴。这是两种语言中非常糟糕的代码。“如果有C++ C++编译器编译任何工作C代码的方法?”这是一个更好的C语言,这两种语言的语言不同。尽量不要让它变得更难。只要C++编译器看到C函数的声明用<代码>外“C”< /代码>,那么你就可以用C编译器继续编译它,链接器也会同样高兴。这是两种语言中非常糟糕的代码。