社区
C语言
帖子详情
有关static extern的问题~
ghostmirror
2003-12-08 12:01:44
就是用static修饰的变量和函数与一般的函数与变量有什么区别
extern int i;是什么意思??
...全文
48
6
打赏
收藏
有关static extern的问题~
就是用static修饰的变量和函数与一般的函数与变量有什么区别 extern int i;是什么意思??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ghostmirror
2003-12-11
打赏
举报
回复
3x all
zhangfjj
2003-12-08
打赏
举报
回复
static 修饰内部变量时,使得变量存储在静态存储区,也就扩大了其生命期
修饰外部变量时,使得该外部变量的作用域限于本文件,其他文件是不能引用被static修饰的外部变量的
函数默认是外部的,当用static修饰函数时,其作用与修饰外部变量相似,缩小其作用域。
extern int i;是进行变量声明,i是一个int型的变量,其定义在别的地方,可以是本文件中的其他地方,也可以是其他文件中。就这些,够了吗?
seabreeze9802
2003-12-08
打赏
举报
回复
我把static看成是一个内部的全局变量,这样比较好理解。
njuhuangmy
2003-12-08
打赏
举报
回复
还是喜欢 static
static修饰一个函数,表明这个函数只能在这个文件内起作用。
主要是防止和别人定义的文件重名。
extern 显式申明 外部变量或者 外部函数
hanyixin
2003-12-08
打赏
举报
回复
static修饰外部变量时,使得该外部变量的作用域限于本文件,这种方法已经被声明为废弃的,推荐的方法是使用匿名名字空间。
例如:
static int local;
推荐改用:
namespace
{
int local;
}
fierygnu
2003-12-08
打赏
举报
回复
C里的变量有两个属性:作用域和生存期。static可以改变全局变量的作用域(限定在本模块里)和局部变量的生存期(与全局变量一样长寿)。
static作用于全局函数时与作用于全局变量时相同。
C++里static还可以作用于成员函数和成员变量,使其被访问时不需要类实例,即把这些元素变成了该类所有对象的共有属性。当然这样成员变量的生存期也变成了全局的。
C/C++中的
static
和
extern
关键字
static
关键字:
static
可以用于修饰局部变量以扩展局部变量的生存期。
extern
关键字:只能用于扩展没有被
static
关键字修饰的全局变量。
extern
、
static
修饰变量的使用及define和const区别
extern
、
static
修饰变量的使用及define和const区别可结合博客http://blog.csdn.net/error/404.html?from=http%3a%2f%2fblog.csdn.net%2faiyang10%2farticle%2fdetails%2f49448591理解
c语言中
static
和
extern
的用法详细解析
一,
static
和
extern
:大工程下我们会碰到很多源文档。文档a.c 代码如下:
static
int i; //只在a文档中用int j; //在工程里用
static
void init() //只在a文档中用{}void callme() //在工程中用{
static
int sum;}上面的全局i变量和init()函数只能用在a.c文档中,全局变量sum的作用域只在callme里。变量j和函数callme()的全局限扩充到整个工程文档。所以能够在下面的b.c中用
extern
关键字调用。
extern
告诉编译器这个变量或函数在其他文档里已被定义
iOS开发中关键字const/
static
/
extern
、UIKIT_
EXTERN
的区别和用法
主要介绍了iOS 关键字const/
static
/
extern
、UIKIT_
EXTERN
区别和用法,需要的朋友可以参考下
C# 游动小金鱼 动态屏保
C#游动屏保小金鱼, [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)] public
static
extern
IntPtr CreateCompatibleDC(IntPtr hDC); [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)] public
static
extern
IntPtr GetDC(IntPtr hWnd); [DllImport("gdi32.dll", ExactSpelling = true)] public
static
extern
IntPtr SelectObject(IntPtr hDC, IntPtr hObj); [DllImport("user32.dll", ExactSpelling = true)] public
static
extern
int ReleaseDC(IntPtr hWnd, IntPtr hDC); [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)] public
static
extern
int DeleteDC(IntPtr hDC); [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)] public
static
extern
int DeleteObject(IntPtr hObj); [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)] public
static
extern
int UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pptSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章