C和C++混合编程

  • Post author:
  • Post category:其他



#include

<iostream>


//cpp

中要想写出一套

c\c++

都能调用的函数,这个函数只能按照

c

语言方式编译

//extern “C”

的作用能够实现

c\c++

混合编程


实现

c\c++

之间函数互调


//2

使用场合


在。

cpp

中包含

c

语言的头头文件

//#include “test.h”


//extern “C”

的意思告诉编译器


按照

c

语言的方式去编译函数


函数名最终都变为

_

开头


不会实现名字改编机制


1

第一种

c++

中调用

c

中函数的方法

//extern “C” int sum (int ,int );

//

//extern “C” int sub(int a,int b);


// 2

第二种

c++

中调用

c

函数的方法

extern



“C”

{

#include

“test.h”

#include

“testc.h”

//  int sum (int ,int );

//  int sub(int a,int b);

}


//mangled nameing

函数名称改变机制

c

语言不支持函数重载

c++

默认不能直接调用

c

中的函数

using


namespace



std


;


void

test(

int

a)

{


cout

<<a<<

endl

;

};


void

test(

int

b,

int

a)

{


cout

<< b+a <<

endl

;

};


int

main(

int

argc,

const


char

* argv[]) {



// insert code here…




std


::


cout


<<

“Hello, World!\n”

;


test

(

10

,

10

);


int

sums=

sum

(

10

,

20

);


cout

<<sums<<

endl

;


int

subs=

multipsss

(

30

,

20

);


cout

<<subs;


return


0

;

}



版权声明:本文为BianHuanShiZhe原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。