1.冠以static关键字的全局变量、局不变量、函数与普通的全局变量、局不变量、函数的区别?
首先,我们来说static全局变量和普通全局变量的相同与不同,普通的全局变量与static全局变量都是以静态存储方式存储在栈区的,这是2者的相同点,而不同在于普通的全局变量的作用域是整个程序,而被static修饰的全局变量的作用域只在声明该变量的文件中。
其次,static局部变量和普通局部变量的区别:static局部变量只会被程序初始化一次,下一次使用维持上一次的值不变,(即在某种意义上改变了该局部变量的生命周期)而普通的局部变量出了函数即会被释放掉,下次使用重新分配。
最后,声明为static的函数,其作用域也会被限定在该文件中,(即在程序中只维持该函数的一份拷贝)而普通的函数作用域被限定为 #include、#import的文件中都可以使用。
2.如何引用一个已经定义过的全局变量?
有俩种方式:1、引用头文件
2、使用extern关键字
区别:第一种方式引用的话,如果有错误,在编译期会提示错误;第二种方式的话,如果有错误,在连接期才会提示错误。