C 语言中的 extern 关键字

如果不是选择重新学习 C,我可能这辈子都不会碰到这个关键字

extern 用于声明一个外部变量,这个变量在项目的其他地方定义过。

假设有头文件 errno.h

int errno = 0;

在 test.c 中

#include <stdio.h>
#include "errno.h"

int main(void) {
      extern int errno; // 声明外部变量
      errno = 33; // 可以对外部变量进一步操作
      /*
      一些操作
      */
      return 0;
}

需要注意的点是,如果你使用不止一个外部变量,你应当保证它们的名字都不一样。(不要试图仅凭类型区分两个外部变量!!!)

在声明外部变量时,一般避免直接定义,即不要写成 extern int a = 0; 的形式。

这样的变量不能进一步修改,不能循环利用,出于环保的缘故我们应当趋避之。