求一个c语言题目

来源:百度知道 编辑:UC知道 时间:2024/09/28 07:37:05
三个文件:
(1) q.h:
#include <stdio.h>
int a=6;
void print(void);

(2) q1.c:
#include "q.h"
int main(void)
{
printf("a=%d\n", a);
print();
return 0;
}

(3) q2.c:
#include "q.h"
void print(void)
{
printf("a=%d\n", a);
}
三个一起编译,不能通过,为什么?

看一下#ifndef,#deinfe,#endif的用法就知道了。
头文件这样改
#include <stdio.h>
#ifndef _P_H
#define _P_H
int a=6;
#endif
void print(void);

第(3)个文件名应该是q2.h吧

你的变量a的定义放到了头文件中,造成重复定义了。