GCC 4.3에서는 문자열 상수가 char*로 변환될 때 경고를 표시합니다. 더 이상 사용되지 않는 이 변환의 인스턴스가 많은 대규모 코드베이스에서 작업하는 개발자의 경우 영향을 받는 모든 코드를 수동으로 업데이트하는 것이 어려울 수 있습니다. 이 문서에서는 코드 품질을 손상시키지 않고 이러한 경고를 억제하는 방법을 다룹니다.
해결책:
기본 문제는 문자를 기대하는 함수에 문자열 리터럴을 인수로 전달하는 데서 비롯됩니다. 경고를 해결하려면 대신 const char을 허용하도록 이러한 함수를 수정해야 합니다.
설명:
문자열 리터럴은 변경할 수 없으며 읽기 전용으로 저장됩니다. 메모리 세그먼트. 불변성을 제거하는 등 이러한 문자열 상수를 수정하려는 시도는 정의되지 않은 동작입니다. 따라서 문자열 리터럴을 수정할 수 있는 함수에 전달할 때 인수 유형으로 const char*를 사용하는 것이 중요합니다.
예:
다음 코드를 고려하세요. :
void print(char* ch); int main() { print("Hello"); return 0; }
여기서 인쇄 함수에는 수정 가능한 char 인수가 필요합니다. 의도한 동작을 유지하면서 경고를 비활성화하려면 아래와 같이 const char을 허용하도록 함수를 수정하세요.
void print(const char* ch) { std::cout << ch; }
위 내용은 더 이상 사용되지 않는 문자열 상수 변환에 대한 GCC 4.3 경고를 어떻게 숨길 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!