如何在 c 文件之间共享全局变量?

问题描述 投票:0回答:8

如果我在

.c
文件中定义了全局变量,如何在另一个
.c
文件中使用相同的变量?

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;
}

第二个文件

file2.c
如何使用第一个文件
i
中的
file1.c
的值?

c extern
8个回答
96
投票

文件1:

int x = 50;

文件2:

extern int x;

printf("%d", x);

5
投票

使用

extern
关键字在另一个
.c
文件中声明变量。例如:

extern int counter;

表示实际存储位于另一个文件中。它可用于变量和函数原型。


2
投票

在标头或其他 C 文件中使用

extern <variable type> <variable name>


1
投票

在第二个

.c
文件中使用具有相同变量名称的
extern
关键字。


1
投票

与 file1.c 中的操作相同 在文件2.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 中,i 将被视为本地自动变量,与 file1.c 中定义的不同


1
投票

在另一个 .c 文件中使用 extern 关键字。


1
投票

如果你想在file2.c中使用file1.c的全局变量i,那么需要记住以下几点:

  1. main 函数不应该出现在 file2.c 中
  2. 现在全局变量 i 可以通过两种方式与 file2.c 共享:
    a) 通过在 file2.c 中使用 extern 关键字声明,即 extern int i;
    b) 通过在头文件中定义变量 i 并将该头文件包含在 file2.c 中。

0
投票

在第二个定义第一个c文件的变量值时使用extern关键字。 //在第一个文件中 双 z =50;

//在第二个文件中 外部双 x;

© www.soinside.com 2019 - 2024. All rights reserved.