C语言中变量的使用 1995-11-24 C语言对自动变量定义在块中的位置没有严格规定,但在使用时仍需小心。对于大多数C语言编译程序,不允许在语句序列中说明自动变量。如: switch(a){ case 1: auto int p; … 是错误的,带有标号(case 1:)的语句不是代码块,而是语句序列。对于下面的两种用法: switch (a){ auto int p; case 1: 和 switch(a){ case 1: if(1){ auto int p; … 都是正确的。 全局变量储存在动态存储区之外的固定存储区域中,不论使用与否,都占用存储空间,当程序中多个函数都使用同一数据时,全局变量很有效,但大量使用全局变量会制造出一些麻烦,产生一些副作用;同时由于全局变量的使用,降低了函数的通用性,对结构化设计是很不利的。减少副作用的方法是使静态局部变量代替全局变量,当不能满足需要时可以使用静态全局变量,以保持函数的独立性。静态变量使程序员能将程序的一部分相对其他部分隐蔽起来,这对管理一个庞大而复杂的程序非常有利;同时储存分类符static有助于生成通用函数 ,并放入函数库中。