(2)作用域不同。静态局部变量属于内部变量,其作用域仅限于定义它的函数内;虽然生存期为整个源程序,但其它函数是不能使用它的。静态外部变量在函数外定义,其作用域为定义它的源文件内,生存期为整个源程序,可被本文件中的函数访问,但其它源文件中的函数也是不能使用它的。
(3)初始化处理不同。静态局部变量,仅在第一次调用它所在的函数时被初始化,当再次调用定义它的函数时,不再初始化,而是保留上一次调用结束时的值。而静态外部变量是在函数外定义的,不存在静态内部变量的“重复”初始化问题,其当前值由最近一次给它赋值的操作决定。
务必牢记:把局部变量改变为静态内部变量后,改变了它的存储方式,即改变了它的生存期。把外部变量改变为静态外部变量后,改变了它的作用域,限制了它的使用范围。因此,关键字“static”在不同的地方所起的作用是不同的。
4.寄存器变量(register)
一般情况下,变量的值都是存储在内存中的,程序运行时,将内存中的数据送到寄存器中进行运算。为了提高执行效率,C语言允许将局部变量的值存放到寄存器中,这种变量就称为寄存器变量。
定义格式如下:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] 下一页
|