static int foo;
(1) 如果 static int foo; 这一句位于函数中,则 static 表示的是存储属性,表明 foo 是一个静态局部变量。
(2) 如果 static int foo; 这一句位于函数外面,则 foo 是一个静态全局变量,static 不再是表示存储性质,而是作为限制符来使用:用来限制全局变量 foo 的可见范围,将其作用域限制于所在的文件内,在其它文件中是不可见的。故在其它文件中不可以用 extern 引用到 foo。
以上具体含义,不是很理解,但实际效果确实如上所说,先记录下来。
(1) 如果 static int foo; 这一句位于函数中,则 static 表示的是存储属性,表明 foo 是一个静态局部变量。
(2) 如果 static int foo; 这一句位于函数外面,则 foo 是一个静态全局变量,static 不再是表示存储性质,而是作为限制符来使用:用来限制全局变量 foo 的可见范围,将其作用域限制于所在的文件内,在其它文件中是不可见的。故在其它文件中不可以用 extern 引用到 foo。
以上具体含义,不是很理解,但实际效果确实如上所说,先记录下来。