关于extern关键字扩展作用范围的使用方法

extern关键字目前来说主要有两个功能:

  • 创建全局变量
  • 将C++代码按照C的格式进行编译

两者的区别主要是其修饰的内容。

  • 在修饰函数的时候,比如在函数前加上extern C",例如extern C" void Fun1(int, int);此时就是要求编译器将此函数按照C的方式去编译(因为C++中涉及到函数重载,因此对于同名的函数,编译器在编译的时候会加上参数的类型之类的,如某些编译器可能会将上面的函数编译为Fun1_int_int,这个取决于编译器本身)。
  • 在修饰变量或者是对象的时候,则是表明这是对于一个变量的声明,注意是声明而不是定义,一个变量可以多次声明,但是只能定义一次。在此中,extern充当声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用。

其实,本质上来说,这两个性质其实是一个性质:扩充所修饰内容的作用范围
修饰函数的时候,就是扩充了此函数的作用范围,从C++扩充到了C代码也可以使用。
修饰变量或者是对象的时候,也是扩充了此变量或者是对象的作用范围,从当前文档可用,到其他文件也可用。

可以参考此链接。

最新回复(0)
/jishu9LLTdia7HorC2kyRW0VHkj3_2BrwiPGxNM1T9TM4XYY0E_3D4858729
8 简首页