the answer to this question 에 의견을 추가하고 싶었지만 충분한 점수가 없었습니다. 다음 코드를 고려하십시오. errordesc
에서 오류 설명을 어떻게 조회합니까? 내가 생각해 버전과이 문제를 볼 수 있습니다오류 설명에 오류 코드 매핑
/* add E_COUNT = 3 to enum _config_error */
const char *errorstring(error_t errnum)
{
unsigned int i;
for (i = 0; i < E_COUNT; ++i) {
if (errordesc[i].code == errnum) {
return errordesc[i].message;
}
}
return "Can't reach this point";
}
- 하나 열거의 크기를 알고 수행하고 수동으로
- 하나는 루프에 대한 후 반환에 도달 할 수
E_COUNT
3으로 설정한다, 무엇을 할 것인가? - 더 나은 솔루션이 있습니까?
오류 코드는 연속입니다 ... 또한 C에서
bsearch()
있다. 나는이 사실에 의존하지 않기를 바랄 것이다. –@MichaWiedenmann 그렇다면 현재 솔루션이 괜찮다고 생각합니다. 비록 1에서 제안 된대로 오류 코드의 수를 계산해야합니다. – rasmus