hello-no1:
回到“作用域及生存周期”的话题。我们知道全局变量定义在所有函数外部,局部变量定义在功能函数内部。二者位置的不同决定着其作用域及生存周期不同。前者位置在所有函数外部,所以它的作用域默认为是整个程序,包括所有的.c和.h文件,换句话说它可以被任意函数调用。而局部变量仅在某功能函数内部定义,这意味着它的作用域仅局限在某单一函数内部。 至于二者的生存周期,则是永恒与霎那的区别。全局变量伴随着运行的程序同生共灭,只要程序在不间断的运行,那全局变量就会一直存在,永不释放,此即为永恒。局部变量仅在其定义的功能函数被调用时才会存在。一旦功能函数结束调用,局部变量就会消亡,其占有的内存即被释放,这代表着霎那。