C语言extern
示例
用于声明在其他地方定义的(或具有外部链接的)对象或函数。通常,它用于声明要在模块中使用的对象或函数,而该模块中未定义相应的对象或函数:
/* file1.c */int foo = 2; /* 具有外部链接,因为它是在文件范围中声明的。 */
/*file2.c*/C99#include <stdio.h>
int main(void)
{
/* `extern` 关键字引用外部定义 `foo`. */
extern int foo;
printf("%d\n", foo);
return 0;
}
通过在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