【问题标题】:Visual studio code C external filesVisual Studio 代码 C 外部文件
【发布时间】:2021-11-22 15:47:39
【问题描述】:

每当我尝试在同一文件夹的另一个 .c 文件中使用 extern 变量时,或者如果我想使用外部函数时,我都会收到错误:ld 返回 1 退出状态

如果我尝试将 eclipse 用于同一个示例,它可以正常工作

【问题讨论】:

  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: c eclipse visual-studio-code extern


【解决方案1】:

使用(外部)变量之前,您必须先声明它,然后定义它。

示例

在头文件中声明 var,例如foo.h:

extern int my_extern_var; //declaration (extern)

在源文件中定义它,例如foo.c:

#include "foo.h"   //include the declaration
int my_extern_var; //definition

然后在任何其他源文件中使用它:
(即使 foo 是一个库并链接到下面的程序)

#include <stdio.h>
#include "foo.h" //include the declaration

int main() 
{
    my_extern_var = 42; //usage of 'global' var
    printf("%d\n", my_extern_var);

    return 0;
}

参考:

【讨论】:

  • 我仍然收到错误:(未定义对 'my_extern_var' 的引用)另外,当我在 eclipse 中使用 extern 时,我不需要头文件,它只需要两个在 main 中提到 extern 变量的源文件即可将引用 other.c 文件
  • 要么在头文件中声明它并将它包含在要使用的地方,要么在每个源文件中声明它。关键是,它必须在某处声明为 extern 并在其他地方定义,var 也可以同时声明和定义,如extern int my_extern_var = 42;。检查您的来源、声明的位置和定义的位置。也许,你给我们看一些代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 2016-05-09
  • 1970-01-01
  • 2021-08-22
  • 1970-01-01
  • 2020-07-27
相关资源
最近更新 更多