에 '더블'에서 변환 할 수 없습니다이 내가 얻을 정확한 오류입니다 :'기능은': '의 wchar_t의 *'나는 비주얼 스튜디오 2010에서 컴파일하려고
Error 65 error C2440: 'function' :
cannot convert from 'double' to 'const wchar_t *'
기분을 상하게하는 선 존재 :
swprintf(subbuf[num], L"%f\0", va_arg(args, double));
이 코드는 코드를 변경하지 않는 것이 좋습니다. 이 문제를 해결할 수있는 컴파일러 옵션이 누락 되었습니까?
편집: 여기
이 subbuf
의 선언입니다 : 크기 인수에 관한, 또한
#define GDB_CHAR wchar_t
GDB_CHAR subbuf[MAX_SUBS][STATUS_MSG_LEN+1] ;
, 나는 또한 문서의 페이지를 확인하지만, 컴파일러 는 오류가 발생하지 않습니다 on
swprintf(subbuf[num], L"%c\0", va_arg(args, int));
따라서 int
~ wchar_t *
이고 함수의 인수는 ok입니다.
아직 충분히 유익하지 않은 경우 의견이 있으시고 다른 사람들에게 알려 주시기 바랍니다. 감사합니다.
'subbuf'유형은 무엇입니까? (C++ 태그가 C 코드 인 경우 C++ 태그를 제거해야하며 그 반대의 경우도 마찬가지입니다.) –
선언하지 않은 식별자를 사용하면 컴파일 할 수 없습니다. 유용한 코드 스 니펫을 게시 할 때까지는 유용한 대답을 기대할 수 없습니다. –
@Deepak : Potatoswatter의 대답이 옳습니다. 컴파일러가'int '를 포인터 (암시 적으로 높은 경고 레벨을 선택해야 함)로 암시 적으로 변환 시키지만, 이중으로 포인터를 현명하게 변환 할 수는 없다는 것은 놀라운 일이 아닙니다. 올바른 주장을 사용하려고하지 않는 이유는 무엇입니까? –