C语言extern

示例

用于声明在其他地方定义的(或具有外部链接的)对象或函数。通常,它用于声明要在模块中使用的对象或函数,而该模块中未定义相应的对象或函数:

/* file1.c */

int foo = 2;  /* 具有外部链接,因为它是在文件范围中声明的。 */

/*file2.c*/

#include <stdio.h>

int main(void)

{

    /* `extern` 关键字引用外部定义 `foo`. */

    extern int foo;

    printf("%d\n", foo);

    return 0;

}

C99

通过在C99中引入关键字 inline,事情变得更加有趣:

/*通常应该放在头文件中,以便所有用户都能看到定义*/

/*提示编译器函数“bar”可能是内联的*/

/*和禁止生成外部符号,除非另有说明。*/

inline void bar(int drink)

{

    printf("You ordered drink no.%d\n", drink);

}

/*只在一个.c文件中找到。

创建“bar”的外部函数定义以供其他文件使用。

编译器可以在内联版本和外部版本之间进行选择

调用“bar”时的定义。没有这一行,`bar`就只能是内联的

函数,其他文件将无法调用它。*/

extern void bar(int);

以上是 C语言extern 的全部内容, 来源链接: utcz.com/z/315842.html

回到顶部