美文网首页
C++调用C语言代码:extern "C"

C++调用C语言代码:extern "C"

作者: 詹相兵 | 来源:发表于2019-02-28 17:33 被阅读0次

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。

加上extern "C"修饰后的代码,会按C语言的规范标准进行编译,而不是C++的。

由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;

而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。

一个简单的例子:

在空项目中,创建一个a.h,简单定义一个函数void function()

a.h

对应的a.c,简单实现一下void function()的功能

a.c

在main函数中调用,注意:文件的后缀.c,表示C语言编译方式;.cpp后缀则表示C++的编译方式

错误代码如下:表示未解析的外部符号 

解决方法:

1、统一后缀:把main.cpp的后缀改为.c(main.c)。

或是把a.c改为a.cpp

2、当团队合作时,有的人写C,有的人写C++,拿别人的代码文件来用的时候,谁也不会慢慢一个一个地去改。简便的处理方式:extern “C“

相关文章

  • 【转】extern "C"的主要作用

    extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示...

  • C++调用C语言代码:extern "C"

    extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。 加上extern "C"修饰后的...

  • 是否还需要在源文件中添加“extern C”?

    c++调用c语言的函数时我们一般在c语言函数声明处用extern "C"包c函数。例如: extern "C"的主...

  • extern 关键字

    被 extern "C"修饰的代码会按照 C语言 的方式编译。 当 C++ 调用 C语言库的时候,就需要用到 ex...

  • c和c++的关系

    1 在c++中调用被c编译器编译后的函数,为什么要加extern "c"; 因为c++语言支持函数重载,而c语言不...

  • c++ 入门 - 函数重载,extern

    c++的输入输出 输入 输出 例子 extern extern 修饰符可用于c++中调用c函数的调用规范比如在c+...

  • extern "C"

    extern "C"主要用在c++调用c编写的函数或者相关代码时使用,因为c和c++的函数、变量结构类似,但是编译...

  • C与C++代码如何互相调用

    1. C如何调用CPP代码 在C中如何调用C++函数的问题,简单回答是将函数用extern "C"声明; 然后C代...

  • c++调用 C导致的无法解析的外部符号

    1、C++中如何调用C代码 如果去掉extern "C"代码块形式, 则出现LNK2019错误:无法解析的外部符号...

  • 找不到工作的人还在学习(c++)

    一、程序设计基础概念 1、在c++程序中调用被c编译器编译后的函数,为什么要加extern “C”? c++语言支...

网友评论

      本文标题:C++调用C语言代码:extern "C"

      本文链接:https://www.haomeiwen.com/subject/hyfkuqtx.html