康奈尔笔记法 | |
线索栏 修饰局部变量 改变生命周期不改作用域。 修饰全局变量或函数时,使文件内不被外部文件引用。 | 笔记栏 一.修饰局部变量。 注意局部变量的生命周期,如果局部变量在外定义函数中定义,在循环中使用时,会每次出函数会销毁,每次进入函数都会重新定义。 这个时候如果要其不销毁,则可以用static。改变其作用周期,可以使局部变量出了函数不被销毁。(static修饰局部变将其变成静态变量,是变量的存储位置从栈区变到静态区) 二.修饰全局变量。 (1)全局变量 两个源文件,在一个文件中定义一个全局变量,会由于程序运行的顺序,在另一个文件中接收不到这个全局变量,故要在另一个变量中加上extern int 变量名称。操作目的:告诉编译器有一个变量来自外部的文件。 (2)static修饰的全局变量:使外部链接属性变成内部链接属性。(一个文件中static修饰的全局变量不可以应用到外部文件) 三.修饰函数。 与修饰全局变量差不多,引用外部文件中的函数时要用extern,但在函数前加个static时,将文件外部属行变成了内部链接属性。 补充: 电脑空间分类(解释static改变局部变量作用周期) 栈区:临时的进入作用域自动创建,出了作用域自动销毁。(局部变量) 堆区: 静态区:放在静态区的变量出了作用域也不被销毁,知道整个程序结束(静态变量) 在函数内的静态变量有局部变量的作用域和全局变量的生命周期 |
总结栏 综上1.如果外部文件中的全局变量或者函数不想要被其他文件中使用则可以用static。2.不想要局部变量出{}时被销毁可以加static。 |
static的应用(笔记)
于 2023-08-21 16:12:46 首次发布