1
我遇到了一些难以编写的旧C代码的问题。 我想使用C++编译器并使用此旧代码的一部分。在C++中使用(丑)C代码与extern“C”
header.h
extern "C"{
int header();
}
header.c
#include "header.h"
int header(){
const int i=20;
int *ptr = &i;
}
这是使用gcc(4.9.3)配有一个警告(没有外部的 “C”)编译但在G ++有错误: “从'const int *'无效转换为'int *'[-fpermissive]”
我对此代码没有直接的兴趣,但想知道是否有办法让任何工作C cod用C++编译器编译? (这只是一个例子,C,但不是在C什么是“工作” ++像真正的问题是用gcc编译但不使用g ++)
“如果有一种方法可以使用C++编译器编译任何可用的C代码?”不,尽管宣布的目标是让C++成为“更好的C”,但两者结束了相当不同的语言。 – dasblinkenlight
尽量不要让它变得更难。只要C++编译器用'extern“C”看到C函数的声明,那么你可以继续用C编译器编译它,连接器也会同样开心。 –
这是两种语言中非常糟糕的代码。 – Olaf