zoukankan      html  css  js  c++  java
  • 【校招面试 之 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 哪个文件了。

  • 相关阅读:
    VFIO PF SRIOV IOMMU UIO概念解释、关联
    集群节点间网络通信TIPC
    1. C语言中的数据结构.md
    第三讲. COTS包交换介绍
    SYSTick 定时器
    热电偶基础知识介绍-04
    附录1· 初识Linux操作系统
    热电偶冷端补偿
    珍惜是最宝贵的财富。
    CSS 设置标题文字只显示一行,多余显示省略号
  • 原文地址:https://www.cnblogs.com/xuelisheng/p/9371769.html
Copyright © 2011-2022 走看看