我有两个C文件1.c和2.c.
#include<stdio.h>
static int i;
int func1(){
i = 5;
printf("\nfile2 : %d\n",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
#include<stdio.h>
int i;
int main()
{
func1();
printf("\nFile1: %d\n",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我用"gcc 1.c 2.c -o st"编译了两个文件,输出如下
file2 : 5
File2: 0
Run Code Online (Sandbox Code Playgroud)
我期待输出如下
file2 : 5
File2: 5
Run Code Online (Sandbox Code Playgroud)
我想在两个文件中访问相同的变量"i".我该怎么做?
Mik*_*ler 12
选择一个将存储变量的文件.不要用static
.重点static
是保持变量的私密性和其他模块不可触及.
在所有其他文件中,使用extern
关键字来引用变量:
extern int i;
Run Code Online (Sandbox Code Playgroud)
永远不会有理由在另一个文件中访问静态变量.您似乎不知道为什么使用static关键字.在文件范围(外部函数)声明变量有两种方法.
全局变量
int i;
Run Code Online (Sandbox Code Playgroud)
好处:
缺点:
本地/私人变量
static int i;
Run Code Online (Sandbox Code Playgroud)
好处:
缺点:
我个人认为,没有理由使用全局变量或extern关键字.我已经编程了15年以上,从来没有使用过.我编写了从实时嵌入式系统到Windows GUI绒毛应用程序的所有内容,我从未需要在任何形式的应用程序中使用全局变量.此外,它们在几乎所有已知的C编码标准中都被禁止.
归档时间: |
|
查看次数: |
20454 次 |
最近记录: |