2009-05-28 2 views
1

필자는 최근 MCF C++ 응용 프로그램을 사용했는데, 이는 분명 작동 상태입니다. 시작하려면 코드에서 PC-Lint를 실행 중이며 lint는 CStringT가 Format으로 전달된다는 불평을합니다. 인터넷에 대한 의견이 분열 된 것 같습니다. 어떤 사람들은 CSting이 에러없이이 유스 케이스를 처리하도록 설계되었지만 다른 것들 (그리고 MSDN article)은 가변 인수 함수에 전달 될 때 항상 캐스트되어야한다고 말합니다.)Format/printf (및 일반적으로 varargs)에 전달 된 CString을 캐스팅해야합니까?

답변

3

CString 가변 인수 목록의 일부로 전달되도록 신중하게 설계되었으므로이 방법을 사용하는 것이 안전합니다. 그리고 Microsoft는이 특정 동작을 중단하지 않도록주의를 기울일 것입니다. 당신이 원한다면 그 방법을 계속 사용하는 것이 안전합니다.

개인적으로 나는 캐스트를 선호 할 것입니다. 문자열 클래스가 그런 식으로 행동하는 것은 일반적인 행동이 아닙니다 (예 : std :: string does not) 그리고 for 정신적으로 일관성이 있다면 "안전한"방법으로하는 것이 낫습니다.

P.S .: 구현 방법과 캐스팅 방법에 대한 자세한 내용은 thread을 참조하십시오.

관련 문제