在 C 语言中,extern 这个关键字的主要用途有哪些?在实际编程中应当如何运用它?
考察说明
考察对 C 语言 extern 关键字作用的理解以及具体使用方法的掌握程度。
回答思路
- 【回答框架 1】extern 关键字用于声明一个变量或函数是在其他文件中定义或者定义在程序的后面,规定其具有外部链接性,告知编译器该标识符的存在,而无需看到其定义。
- 【回答框架 2】对于变量,extern int a; 只是声明变量 a,不分配存储空间,真正的定义需在某个源文件中写 int a; 这样一次。多个文件共享同一全局变量时,在一个文件中定义,其他文件用 extern 声明后再使用。
- 【回答框架 3】对于函数,extern 可省略,因为函数声明默认就是 extern,但显式写出有助于阅读。extern 也可以用于在同一个文件内声明后面才定义的全局变量或函数,以便提前使用。
- 【回答框架 4】使用 extern 时需注意,声明和定义的类型必须一致,否则会导致未定义行为;且不能对同一个变量在多个文件中定义,否则会出现重定义错误。
- 【关键点 1】extern 用于声明外部变量或函数,表示定义在其他位置。
- 【关键点 2】变量声明用 extern 不分配内存,只有定义才分配内存。
- 【关键点 3】跨文件共享全局变量时,通常在一个文件中定义,其他文件用 extern 声明。
- 【关键点 4】函数声明的 extern 通常省略,但显式写出更清晰。
- 【关键点 5】使用 extern 时需保证声明与定义类型一致。
- 【易错点 1】容易混淆声明和定义,extern 只声明不定义。
- 【易错点 2】多个文件重复定义同一全局变量会报错,应避免。
- 【易错点 3】extern 声明时类型需与原定义匹配,否则可能产生未定义行为。