理解C语言extern声明外部变量

需积分: 12 1 下载量 102 浏览量 更新于2024-08-24 收藏 5.67MB PPT 举报
"用extern声明外部变量-C语言第三版谭浩强" 在C语言中,外部变量(extern variable)是一种具有全局作用域的变量,它在函数外部定义,可供程序中的所有函数访问。这种变量在编译时被分配在静态存储区,其生命周期贯穿整个程序的执行过程,直到程序结束才释放。 在描述中提到的8.9.5章节,主要讨论了如何使用`extern`关键字来声明外部变量。`extern`声明允许你在当前源文件中引用在其他源文件中定义的外部变量。这样做是因为当一个变量在某个文件中定义后,其他文件默认无法直接访问它。通过`extern`声明,你可以告诉编译器这个变量在别的地方已经被定义了,从而扩展其作用域。 例如,假设你在`file1.c`中定义了一个外部变量`int count;`,然后在`file2.c`中你需要使用这个变量,但该文件中并没有`count`的定义。这时,你可以在`file2.c`的开头添加`extern int count;`来声明`count`的存在。这样,编译器就会知道`count`是在其他地方定义的,可以在`file2.c`中正确地使用它。 C语言的特点包括简洁性、高效性和可移植性。它的设计目标是提供一种接近硬件的语言,使得程序员能够直接操作内存和硬件资源,同时保持足够的抽象层次以支持高级编程概念。C语言的程序结构通常包含预处理指令、函数定义、变量声明等部分。在计算机上运行C程序通常需要经过编译、链接等步骤,生成可执行文件后才能在操作系统上执行。 C语言的发展历程与UNIX操作系统紧密相关。从B语言发展而来,C语言在Dennis M. Ritchie的设计下逐渐成熟,并在编写UNIX系统中发挥了重要作用。随着《The C Programming Language》这本经典著作的出版,C语言得到了广泛传播和标准化。ANSI和ISO对C语言进行了多次修订,形成了我们现在所说的ANSI C或ISO C标准,为C语言的跨平台兼容性和一致性提供了基础。 不同版本的C编译系统可能在语言功能和语法细节上存在细微差异,因此在实际编程中,了解所使用的编译器的特点至关重要。通常,现代的C编译器都基于ANSI C或更新的ISO C标准,确保了代码的广泛兼容性。在编写和学习C语言时,遵循这些标准能帮助我们编写出更可靠、可维护的代码。