zoukankan      html  css  js  c++  java
  • C++ 为什么要使用#ifdef __cplusplus extern "C" { #endif

    经常看到别人的头文件 有这样的代码

    #ifdef __cplusplus
    extern "C" {
    #endif
    
    // C 样式 的函数
    
    #ifdef __cplusplus
    }
    #endif

    为什么要这样呢?

    因为 C 语言不支持重载函数 也就是同名函数,参数却不一样,C++支持,其编译器对函数名的处理方法不一样,导致 虽然都是C 样式的函数,不同编译器编译出来的不一样。

    如果 是 C语言 编译的中间文件,要C++ 来调用,那么就需要这个 了,C++ 有了 extern "C" 就会按照 C 语言的方法进行函数命名。这样编译出来的中间文件 就是C 样式的函数名,C C++ 都可以调用。

    如果 C++ 编译的中间文件,要C语言来调用,是不行的。

  • 相关阅读:
    ACwing 199 约数之和
    Acwing 222 青蛙的约会
    Acwing 220 最大公约数
    Acwing 200 Hankson的趣味题
    牛客 同余方程
    Acwing 198 反素数
    2020牛客多校 第六场B
    牛客 计数器
    Java基础-快捷键以及DOS命令
    A1111 Online Map (30分)(最短路径、Dijkstra+DFS)
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2620366.html
Copyright © 2011-2022 走看看