【发布时间】:2013-04-01 17:24:57
【问题描述】:
我是 C 编程的初学者,我正在尝试不同的方法并尝试使用小程序。
我有四个文件。两个头文件和两个源文件。我想:
- 声明一个变量(实际上是两个变量和一个字符)和一个 函数(来自第二个源文件)在一个头文件中。
- 定义这些变量并在第二个标题中为它们赋值 文件(第 1 点的变量)。
- 编写一个包含这两个头文件并使用 这些文件中的值(第 2 点)在一个源文件中(没有主文件) 只是一个使用变量的函数定义)。
- 有一个从第二个调用函数的主源文件 源文件(从第 3 点开始。)
我怎么会这样?我在两个 .c 文件中都包含了两个头文件。但是当我尝试编译和链接它(在 Linux 中使用 GCC)时,我得到了一个
multiple definition ... first defined here 所有变量的错误。
我看过这些答案First 和Second 我不太明白Second 中的答案,因为我无法弄清楚如何使用标题保护。 我不知道如何检查所有方框(第 1 点到第 4 点)。
header1.h
extern int i,j; extern char c;
void ad_d();
header2.h
int j=6;int i=7;
char c='x';
fnfile.c
#include "header1.h"
#include "header2.h"
#include<stdio.h>
void ad_d()
{
i+=j;
printf("\n %d \t %c \n", i,c);
}
filemain.c
#include<stdio.h>
#include "header1.h"
#include "header2.h"
void main()
{
ad_d();
}
【问题讨论】:
标签: c header-files preprocessor-directive multiple-definition-error