电脑网络 手机数码 生活 游戏 体育运动 明星影音 休闲爱好 文化艺术 就业职场 教育科学 健康医疗 商业理财 情感家庭 地区 其他

c语言工程里其它文件引用全局变量?

2024-03-04 06:03:23

工程包含a.c b.c
在a.c文件里有一个全局变量 list
b.c里有一个全局变量 test

问:1、若b.c里的函数要改变a.c 里全局变量的值,可否直接在b.c 里extern list 然后直接调函数修改?

2、a.c 调用b.c里的函数test_change(test)修改test的值
然后a.c再调用b.c里的函数test_show(test)显示test的值,这里的test值是前面test_change修改的值吗?我的意思是,b.c里的全局变量保存在哪里?不需要return给a.c也能保存值吗?

好评回答

    在C语言中引用外部变量,一般使用extern关键字。举个例子如下:

//1.c 中定义一个变量g_a
int g_a = 100;

//2.c 中定义一个函数输出g_a
#include <stdio.h>
extern int g_a; //这里需要用extern说明g_a是一个外部全局变量
void f() {
    printf("%d\n", g_a);
}

//3.c main函数中调用f()
void f(); //声明函数f()
int main()
{
    f();
}

c语言工程里其它文件引用全局变量?

说明:在2.c中如果不使用extern关键字,则会出现编译错误提示。写入extern int g_a声明后,则编译成功。

相关推荐
  • c语言工程里其它文件引用全局变量?
  • c语言中什么是全局变量?怎样定义的变量是全局变量?
  • c语言中定义的全局变量,在某个函数中赋值还能被其他函数使用吗?
  • c语言中,静态局部变量和静态全局变量的值,在函数调用结束后都保留原值吗?
  • 在arm汇编程序中需要引用c语言定义的全局变量,必须先使用 (什么 ?) 伪指令引入该全局变量
  • © 融合问答