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有助于生成通用函数 ,并放入函数库中。