您的位置:首页 > 编程语言 > C语言/C++

c++(8)-c++调用c

2020-02-16 17:57 239 查看

在C++中编译器,兼容c编译方式,优先使用c++的编译方式。

extern关键字能强制让C++编译器进行c语言方式编译。

add.h

int add(int a, int b);

add.c

#include "add.h"
int add(int a, int b)
{
return a + b;
}

编译 

gcc -c add.c -o add.o

方式一:

main.c

#include <stdio.h>
#include "add.h"
int main()
{
int c = add(1, 2);
printf("c = %d\n", c);
return 0;
}

编译不通过

g++ main.cpp add.o

方式二:

#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif

#include "add.h"

#ifdef __cplusplus
}
#endif

int main()
{
int c = add(1, 2);

printf("c = %d\n", c);

return 0;
}

编译通过

g++ main.cpp add.o

 执行

./a.out

 

__cplusplus

    宏__cplusplus是c++编译器内置的宏,可以在编译c/c++代码时判断当前编译器是否为c++编译器

编译方式

C++编译方式将函数名和参数列表编译成目标名(存在重载)

C编译方式将函数名编译成目标名(不存在重载)

 

转载于:https://my.oschina.net/u/3472252/blog/917027

  • 点赞
  • 收藏
  • 分享
  • 文章举报
choudan8345 发布了0 篇原创文章 · 获赞 0 · 访问量 160 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: