"这篇资料是关于C程序设计的讲解,主要涵盖了存储类别的总结,以及C语言的历史背景和发展。"
在C程序设计中,存储类别是编程时对变量分配内存和管理生命周期的一种方式。根据作用域,存储类别可以分为局部变量和全局变量。
局部变量在函数内部声明,它们的生命周期局限于函数的执行期间。当函数调用结束,局部变量的值就会消失。局部变量又可以细分为以下几类:
1. 自动变量(动态局部变量):默认情况下,函数内的变量都是自动变量,其生存期始于定义时,止于函数返回。
2. 静态局部变量:这种变量在函数首次调用时初始化,且在整个程序运行期间保持其值,即使函数退出后也不会丢失。
3. 寄存器变量:虽然理论上可以请求将局部变量存储在CPU寄存器中以提高效率,但实际实现中并不总是能满足这个请求,离开函数时,寄存器变量的值也会消失。
4. 形式参数:函数参数可以被声明为自动变量或寄存器变量,但它们在函数调用结束时同样会失去其值。
全局变量则在整个程序中都可访问,它们的生命周期始于程序开始,终于程序结束。全局变量分为两种:
1. 静态外部变量:这些变量只在声明它们的源文件中可见,不能被其他文件访问。它们的值在程序执行过程中始终保持。
2. 外部变量(非静态的外部变量):如果一个全局变量没有被声明为静态,那么它就是一个外部变量,可以在多个源文件之间共享。这种变量的可见性和生存期都贯穿整个程序。
C语言的历史背景对理解它的设计原则至关重要。C语言起源于1970年代的贝尔实验室,由D.M.Ritchie在B语言基础上发展而来。B语言用于编写了早期的UNIX操作系统,但C语言因其更强大的类型系统和表达能力而诞生。随着1978年的《The C Programming Language》一书的出版,C语言逐渐流行,并在1983年被ANSI标准化为ANSI C。随后,ISO在1990年采纳了这一标准,形成了ISO 9899-1990。至今,C语言仍然是最广泛使用的编程语言之一,尽管不同版本的编译器可能有轻微的差异,但其核心语法和概念保持稳定。在学习和使用C语言时,了解所使用的编译系统的特性是非常重要的。