C C++混合编程整理


前言

C C++混合编程翻译整理。


一、Need to know

  1. main()必须用C++编译器编译 同样,static initialization常量来对静态变量进行初始化
  2. C++编译器应该direct(v.)引导linking process链接过程
  3. C和C++的编译器probably可能需要来自一样的vendor厂商和兼容的版本

二、Call a C function from C++

在C++代码中,只要声明external "extern “C” ,然后就可以在C和C++代码中调用。

声明

    // C++ code
    extern "C" void f(int); // one way
    extern "C" {    // another way
        int g(double);
        double h();
    };
    void code(int i, double d)
    {
        f(i);
        int ii = g(d);
        double dd = h();
        // ...
    }

定义

   /* C code: */
    void f(int i)
    {
        /* ... */
    }
    int g(double d)
    {
        /* ... */
    }
    double h()
    {
        /* ... */
    }

注意

函数重载是C++数据类型规则,不是C的规则。
所以不能用错误数量的参数调用extern “C” 中声明的函数。

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值