不同文件中引用全局变量的全局变量初始化问题。
创始人
2025-01-09 21:00:39
0

假设我们有两个文件:main.c 和 global.h,在 global.h 中定义了一个全局变量 int global_var,并在 main.c 中使用这个变量。

global.h:

#ifndef GLOBAL_H_INCLUDED
#define GLOBAL_H_INCLUDED

extern int global_var;

#endif // GLOBAL_H_INCLUDED

main.c:

#include "global.h"

int global_var = 0;

int main() {
    // 使用 global_var
    return 0;
}

现在我们有另外一个文件 sub.c,它也需要使用 global_var,我们需要在这个文件中对这个全局变量进行初始化:

sub.c:

#include "global.h"

int sub_global_var = global_var;

//对 sub_global_var 进行其他操作

此时编译器会抛出一个错误:

undefined reference to `global_var'

因为我们在 sub.c 文件中没有对 global_var 进行定义,为了解决这个问题,我们可以在 sub.c 文件中加上一个 extern 声明:

sub.c:

#include "global.h"

extern int global_var;

int sub_global_var = global_var;

//对 sub_global_var 进行其他操作

这样在编译时,编译器仍然会在 main.c 文件中找到 global_var 的定义,并且在程序运行时,sub.c 文件中的 sub_global_var 变量也能够正确地引用全局变量 global_var。

相关内容

热门资讯

黑科技科技(wepoke智能a... 黑科技科技(wepoke智能ai)wepower使用说明书(wepOkE)素来是真的有挂(确实有挂)...
黑科技模拟器(wepoke智能... WePoker透视辅助工具核心要点解析‌,黑科技模拟器(wepoke智能ai)wepoke是机器发牌...
黑科技脚本(wepokeai代... 您好,这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款游戏中打牌都...
黑科技辅助挂(wepoke真的... 黑科技辅助挂(wepoke真的有挂)wepoke 软件(wEPOKE)固有真的有挂(有挂猫腻)-哔哩...
黑科技辅助挂(wepoke黑科... 黑科技辅助挂(wepoke黑科技)wepoke软件透明挂演示(wEpOke)一直真的有挂(真的有挂)...
黑科技app(wepoke真的... 此外,数据分析德州()辅助神器app还具备辅助透视行为开挂功能,通过对客户透明挂的深入研究,你可以了...
黑科技智能ai(wepoke辅... 黑科技智能ai(wepoke辅助插件)wepoke软件透明(WEPOke)先前是有挂(果真有挂)-哔...
黑科技模拟器(wepoke透明... 黑科技模拟器(wepoke透明黑科技)wepoke德州扑克用ai代打(WEPOKE)最初存在有挂(有...
黑科技插件(wepoke辅助插... 黑科技插件(wepoke辅助插件)wepoke软件透明(WEPOke)从来是真的有挂(有挂解惑)-哔...
黑科技美元局(wepoke智能... 黑科技美元局(wepoke智能ai)wepoke辅助真的假的(wepoKE)原先真的有挂(竟然有挂)...