• 【校招面试 之 C/C++】第29题 C/C++ 关键字extern


    1、extern "C"

    extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名

    #ifdef __cplusplus /* 如果采用了C++,如下代码使用C编译器 */
        extern "C" { /* 如果没有采用C++,顺序预编译 */
    #endif
    /* 采用C编译器编译的C语言代码段 */
    #ifdef __cplusplus /* 结束使用C编译器 */
        }
    #endif
    

    2、关键字extern

    是全局变量声明,只要声明全局变量就默认前面加extern(程序员可以不加,但编译器默认加上)。若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下。

    例如:

    #include "my_Fun.c"
     extern int b;        //b是在my_Fun.c中声明了的一个全局变量        


    这个extern 是个声明可以在任何地方声明,引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错)

    这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了。

  • 相关阅读:
    IOS 线程 +并发
    ios
    ios
    ios uitableviewcell动态计算高度
    ios 画圆环进度条
    ios -几种常见定时器
    ios 加载本地html css文件 ps:css和html必须在同一文件夹下面
    UISegmentedControl 分段器加载不同的viewcontroller
    iOS ----Pods-resources.sh Permission denied
    UIView的layout(布局)与draw(绘图)
  • 原文地址:https://www.cnblogs.com/xuelisheng/p/9371769.html
Copyright © 2020-2023  润新知