C에서 선언된 전역변수, C++ 클래스 내에서 사용할수없나요??
흰두루
2024.02.27
안녕하세요.
사회초년생입니다.
다름이 아니라, 프로그래밍을 하다가 잘안되는부분이 있어서 이렇게 질문드립니다.
C와 C++ 소스 연동하려고하는대,
하나의 전역변수로 둘 사이에 데이터 교환을 해야 합니다.
현재 구조는,
a.h - 전역변수 int K; 선언
a.c - K = 1; 등으로 정의
b.cpp- include a.h extern int K;
if(K=1) ~~~~~~~~~~~~~~~~~``어쩌구저쩌구
이런식으로 하려고하는대,
빌드를 되는대 데이터값이 복사가 안되네요.
전역변수면 값이 저장되어 다른소스에서도 참조할수 있는 것 아닌가요?
a.c에서는 print 찍어보면 1뜨는데
b.cpp에서는 계속 k=0 이렇게되네요.
메모리 복사가 안되는건지,,,,,,
해결책좀 알려주시면 감사하겠습니다.
멤버함수참조해도 안되고,
알려주세요 ㅠㅠ
클래스 내부에는 혹시 다른 소스의 전역변수가 침범이 안되는건가요?
-
찬솔나라 2024-02-27
전역 변수인데 참조 안될리가 있나요?
제가 보기엔 전역 변수 k의 값이 변경되는 부분이 수행되기 전에 먼저 k의 값을 읽은게 아닌가 싶군요.
전역 변수 k에 접근 순서를 확인해보세요.
아니면 같은 이름의 로컬 변수 k가 선언되어 있었다던가...