gpt4 book ai didi

c - 在 C 中链接外部变量

转载 作者:太空狗 更新时间:2023-10-29 16:33:32 25 4
gpt4 key购买 nike

在 Unix 中,我有三个主要文件。其中一个是库,另一个是程序。

  • MyLib.cMyLib.h 是库。
  • main.c 是程序。

MyLib.h 中,我有一个声明 (extern int Variable;)。当我尝试在 main.c 中使用 Variable 时,我做不到。当然,我在 MyLib.cmain.c 中包含了 MyLib.h,并且我也链接了它们。无论如何,该变量在 main.c 中无法识别。

如何在链接程序时获取可用变量?

最佳答案

Variable 必须在某处定义。我会在 MyLib.c 中将其声明为全局变量,然后仅在 main.c 中将其声明为 extern

发生的事情是,对于 MyLib.cmain.c,编译器被告知 Variable 存在并且是一个 int,但它在其他地方 (extern)。这很好,但它实际上必须在其他地方,当你的链接器试图将所有文件链接在一起时,它找不到 Variable 实际上在任何地方,所以它告诉你它没有'存在。

试试这个:

MyLib.c:

int Variable;

MyLib.h:

extern int Variable;

主.c:

#include "MyLib.h"

int main(void)
{
Variable = 10;
printf("%d\n", Variable);
return 0;
}

关于c - 在 C 中链接外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com