extern
来源:互联网 发布:周扬青淘宝店链接 编辑:程序博客网 时间:2024/06/05 06:40
一,static和extern:
大工程下我们会碰到很多源文档。
文档a.c
static int i; //只在a文档中用
int j; //在工程里用
static void init() //只在a文档中用
{
}
void callme() //在工程中用
{
static int sum;
}
大工程下我们会碰到很多源文档。
文档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告诉编译器这个变量或函数在其他文档里已被定义了。
文档b.c
extern int j; //调用a文档里的
extern void callme(); //调用a文档里的
int main()
{
...
}
extern int j; //调用a文档里的
extern void callme(); //调用a文档里的
int main()
{
...
}
为了使程序更加清晰,可以在使用外部变量的函数中通过使用extern关键字来再次声明它(通常情况下我们都省略它)。如果变量是在别的文件中定义的,使用extern来声明该变量就是必须的。
extern的另外用法是当C和C++混合编程时假如c++调用的是c源文档定义的函数或变量,那么要加extern来告诉编译器用c方式命名函数:
文档A.cpp调用a.c里面的变量i和函数callme()
extern "C" //在c++文档里调用c文档中的变量
{
int j;
void callme();
}
int main()
{
callme();
}
extern的另外用法是当C和C++混合编程时假如c++调用的是c源文档定义的函数或变量,那么要加extern来告诉编译器用c方式命名函数:
文档A.cpp调用a.c里面的变量i和函数callme()
extern "C" //在c++文档里调用c文档中的变量
{
int j;
void callme();
}
int main()
{
callme();
}
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- extern
- 如何把剧本快速转化为动画或游戏?
- 关于Linux操作系统根文件系统的启动分析
- 常用算法的时间复杂度分析
- JavaScript事件的绑定与取消和事件监听
- Linux启动过程简介(根文件系统加载过程)
- extern
- 验证码的实现与刷新
- 令人蛋疼的错误提示 0xcdcdcdcd ,0xdddddddd ,0xfeeefeee ,0xcccccccc ,0xabababab
- Linux系统启动过程剖解及故障排除
- 黑马程序员_学习日记14_System命名空间
- java例程练习(基础数据类型的包装类)
- 关于cortex-a8x210烧写系统映像(1)
- eclipse安装插件的三种方法
- Struts功能详解——ActionForm