77问答网
所有问题
c语言 为什么静态全局变量可以在别的文件中引用
我见有些网友说静态全局变量只能在本源文件中使用,但是我怎么在别的C文件中也可以使用呢?
举报该问题
推荐答案 推荐于2017-11-28
你要弄明白什么叫别的文件
比如
A 文件中定义了一个 static int i=0;
然后B文件用include包含了A文件,那么对于B文件来说,A文件就不是别的文件,它就是B文件的一部分
静态全局变量只能在本源文件中使用,意思是你不能用extern 来声明另外一个文件里的静态全局变量
比如 A文件里的static int i =0;
那么B文件里extren int i就是行不通的,而如果A文件的i不是static的 , 那么extern int i就可以
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/WNpIIYGv8.html
其他回答
第1个回答 2012-09-19
你是在头文件中声明的吗?
第2个回答 2012-09-19
你弄错了
你把你代码贴上来
相似回答
在
C语言中
,一个文件中定义的
全局变量
,在另一个
文件中能
用吗?
答:
全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建
。全局变量是可以被本程序所有对象或函数引用。
在
C语言中
,一个文件中定义的
全局变量
,在另一个
文件中能
用吗
答:
能。因为
全局变量
默认是extern的,函数也是。如果你写了static修饰它就不行了
问个问题,
为什么
我定义的static函数
能
被
其他
源
文件
调用。
答:
不能被调用,static有以文件为单位隐藏名字的功能,同一文件指的是.cpp文件以及它所include的.h文件,也就是说,你在一个头
文件里
定义了static的
全局变量
或者,被
其他c
pp文件包含了,被包含一次就相当于在不同
的文件
上定义了同名的static的变量或者函数,你所谓的可以调用的并不是你最初在那个文件上定...
c语言
工程里其它
文件引用全局变量
?
答:
在
C语言中引用
外部变量,一般使用extern关键字。举个例子如下://1.c 中定义一个变量g_aint g_a = 100;//2.c 中定义一个函数输出g_a#include <stdio.h>extern int g_a; //这里需要用extern说明g_a是一个外部
全局变量
void f() { printf("%d\n", g_a);}//3.c main函数中调用f...
C语言可以在
不同的源
文件中
定义相同名字的
全局变量
吗
答:
另外,而使用static的时候,你所定义的static
变量
如果是局部的话,编译的时候编译器会将其重新命名,
其他文件
就不会使用到这个文件的static变量了,这样就使得只在本文件内有效;如果是
全局
的话,就全局可见,共享同一块内存空间。具体细节请参考《C++反汇编与逆向分析》(钱林松),里面讲的很详细。如有...
c语言
基础问题?
答:
变量要定义为全局变量,就是要在函数体外面定义变量,同时不能加关键字static静态的,
静态全局变量
只能在本文件内使用,你先在一个文件中定义变量,比如:include<stdio.h> int a;int main(){ } 在另外的文件中,如果你想要使用变量a,那么首先要extren int a;extren关键字的意思是
到其他文件中
寻找...
C语言中
某一个
文件里
定义的static
变量
,那么另一个文件能否读取这个变 ...
答:
(
c
)具有外部链接的静态;
可以在
所有源
文件里
调用;除了本文件,
其他文件
可以通过extern的方式
引用
;
静态全局变量
的作用:(a)不必担心其它源文件使用相同变量名,彼此相互独立。(b)在某源
文件中
定义的静态全局变量不能被其他源文件使用或修改。(c) 只能在本文件中使用!具有内部链接的静态;不允许在...
大家正在搜
静态全局变量和静态局部变量
静态全局变量和动态全局变量
静态全局变量可以被改变么
c语言静态全局变量
c语言全局变量怎么用
静态函数怎么使用全局变量
静态全局变量的作用
静态变量与全局变量
全局变量一定是静态变量
相关问题
C语言中全局变量在其他文件中的引用
C语言 static全局变量只被初始化一次 防止在其他源文件...
在C语言中,一个文件中定义的 全局变量,在另一个文件中能用吗
c语言工程里其它文件引用全局变量?
C语言 在头文件中声明静态变量 如何被其他文件使用
c 的全局变量如何在其他源文件引用,放在头文件中有什么利弊
C语言中的静态全局变量问题
C语言,全局变量,静态变量问题