2
나는 여기에서이 질문을 보았다 : How do I use extern to share variables between source files? 설명서를 따랐다.extern 선언 및 헤더 파일 C
가 ------ 확인 :하지만 여전히 나는 는 그런 일이 왜 어떤 도움과 설명을 얻을 싶어요 링커 오류 ... ..
나는 2 개가 .c 파일과 하나 개의 헤더 파일을 얻을. H ----
#ifndef check
#define check
extern int num;
#endif
---- ---- check.c
#include "check.h"
#include <stdio.h>
int func(int x, int y)
{
int z = x+y;
return z;
}
void printnum()
{
num++;
printf("%d",num);
}
---- ---- ynnynyny.c
01,234,내가 이러한 오류가 계속 :
1> ynnyny.c
1> check.c
1> Generating Code...
1>ynnyny.obj : error LNK2005: _func already defined in check.obj
1>ynnyny.obj : error LNK2005: _printnum already defined in check.obj
내가 #ifndef 물건 또한 통근 선언을 썼다, 그래서 뭐가 문제인가?
감사합니다.
더 많은 점을 말하자면 어떤 C 파일도 절대 포함하지 마십시오! –
또한 파일의 이름을 ynnynyny.c로 지정하지 마십시오. – Shahbaz
@KevinVermeer, 특히 동의하고 싶습니다. 특히 초보자 인 경우. 나는 실제로 매우 특별한 상황에서 .c 파일을 포함 시켰습니다. (주로 그 방법을 적용한 다른 파일에 .c를 "포장"하고 싶을 때). 그러나 컴파일러가 내부 .c 파일과 외부 .c 파일을 모두 컴파일하지 않도록해야합니다. –