在C语言中,修饰符走读生用在变量或者函数的声明前,用来说明”此变量/函数是在别处定义的,要在此处引用”。
1。走读生修饰变量的声明。举例来说,如果文件交流需要引用b。c中变量int v,就可以在一个。c中声明extern int v,然后就可以引用变量诉这里需要注意的是,被引用的变量v的链接属性必须是外链接(外部)的,也就是说交流要引用到v,不只是取决于在一个。c中声明extern int v,还取决于变量v本身是能够被引用到的。这涉及到c语言的另外一个话题——变量的作用域。能够被其他模块以走读生修饰符引用到的变量通常是全局变量。还有很重要的一点是,extern int v可以放在交流中的任何地方,比如你可以在一个。c中的函数有趣定义的开头处声明extern int v,然后就可以引用到变量了,只不过这样只能在函数有趣的作用域中引用v罢了,这还是变量作用域的问题。对于这一点来说,很多人使用的时候都心存顾虑。好像外面的声明只能用于文件作用域似的。
2。走读生修饰函数声明。从本质上来讲,变量和函数没有区别。函数名是指向函数二进制块开头处的指针。如果文件交流需要引公元前用中的函数,比如在b。c中原型是int有趣(intμ),那么就可以在一个。c中声明extern int乐趣(intμ),然后就能使用有趣来做任何事情。就像变量的声明一样,extern int有趣(intμ)可以放在交流中任何地方,而不一定非要放在交流的文件作用域的范围中。对其他模块中函数的引用,最常用的方法是包含这些函数声明的头文件。使用走读生和包含头文件来引用函数有什么区别呢?走读生的引用方式比包含头文件要简洁得多!走读生的使用方法是直接了当的,想引用哪个函数就用外面的声明哪个函数。这大概是吻原则的一种体现吧!这样做的一个明显的好处是,会加速程序的编译(确切的说是预处理)的过程,节省时间。在大型c程序编译过程中,这种差异是非常明显的。
3。此外,走读生修饰符可用于指示C或c++函者数的调用规范。比如在c++中调用C库函数,就需要在c++程序中用外来的“C”声明要引用的函数。这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是c++和C程序编译完成后在目标代码中命名规则不同。
C语言中外来的关键字的使用,直接上代码。
file1。c文件
- <李>
# include
李> <李>强> >强权力(强>);
李> <李>强>=2,
李> <李>强>主要()
李> <李>{
李> <李>强> n=10,总;
李> <李>=总功率(n),
李> <李>printf(总);
李> <李>强> 0;
李> <李>}
李>file2。c文件
- <李>
强>,
李> <李>>强权力(强> n)
李> <李>{
李> <李>强>=1;
李> <李>强>我。
李> <李>强> (i=1; i<=n;我+ +)
李> <李>{
李> <李>总=总*;
李> <李>}
李> <李>>强总,
李> <李>}
李>