gpt4 book ai didi

c++ - 在 C++ 中使用(丑陋的)C 代码与 extern "C"

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:47 24 4
gpt4 key购买 nike

我遇到了一些编写丑陋的旧 C 代码的问题。我想使用 C++ 编译器并使用部分旧代码。

标题.h

extern "C"{
int header();
}

标题.c

#include "header.h"
int header(){
const int i=20;
int *ptr = &i;
}

这是使用带有警告的 g​​cc (4.9.3) 编译的(没有 extern "C"),但在 g++ 中存在错误:“从‘const int*’到‘int*’的无效转换 [-fpermissive]”

我对这段代码没有直接兴趣,但想知道是否有办法让任何可用的 C 代码用 C++ 编译器编译?(这只是一个例子,什么在 C 中“有效”但在 C++ 中无效,就像真正的问题是用 gcc 编译而不是用 g++ 编译)

最佳答案

你有两个选择:

  1. 修复所有无效的 C++ 错误,或者
  2. 用gcc编译C文件,并与C++文件链接

extern "C" 仅使 C++ 编译器在调用函数时使用 C 函数名称。如果您选择使用 C++ 编译器编译这些函数,则不会使这些函数实际使用 C 规则进行编译。

关于c++ - 在 C++ 中使用(丑陋的)C 代码与 extern "C",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40787373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com