2010-08-14 2 views
2

나 자신이 반환 형식을 많이 사용하여 컴파일러 경고를 무시하고 나에게 뭔가 잘못하고있는 것처럼 느껴집니다. 최대 길이 :기본 반환 형식 캐스팅에 대한 간단한 질문

이 예제에서는 오브젝티브 C

const char *strBuf = [anNString UTF8String]; 
[anOutputStream write:strBufr maxLength:len]; 

const char * 및 기입의를 반환 -UTF8String 로 나에게 컴파일러 경고를 goves입니다 더 나은 내가 일반적으로 추가 할 알고, 그래서 const uint8_t *

소요 잔소리를 멈추고 나의 즐거운 길을 계속하는 던지기.

이 나쁜 스타일 (내 부분)입니까, 아니면 그냥 그런 모양입니까?

나는 모든 생각이나 조언을 주셔서 감사합니다.

답변

0

이 문제를 해결할 방법이 없습니다. C, C++ 및 Objective-C는 강력한 형식의 언어입니다. 그래서, 언제든지 타입 변환이있을 때, 컴파일러 경고를 얻게 될 것입니다. 그 주위의 유일한 방법은 항상 가능하지는 않은 동일한 유형을 사용하는 것입니다. 전형적입니다. 나는 네가하는 일을 계속 해낼거야. 경고를 무시하거나 해제하지 마십시오. 오류를 수정할 수있는 하나의 유형 변환이 있으 G로이를 t십시오. 경고 메시지가 표시되면 버그를 발견하는 것이 매우 어려워 질 수 있습니다.

+0

감사 zooropa. 필자는 컴파일러의 경고에 가치를두고 일반적으로 C를 더 용서하고 느슨하게 형식화 된 언어로 선호합니다. 이는 내가 종종 경고를 피해 가려는 것이 잘못되었다고 생각하는 이유입니다. – hooleyhoop

0

이런 종류의 주조는보기 흉하지만 일종의 유형 불일치를 처리하는 가장 일반적인 방법입니다. 일부 컴파일러는 이러한 경고를 경고하는 다른 방법을 제공하지만 때때로 경고를 끄는 것은 나쁜 아이디어입니다. 주조는 차이점을인지하고 가능한 결과에 대해 생각해 봤는지 확인합니다.

(그냥 생각없이 잘못 심하게 갈 수있는 일을 시전하면 . 결과에 대해 생각 마십시오.하지만, 그것은 보이지 않는다. 그 일을하지 않는)