我正在尝试编译一个包含 .c 文件标头的 C 程序。
但只有 1 个 .c 文件真正使用了头文件中定义的变量。
这是一些会产生链接器问题的示例代码。
我试图让我的头文件包含 2 使用的全局变量
不同的 .c 文件...任何类型的帮助将不胜感激。谢谢。
tmp1.h 文件
#ifndef TMP1_H_1
#define TMP1_H_1
double xxx[3] = {1.0,2.0,3.0};
#endif
tmp1.c 文件
#include "tmp1.h"
void testing()
{
int x = 0;
x++;
xxx[1] = 8.0;
}
main1.c文件
#include <stdio.h>
#include "tmp1.h"
int main()
{
printf("hello world\n");
}
问题是您正在初始化头文件中的变量,因此您会得到重复的符号。您需要声明double xxx
与extern
关键字,然后在任一 .c 文件中对其进行初始化。
Like so:
#ifndef TMP1_H_1
#define TMP1_H_1
extern double xxx[3];
#endif
然后在 .c 文件之一中:
double xxx[3] = {1.0,2.0,3.0};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)