번역 단위 간 문자열 리터럴 주소 일관성
질문:
가정하는 것이 신뢰할 수 있습니까? 동일한 내용을 가진 문자열 리터럴은 서로 다른 번역 단위(예: 서로 다른 소스 파일)에서 동일한 메모리 주소를 갖게 됩니까?
답변:
아니요, 문자열에 의존합니다. 번역 단위 전체에서 일관성을 유지하기 위한 리터럴 주소는 이식 가능하지 않으며 지정되지 않은 동작으로 간주됩니다.
C 및 C 표준에서는 동일한 내용을 가진 문자열 리터럴이 별개의 메모리 위치를 차지할지 여부가 구현에 따라 정의된다고 명시합니다. 이는 서로 다른 컴파일러 또는 런타임 환경이 문자열 리터럴을 다르게 처리하여 잠재적으로 다양한 메모리 주소를 할당할 수 있음을 의미합니다.
의미:
옵션:
동일한 번역 단위(예: 단일 소스 파일) 내에서 일관된 문자열 리터럴 주소가 필요한 경우 일부 컴파일러는 다음과 같은 옵션을 제공합니다.
참고:
위 내용은 동일한 내용을 가진 문자열 리터럴은 다른 번역 단위에서 동일한 주소를 갖도록 보장됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!