如何在c文件之间共享一个全局variables?
如果我在一个.c
文件中定义一个全局variables,我怎样才能在另一个.c
文件中使用同一个variables的值?
在file1.c
#include<stdio.h> int i=10; int main() { printf("%d",i); return 0; }
file2.c中
#include<stdio.h> int main() { //some data regarding i printf("%d",i); return 0; }
第二个文件如何使用第一个文件中的i
的值。
文件1:
int x = 50;
文件2:
extern int x; printf("%d", x);
在头文件或其他C文件中使用extern <variable type> <variable name>
。
使用extern
关键字来声明另一个.c
文件中的variables。 例如:
extern int counter;
意味着实际存储位于另一个文件中。 它可以用于variables和函数原型。
在第二个.c
文件中使用具有相同variables名称的extern
关键字。
像在file1.c中一样在file2.c中:
#include <stdio.h> extern int i; /*This declare that i is an int variable which is defined in some other file*/ int main(void) { /* your code*/
如果你使用int i; 在main()下的file2.c中,那么我将被视为与file1.c中定义的不同的本地自动variables
在另一个.c文件中使用extern关键字。
如果你想在file2.c中使用file1.c的全局variablesi,那么下面是要记住的点:
- main函数不应该在file2.c中存在
- 现在全局variables我可以通过两种方式与file2.c共享:
a)通过在file2.c中声明extern关键字,即extern int i;
b)通过在头文件中定义variablesi并将该头文件包含在file2.c中。