C++ 中的 extern 存储类
extern 存储类说明符允许您声明多个源文件可以使用的对象。extern 声明使描述的变量可供当前源文件的后续部分使用。此声明不会替换定义。该声明用于描述外部定义的变量。
extern 声明可以出现在函数外部或块的开头。如果声明描述了一个函数,或者出现在函数外部并描述了一个具有外部链接的对象,则关键字 extern 是可选的。
如果标识符的声明已存在于文件范围内,则在块中找到的相同标识符的任何 extern 声明都引用同一个对象。如果在文件范围内不存在标识符的其他声明,则该标识符具有外部链接。
C++ 将 extern 存储类说明符的使用限制在对象或函数的名称上。对类型声明使用 extern 说明符是非法的。extern 声明不能出现在类范围内。
您可以按如下方式使用 extern 关键字在文件之间共享变量:
file3.h
extern int global_variable; /* Declaration of the variable */
file1.c
#include "file3.h" /* Declaration made available here */
#include "prog1.h" /* Function declarations */
/* Variable defined here */
int global_variable = 37; /* Definition checked against declaration */
int increment(void) {
return global_variable++;
}file2.c
#include "file3.h"
#include "prog1.h"
#include <stdio.h>
void use_it(void)
{
printf("Global variable: %d\n", global_variable++);
}stackoverflow 上的以下问题完全抓住了 extern 关键字的本质:https://stackoverflow.com/questions/1433204/how-do-i-use-extern-to-share-variables-between-source-files.
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP