• 【C】关于extern的理解


    Date: 2018/9/25


    1、参考

    https://www.cnblogs.com/mch0dm1n/p/5727667.html
    https://www.cnblogs.com/Lunais/p/5991135.html

    2、extern用法理解

    extern:函数声明符,表示当前声明的函数是在外部定义的。说明此变量或者函数是在别的文件中定义的,要在此处引用。
    1、extern修饰函数声明

    从本质上来讲,变量和函数没有区别。函数名是指向函数二进制块开头处的指针。

    如果文件a.c需要引用b.c中的函数,比如在b.c中原型是int fun(int mu),那么就可以在a.c中声明extern int fun(int mu),然后就能使用fun来做任何事情。

    就像变量的声明一样,extern int fun(int mu)可以放在a.c中任何地方,而不一定非要放在a.c的文件作用域的范围中。

    对其他模块中函数的引用,最常用的方法是包含这些函数声明的头文件。
    使用extern和包含头文件来引用函数有什么区别呢?extern的引用方式比包含头文件要简洁得多!
    extern的使用方法是直接了当的,想引用哪个函数就用extern声明哪个函数。

    这样做的一个明显的好处是,会加速程序的编译(确切的说是预处理)的过程,节省时间。在大型C程序编译过程中,这种差异是非常明显的。

    2、extern修饰符可用于指示C或者C++函数的调用规范。

    比如在C++中调用C库函数,就需要在C++程序中用extern “C”声明要引用的函数。
    这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是C++和C程序编译完成后在目标代码中命名规则不同。


    THE END!

  • 相关阅读:
    javascript package
    javascript 的forEach函数
    JavaScript 缓存函数
    javascript String
    javascript的动态this与动态绑定
    CSS Position Fixed for IE6
    raphaeljs图形库学习笔记
    javascript wrapper函数
    javascript框架之继承机制3
    javascript 超级字符串对象
  • 原文地址:https://www.cnblogs.com/SoaringLee/p/10532361.html
Copyright © 2020-2023  润新知