Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中使用(丑陋的)C代码+;与extern一起;";_C++_C - Fatal编程技术网

C++ 在C+中使用(丑陋的)C代码+;与extern一起;";

C++ 在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]的转换无效” 我对这个代码没有兴

我在编写丑陋的旧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]的转换无效”


<>我对这个代码没有兴趣,但是想知道是否有一种方法可以用C++编译器编译任何工作C代码?
(这只是C中的“工作”,而不是C++中的“实际问题是用GCC编译但不是用G+编译”< /P> < p>您有两个备选方案:

< >修复所有无效的C++或的错误
  • 用GCC编译C文件,并与C++文件
  • 链接
    <>代码>外部“C”<代码>只在调用函数时,使C++编译器使用C函数名。如果你选择用C++编译器编译那些函数,它就不会使这些函数用C规则实际编译。

    < p>你有两个备选方案:

    < >修复所有无效的C++或的错误
  • 用GCC编译C文件,并与C++文件
  • 链接
    <>代码>外部“C”<代码>只在调用函数时,使C++编译器使用C函数名。如果你选择用C++编译器编译这些函数,它就不能使这些函数用C规则实际编译。

    “如果有一种方法可以用C++编译器编译任何工作C代码?”不,尽管声明的目标是使C++“C”更好,这两种语言完全不同。尽量不要让事情变得更难。只要C++编译器用C代码>外部C“/Cuth>”看到C函数的声明,那么就可以用C编译器继续编译它,链接器也会同样高兴。这是两种语言中非常糟糕的代码。“如果有C++ C++编译器编译任何工作C代码的方法?”这是一个更好的C语言,这两种语言的语言不同。尽量不要让它变得更难。只要C++编译器看到C函数的声明用<代码>外“C”< /代码>,那么你就可以用C编译器继续编译它,链接器也会同样高兴。这是两种语言中非常糟糕的代码。