header.c의 extern int x 변수에 액세스 할 수없는 header.c의 다음 코드에 특히 문제가 있습니다 ... 이유는 무엇입니까? .h의 extern 변수가 전역 변수가 아닌가? 이 파일을 다른 파일에 어떻게 사용할 수 있습니까?C 정의되지 않은 참조
=== header.h가 ===
#ifndef HDR_H
#define HDR_H
extern int x;
void function();
#endif
=== header.c ===
#include <stdio.h>
#include "header.h"
void function()
{
printf("%d", x); //****undefined reference to x, why?****
}
===을 sample.c ===
int main()
{
int x = 1;
function();
printf("\n%d", x);
return 0;
}
주 함수에서'x' 전에'int'를 제거 할 수 있습니다. 이것은 전역 변수와 동일한 이름을 가진 주 함수에서 생성되는 새로운 지역 변수를 방지합니다 – bph
(실수로 주석이 추가됨) –
extern int에 대한 자세한 내용은 [http : // stackoverflow]를 참조하십시오.COM/질문/7,610,321/차분 간 통근-INT-A-통근-INT-A-42] [1] [1] : http://stackoverflow.com/questions/7610321/difference -inter-extern-int-a-extern-int-a-42 –