C语言中某一个文件里定义的static变量,那么另一个文件能否读取这个变量?

一般来说是是不允许修改的,那么我去读这个文件里的static变量应该没问题的吧?只是读一下,并不修改。

static不是允许修改,你估计和const搞混了,static表示静态存储,直到整个程序结束变量值才会从存储区释放,静态变量又分为全局静态变量和局部静态变量,
全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。
(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;

静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;
静态局部变量和作用域和局部变量一样,不过生存周期不一样,局部变量在定义局部变量的函数调用完之后就从内存中释放其值,而静态局部变量不释放,等整个程序全部执行结束后才会从内存中释放。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-08-28
不能,但用extern可以

C语言中某一个文件里定义的static变量,那么另一个文件能否读取这个变 ...
static不是允许修改,你估计和const搞混了,static表示静态存储,直到整个程序结束变量值才会从存储区释放,静态变量又分为全局静态变量和局部静态变量,全局变量与全局静态变量的区别:(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。(b)若程序由多个源文件构成时,全局变量与全局静态变量...

问个问题,为什么我定义的static函数能被其他源文件调用。
不能被调用,static有以文件为单位隐藏名字的功能,同一文件指的是.cpp文件以及它所include的.h文件,也就是说,你在一个头文件里定义了static的全局变量或者,被其他cpp文件包含了,被包含一次就相当于在不同的文件上定义了同名的static的变量或者函数,你所谓的可以调用的并不是你最初在那个文件上定义...

c语言 为什么静态全局变量可以在别的文件中引用
静态全局变量只能在本源文件中使用,意思是你不能用extern 来声明另外一个文件里的静态全局变量 比如 A文件里的static int i =0;那么B文件里extren int i就是行不通的,而如果A文件的i不是static的 , 那么extern int i就可以

C语言中,其他文件可否调用文件中的static函数?
不能,C语言中的static函数,内部函数和外部函数,函数一旦定义后就可被其它函数调用。当一个源程序由多个源文件组成时,在一个源文件中定义的函数能否被其它源文件中的函数调用,C语言又把函数分为两类。如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调...

C语言中static是做什么用的?
static 用来说明静态变量。如果是在函数外面定义的,那么其效果和全局变量类似,但是,static定义的变量只能在当前c程序文件中使用,在另一个c代码里面,即使使用extern关键词也不能访问这个static变量。如果是在函数内部定义的,那么这个变量只初始化一次。C语言是一门通用计算机编程语言,应用广泛。C语言的...

C语言中由Static 定义的变量的作用范围
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:•; 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。•; 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本...

C语言中 其他文件可否调用文件中的static函数?
不能。C语言中的static函数:内部函数和外部函数 函数一旦定义后就可被其它函数调用。但当一个源程序由多个源文件组成时,在一个源文件中定义的函数能否被其它源文件中的函数调用呢。为此,C语言又把函数分为两类:一、内部函数 如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一...

C语言 static全局变量只被初始化一次 防止在其他源文件中被引用 这句...
c文件之间是可以相互引用的,就像函数一样可以被相互引用。当 变量被 static 修饰的时候( 例如:static int a = 1;),只有文件第一次执行这个语句的时候 a 被赋值成 1,当其他的文件或本文件第二次执行这个语句的时候不改变 a 的值(例如:如果a在后面的代码中 加1,那么这时候执行这条语句时...

c语言中的static是什么
static 用来说明静态变量。如果是在函数外面定义的,那么其效果和全局变量类似,但是,static定义的变量只能在当前c程序文件中使用,在另一个c代码里面,即使使用extern关键词也不能访问这个static变量。如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始...

c语言中static说明是什么意思?
static 用来说明静态变量。如果是在函数外面定义的,那么其效果和全局变量类似,但是,static定义的变量只能在当前c程序文件中使用,在另一个c代码里面,即使使用extern关键词也不能访问这个static变量。如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始...

相似回答