社区
C语言
帖子详情
请问:a是extern 还是static的
bin00
2003-10-16 11:13:03
我在文件的开头,函数的外面写
int a;
请问:a是extern 还是static的
...全文
26
12
打赏
收藏
请问:a是extern 还是static的
我在文件的开头,函数的外面写 int a; 请问:a是extern 还是static的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunjx119
2003-11-01
打赏
举报
回复
static
l 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可改变其值。
2 静态变量或静态函数,即只有本文件内的代码才可访问它,它的名字(变量名或函数名)在其它文件中不可见。
extern
l 声明变量或函数为外部链接,即该变量或函数名在其它文件中可见。被其修饰的变量(外部变量)是静态分配空间的,即程序开始时分配,结束时释放。用其声明的变量或函数应该在别的文件或同一文件的其它地方定义(实现)。在文件内声明一个变量或函数默认为可被外部使用。
luhuayi
2003-11-01
打赏
举报
回复
默认是EXTERN
yaoxinyan
2003-11-01
打赏
举报
回复
在C++里,
int a;
相当于:
int a=0;
很明显,a的linkage是external的。
在C里,
int a;
是暂时定义,由于不可能在其它地方再出现下面的语句:
static int a;
所以a的linkage同样是external的。
不过我们可以在同一文件多写几次:
int a;
int a;
int a=1;
当然,其中只能有一个含初始化部分。
teddyzhai
2003-10-31
打赏
举报
回复
我的认为EXTERN 只是申明,而STATIC有点申明加付初植了
litant919
2003-10-31
打赏
举报
回复
a存储在静态数据区中,但不能说是extern还是static,
williamVII
2003-10-16
打赏
举报
回复
C中默认为extern,
C++中为static.
Weigehoho
2003-10-16
打赏
举报
回复
同意楼上的
liem
2003-10-16
打赏
举报
回复
在函数外定义的变量,其默认的存储类别为extern。就象我们定义的函数是extern 一样。
zhumerchant
2003-10-16
打赏
举报
回复
当然是extern了,默认的
有static修饰的变量才是静态变量
daizh
2003-10-16
打赏
举报
回复
a对于其他文件来说是extern,可以通过extern a;来调用。它不是static,要它是static必须这样定义:static int a;
smans
2003-10-16
打赏
举报
回复
it is extern.
houdy
2003-10-16
打赏
举报
回复
要注意区分定义和声明:你可以在一个文件中定义一个全局变量int a=0;(不用赋值也可以,全局变量默认赋值0)。如果你在另一个文件中需要使用这个变量,你要在文件前面这样声明:
extern int;编译看这个声明,就认为这个变量在某个地方定义了,当用到这个变量的时候,到那个地方找就是了,如果没有用extern 这个关键子,可能会出现重复定义或找不到定义的情况的。
static其中的一个作用就是,当你声明一个变量或函数是static的时候,他只在这个文件中有效,也就是说他有"file scope".在其他的文件中无效。当然static 还有其他的作用。
C++ :
static
和
extern
的用法总结
1.
static
关键字 1.1 函数和变量声明(C/C++)
static
全局变量: 当声明一个
static
全局变量,则表示静态全局变量,和其他变量一样,存放在.data(初始化了)或者.bss(未初始化)内,但只在定义它的源文件中有效,其余文件无法访问它。
static
局部变量: 具有以下特点: 函数中声明一个
static
局部变量,不分配在堆或者栈上,也分配...
static
和
extern
的作用
问题:
static
和
extern
修饰变量和函数时有什么作用?请举例说明。
static
简单来说,
static
关键字有两个作用: 限制变量的作用域 设置变量的存储域 具体来说,在不同的使用场景有不同的表现。(函数名也是变量) 静态全局变量 用
static
声明静态全局变量:限制本文件外使用
static
int a; 定义全局变量时加一个
static
声明,该变量只限于被本文件引用,而不能被其他文件引用。 静态全局变量和全局变量一样存放在静态区。 静态局部变量 使用
static
修饰局部
extern
和
static
的用法
一:
static
static
有两种使用:一种是修饰变量,另一种是修饰函数 1.修饰变量:作用是使得该变量在出了其作用范围后不会被销毁 第一种是修饰局部变量: 普通的局部变量是存储在栈区的,但是通过
static
修饰之后就会存储在静态区上,出了他的作用域之后该变量不会被销毁,通常用于一些实现一些具有记忆性的代码功能,例如strtok函数(可以去百度搜一搜strtok函数的特性)。 下面是例子: #include<stdio.h> void fun() {
static
浅析
extern
和
static
的区别
区分
static
和
extern
的区别。了解
static
基本用法。了解
extern
基本用法。掌握
extern
的特性。学会
static
的要点。
C中
extern
、
static
、头文件详解
一、
EXTERN
: 解释:变量前有
extern
不一定就是声明,而变量前无
extern
就只能是定义。(注:定义要为变量分配内存空间;而声明不需要为变量分配内存空间) (1)变量 尤其是对于变量来说:
extern
int a; // 声明一个全局变量 a int a; // 定义一个全局变量 a
extern
int a =0 ; // 定义一个全局变量 a 并给初值。 int a...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章