小编Rah*_*eel的帖子

使用g ++编译变量名为new的C代码时出错

我们正在尝试修改一些现有的C项目,即我们正在尝试从C代码中进行一些C++函数调用.我们尝试将编译器从gcc更改为g ++,但由于不兼容性,存在多个编译错误.我们要做的是在C代码中调用一些C++函数,而不对现有代码进行任何更改.简单地改变编译器似乎没有做到这一点.因此,我们试过以下:

#include <stdio.h>

extern "C"
{
    int func(int new ) {
        printf("in new func()\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我使用命令编译它

g ++ -c hello.c -o hello

我们得到以下错误

hello.c:9: error:expected ‘,’ or ‘...’ before ‘new’.
Run Code Online (Sandbox Code Playgroud)

现在我们知道new是c ++关键字.如前所述,我们试图不对现有的C代码进行任何修改.有什么建议 ?

这些不是唯一的错误.还有与结构声明相关的其他错误.

attr.c:75:错误:在'.'之前预期的primary-expression 代币

在attr.c,第75行是

static post_op_attr error_attr = {.attributes_follow = FALSE};

问题是在代码中还有其他C样式的结构声明和初始化,所以即使我们重命名变量名,我们仍然需要修改C程序的其他部分.因此,我们正在寻找一种方法来在不修改现有C代码的情况下向C代码添加C++函数调用.

c c++ gcc g++

0
推荐指数
1
解决办法
4219
查看次数

标签 统计

c ×1

c++ ×1

g++ ×1

gcc ×1