« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
公告 |
My blog is about my major : network security.the most papers are talk about it ,I like my major ,i wish you could find what's you need in it. |
统计 |
blog名称:我的IT人生 日志总数:78 评论数量:185 留言数量:-1 访问次数:523960 建立时间:2006年4月5日 |
| 
|
本站首页 管理页面 写新日志 退出
[C/C++]extern 与 static |
1,extern 与 static
一个全局变量当需要整个程序的其他源文件中能够共用到,则可以在使用的文件上写上extern标记,若仅仅是在本文件中被共用,则使用static标记。
例如:
在A.cpp 文件中,有一个全局变量 a,和一个函数: func();
//A.cpp 文件:
...
int a;
void func()
{
...
}
...
我们希望在B.cpp 或更多其它文件可以使用到变量a和函数func(),必须在“合适的位置”声明二者:
//B.cpp 文件:
...
extern int a; //a 由另一源文件(A.cpp)定义
extern void func(); //func 由另一源文件(A.cpp)定义
a = 100;
func();
...
这里例子中,“合适的位置”是在B.cpp文件里。其它合适的位置,比如在头文件里的例子,请复习上一章。
另外一点需要得强调一次:函数的定义默认就是外部的,所以上面 func()之前的extern也可以省略。
在使用extern 声明全局变量或函数时,一定要注意:所声明的变量或函数必须在,且仅在一个源文件中实现定义。
注:作用域 与 生存期 是两个概念,要分开。出了作用域不一定就过了生存期。
|
阅读全文(5450) | 回复(0) | 编辑 | 精华 |
|