C语言之静态和走读生

  /*   全局变量和局部变量:   全局变量:   1,如果没有初始化,默认值为0;   2,存储在静态区中,随着程序启动而创建,程序结束而释放;   局部变量:   1、作用域:自定义位置起至返回或“}”结束;   2、同一个作用域内,局部变量不可同名;   3、未初始化的局部变量中,保存着一堆乱码;   4、变量的调用原则:就近原则;   5、局部变量保存在栈中,作用局结束即被释放;   内部全局变量和外部全局变量:   内部全局变量:以静态关键字修饰,只能够被当前文件访问的全局变量   1、同一作用域内可定义多个同名的内部全局变量,同名的内部全局变量指向同一块内存空间;   2、不同文件中的内部全局变量指向不同的内存空间;   外部全局变量:默认情况下,创建的全局变量均为外部全局变量,可其他文件访问的全局变量;   1,可同时定义多个同名的外部全局变量,同名的外部全局变量指向同一块内存空间;   2、外部全局变量的安全性问题:在Xcode升级之后,处于安全性考虑,不在允许在其他文件中,直接访问外部全局变量,但仅仅只是Xcode不支持而已,但其本身,并没有错,   在终端中,可正常执行。但在Xcode中想要在其他文件中,访问外部全局变量,必须以外来的关键字声明,要访问某一个外部全局变量,明确用户知道自己当前操作;   3,走读生的其他用法,在同一个文件中,如果变量定义在变量使用之后,同样可以使用走读生进行声明;   静态对局部变量的作用:   1,会将局部变量创建在静态区中,延长其生命周期,减少局部变量的重复创建和释放,提高程序执行效率;   2、作用域:自定义位置起至文件末尾;   3,当系统遇到静态修饰的局部变量时,首先会检查静态区中是否存在该变量,如果存在,则直接使用,该语句仅仅起到声明的作用,如果不存在,则在静态区中创建该变量;   静态和走读生对函数的作用:   内部函数和外部函数:   外部函数:默认情况下,创建的函数,即为外部函数,可被其他文件访问;   内部函数:以关键字静态修饰,只能够被当前文件访问的函数;当然静态也可用于声明一个内部函数;   */


C语言之静态和走读生