unsigned int sum_int( unsigned int base ) { unsigned int index; static unsigned int sum = 0; // 注意,是static类型的。 for (index = 1; index <= base; index++) { sum += index; } return sum; }
原文讲,sum定义为static是不可以的。 我如果改成这样可不可以: unsigned int sum_int( unsigned int base ) { unsigned int index; static unsigned int sum ; // 注意,是static类型的。 for (sum=0,index = 1; index <= base; index++) { sum += index; } return sum; }
yi yang de. dou hui baocun shang zui hou yici de jieguo. shangmian di yi ci jieguo ke zhengque. ni xiugai hou, di yi ci jieguo keneng bu zhengque. yao yilai bianyiqi de moren chushihua.
局部的意思是:当前用static定义的变量或函数,是局部的,不是全局的,并不是任何函数或任何地方都可以调用它。 如 static fun();则fun()函数只可以在当前的文件内被调用,相关地方调用是要出错的。 再如: unsigned int sum_int( unsigned int base ) { unsigned int index; static unsigned int sum = 0; //则sum只可以在当前的函数内使用,在其它的地方使用是会出错的。 ....... // return sum; }