auto:自动存储类别,用于定义局部变量,表示变量在函数内部自动创建和销毁,初始值为随机值。static:静态存储类别,用于定义全局变量或局部变量,表示变量在程序运行期间一直存在,初始值为0或常量表达式。extern:外部存储类别,用于声明在其他文件中定义的全局变量,表示变量可以在多个文件中共享,初始值由定义时指定。reg...
static修饰全局变量:一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。 static修饰函数:⼀个函数在整个工程都可以使用,被static修饰后,只能在本文件内部使用,其他文件无法正常的链接使用了。 期待
其实static还可以用来修饰局部变量,这个在《变量类型》中说过,不再阐述了。 * 因为main.c已经没有权限访问test.c中的变量a了,所以下面的写法是错误的: 和 extern是用来声明已经定义过而且能够访问的变量,虽然test.c中有定义过变量a,但是test.c中变量a的作用域是只限于test.c文件,main.c没有访问权限,所以main....
static声明变量:用static声明的静态局部变量,在函数调用结束后不消失,反而保留当前的数据,在下一次该函数调用时,该变量现有的值就是上一次函数调用结束时的值。 一般用static声明一个变量的作用有二:(1)对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在。(2)对全部变量用static声明,则该变量...
下面是C语言中static和extern的'区别,一起来学习下吧: static: 一、在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。 1、定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。 a.在全局区分配内存。 b.如果没有初始化,其默认值为0. c....
C++中static,extern和extern "C"关键字 1. extern 变量 extern 表明该变量在别的地方已经定义过了,在这里要使用那个变量。 当extern不与"C"在一起修饰变量或函数时,如在头文件中: extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用,记住...
**/voidsum(){//没有使用static修饰intnum =0; printf("num = %d\n",num);//0num++; }voidsum1(){//static 可以修饰局部变量//作用:1)static定义的变量的作用域会得到延长//2) static定义变量的语句只会被执行一次staticintnum =0; printf("num = %d\n",num);//0num++; ...
被关键字static修饰的局部变量也是静态变量 生命周期:静态变量在程序运行之前创建,在程序的整个运行期间始终存在,直到程序结束。 二、extern与函数 我们知道:如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.obj可能会调用...
1、static关键字是C, C+中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C+中使用(C,C+中具体细微操作不尽相同, 本文以C+为准.(1局部静态变量(2外部静态变量/函数(3静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C+中, 局部变量按照...
(1)静态局部变量只在编译时赋值,即只在编译时执行“static int a = 1 ” 这句代码一次,无论运行期间调用这句代码所在的函数多少次,前提是必须在定义的同时赋值;而自动局部变量,没调用一次就执行定义赋值一次。 如下代码: (2)使用静态存储要多占内存,降低程序可读性,不要过多使用。