>백엔드 개발 >C++ >내 C 코드에서 정적 변수 연결 오류가 발생하는 이유는 무엇입니까?

내 C 코드에서 정적 변수 연결 오류가 발생하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-16 01:24:10311검색

Why Am I Getting a Static Variable Linking Error in My C   Code?

C의 정적 변수 링크 오류

C 코드를 컴파일할 때, 특히 Mac에서 "정적 변수 링크 오류"가 발생할 수 있습니다. 제공된 코드 조각에 보고된 것과 유사합니다. 이 오류는 일반적으로 외부(*.cpp 파일)에서 적절하게 정의되지 않은 정적 변수를 참조하려고 할 때 발생합니다.

문제의 근본

제공된 코드에서 정적 변수 "theString"은 "Log.h" 헤더 파일에 선언되었지만 정의되지는 않았습니다. 정적 변수는 메모리를 예약하고 초기화하기 위해 해당 *.cpp 파일에 외부 정의가 필요합니다.

해결 방법

연결 오류를 해결하려면 정의를 추가하면 됩니다. 표시된 대로 "theString"을 "Log.cpp" 파일에 추가합니다. 아래:

// Log.cpp

string Log::theString; // Define the static string here

추가 권장 사항

정적 변수를 외부에서 정의하는 것 외에도 "네임스페이스 std 사용"을 사용하지 않는 것이 좋습니다. 헤더 파일에. 이러한 관행은 네임스페이스 오염으로 이어질 수 있으며, 향후 코드 디버깅 및 유지 관리가 더 어려워집니다.

위 내용은 내 C 코드에서 정적 변수 연결 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.