C语言中外来的关键字用法

在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;我+ +)

<李>

{

<李>

总=总*;

<李>

}

<李>

强总,

<李>

}


C语言中外来的关键字用法