c - 在一个文件中声明一个变量并在另一个文件中使用它

标签 c

我制作了两个与上面程序不同的文件 一个是 temp1.h 另一个是 temp2.​​c 以了解如何使用 extern。 所以这里是 temp1.h

#include<stdlib.h>
typedef struct node * bond;
extern int jk;

而temp2.​​c是

#include<stdio.h>
#include<temp1.h>
struct node {
int data;
};
int main ()
{
bond t1;
t1=(bond)malloc(sizeof(bond));
t1->data=23;
printf("the data is %d\n",t1->data);
jk=0;
printf("The variable jk = %d\n",jk);
}

当我将它们编译为 cc -I ./temp2.​​c 然后我得到

/tmp/ccdeJCat.o: In function `main':
temp2.c:(.text+0x3c): undefined reference to `jk'
temp2.c:(.text+0x46): undefined reference to `jk'
collect2: ld returned 1 exit status

我在 temp1.h 中将 jk 声明为 extern int,为什么我不能在 temp2.​​c 中初始化它?

最佳答案

int jk;

上述声明必须在代码的某处进行。此外,jk 必须是全局的。

关于c - 在一个文件中声明一个变量并在另一个文件中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4274548/

相关文章:

c - 将 __m256i 存储为整数

c - 'read' 系统函数存在问题

c - 为什么 printf 不能正确显示我的数组?

c - 在循环中调用 fscanf 后,Dev C++ 崩溃

c - 如何确定 getopt 中参数的顺序和数量

c - 嵌套 for 循环比预期早结束

c - system() 未按预期使用 %ERRORLEVEL%

c - 正交缩放opengl视口(viewport)

我可以在 ubuntu 的程序中间使用自动补全功能吗?就像在 scanf() 函数时一样

c - 求一个整数的质因数之和的函数