在同一个C语言程序项目中,其它.c文件可以访问另一个.c文件中的静态变量吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在同一个C语言程序项目中,其它.c文件可以访问另一个.c文件中的静态变量吗?相关的知识,希望对你有一定的参考价值。

我说的是去读那个静态变量值,而不是去写那个静态变量,那么读应该是没有问题吧?

直接用变量名访问是不行的,要通过函数调用来读写。例如:假设1.c文件里有静态变量static int a; 如果2.c文件想要读写a,就必须在1.c文件里添加读写a的外部函数。1.c写法示例:
static int a;
extern int get_a() return a;
extern void set_a(int v) a=v;
这样,在2.c里就可以调用get_a()和set_a(int v)函数来读写变量a了。
参考技术A 在主文件中添加对另一个C文件的引用就可以访问它的静态变量了。追问

直接#include "另一个文件.c",我这里并没有为它建议.h文件,那样该如何处理呢?

追答

第一种是使用 #include"******.c"直接引用文件

此处的****是这个文件的相对路径。

第二种就是使用extern关键字。

C语言中怎样在头文件中定义一个能够在所有文件中都可以使用的全局数组变量 ?

C语言可以通过在.c文件中定义,头文件中extern的方式实现一个能够在所有文件中都可以使用的全局数组变量。

 

具体做法如下:

    设有一个多项目文件有 1.c、2.c和3.c三个源程序文件;

    如果有一个全局数组需要所有文件使用,那么可以添加一个data.c文件,在其中添加全局数组的定义;

    向项目中添加data.h文件,在data.h文件中用 extern声明该数组;

    只需要在相应的.c文件中添加#include "data.h",那么久可以使用data.c中的全局数组了。

参考技术A 和正常全局变量一样的定义,
其他文件中使用该变量时,要用extern。本回答被提问者和网友采纳
参考技术B 定义全局变量就可以 在数组名前面加上 extern就ok 参考技术C 在文件空白位置处定义数组,在要用的文件中#include一下

以上是关于在同一个C语言程序项目中,其它.c文件可以访问另一个.c文件中的静态变量吗?的主要内容,如果未能解决你的问题,请参考以下文章

c语言在头文件中如何引用另一个头文件中的函数

C语言中如何引用其它C源文件中的函数?

C语言

【C语言笔记】<二十一>内部全局变量和外部全局变量

使用c#在另一台计算机中读取xml文件

C语言面试题5