0
나는 다음과 같은 한 세트 :C : 파일의 변수에 대한 이해 예상치 못한 beahvior
file1.h
:
char* path = "C:\\temp"
file2.c
#include "file1.h"
char* getFilePath(){
return path;
}
file3.c
:
#include "file1.h"
int main(){
printf(" File path: %s",getFilePath);
}
extern char* path;
을하고이 같은 file2.c
에서 정의 :
char *path = "C:\\test"
나는 위의 솔루션을 컴파일 할 때 내가
file1.h
에
extern char* path;
에
char* path
을 변경하는 경우, 나는, 그러나
LNK2005 error `char *path` already defined
를 얻을 수
다음 모든 게 잘 작동합니다. 그러나 행동의 차이를 이해할 수는 없습니다. 누군가 설명해 주시겠습니까? 수동 인 file2.c file3.c에 fileh.h의 내용을 포함하는 경우
이것은 C++가 아니라 C입니다. 두 태그를 넣지 마십시오 – asimes
file3.c에서'printf ("파일 경로 : % s", 경로);를 의미한다고 가정합니다. –
귀하의 기대는 무엇입니까? – babon