extern 标识符的作用

2022-05-07  本文已影响0人  格林童话ol

extern 标识符的作用

1.在C语言当中,extern符号的作用主要是声明变量和函数

比如

    在A.c文件中定义一个全局变量

    int ext_val;

    需要在B.c中使用这变量

    int main()

    {

        int val = ext_val;

    }

    如果此时编译它们的话,由于编译过程是一个一个文件进行编译,编译B.c文件时,并没有ext_val变量,因此编译会报错。

此时就由extern派上用场了

 在B.c中增加一句extern int ext_val;告诉编译器这个变量是在其他文件定义,编译可以正常通过。这其实是一句声明语句,声明的ext_val不分配内存,不占用内存空间。

extern int ext_val;

    int main()

    {

        int val = ext_val;

    }

2.在C++中,会使用extern "C"来告诉g++编译器按照c语言的规则编译这段代码。

主要原因在于C++中为实现静态多态,编译生成的函数符合是和参数关联的,例如

int extCal(int a, int b)  

在C++中编译结果是_extCal_int_int,即函数和参数类型共同组成函数符号

在C中编译结果是_extCal,函数不和参数类型关联

两者编译规则不同

extern "C"

{

    .......

}

上一篇下一篇

猜你喜欢

热点阅读