美文网首页
如何在源文件中共享变量?

如何在源文件中共享变量?

作者: 达闻西 | 来源:发表于2014-06-02 01:22 被阅读67次

在c语言中,使用extern关键字是解决上述问题的最好方法。假设你正在编写一个含有多个源文件的程序,例如,在file1.c中定义了一个变量,在file2.c中需要引用该变量。

在具体讲解之前,需要先了解定义变量和声明变量间的区别

当定义一个变量时,编译器将为该变量分配内存空间。

当声明一个变量时,编译器被告知该变量存在(以及它的类型是..);但此时并不会为其分配内存空间。

一个变量可以被声明多次(尽管一次就足够了),但在指定域中只能被定义一次。

实现方法

file3.h

extern int global_variable;   /* Declaration of the variable */

file1.c

#include "file3.h"   /* Declaration made available here */

int global_variable = 37;  /* Definition checked against declaration */

file2.c

#include "file3.h"

#include <stdio.h>

int main(void)

{

        printf("Global variable: %d\n", global_variable++);

        return 0;

}

运行结果

$ gcc file1.c file2.c file3.h -o file

$ ./file

Global variable: 37

更多实现方法

更多精彩内容,请关注我的个人博客

相关文章

  • 如何在源文件中共享变量?

    在c语言中,使用extern关键字是解决上述问题的最好方法。假设你正在编写一个含有多个源文件的程序,例如,在fil...

  • Java多线程可见性

    一:内存可见性 线程对共享变量的修改,可以及时的被其他线程看到。那何为共享变量呢?就是在多个线程的工作内存中存在如...

  • 多线程获取返回值

    1.共享变量 将要保存/修改的值set到共享变量中,通过获取共享变量实现值在不同线程中的传递 如下在子线程中循环累...

  • Android应用包的生成/管理/访问

    APK编译 APK项目的源文件包括: 资源文件 aidl源文件 Java源文件 Java静态库 Java共享库 所...

  • 纯干货:共享经济下,教你如何10万在北京买套房

    共享经济下,共享单车火遍全球,我们也不绕了,直入如主题,教你如何在共享经济下,10万买套房。 共享买房,即合伙...

  • OC中的static

    不能修饰成员变量 ×可以修饰局部变量 存储到静态存储区全局变量 只能在当前源文件中访问函数 ...

  • Android多线程(四)

    volatile volatile在Java语言规范中定义 Java编程语言允许线程访问共享变量,为确保共享变量能...

  • Objective-C添加类属性

    先回顾一下静态变量与全局变量的一些知识。 头文件中定义全局变量和静态变量的区别。 源文件中定义全局变量和静态变量的...

  • volatile关键字

    volatile关键字 @Date 2016.06.20 共享变量 多个线程之间能够被共享的变量 存放在堆内存中的...

  • UIKIT_EXTERN的基本理解

    查看SDK源文件 用途 一般用于全局变量的定义(objective-c) 在.h文件中定义全局变量 而在.m文件中...

网友评论

      本文标题:如何在源文件中共享变量?

      本文链接:https://www.haomeiwen.com/subject/gxidtttx.html