Говнокод → Говнокод в Миранде
Вот такая вот реализация функции получения длины номерка UIN в Миранде.
\miranda\miranda\protocols\IcqOscarJ\icq_packet.c, line 206
А как бы вы реализовали такую функцию?
\miranda\miranda\protocols\IcqOscarJ\icq_packet.c, line 206
int __fastcall getUINLen(DWORD dwUin)
{ // TODO: invent something more clever
if (dwUin >= 1000000000) return 10;
if (dwUin >= 100000000) return 9;
if (dwUin >= 10000000) return 8;
if (dwUin >= 1000000) return 7;
if (dwUin >= 100000) return 6;
if (dwUin >= 10000) return 5;
if (dwUin >= 1000) return 4;
if (dwUin >= 100) return 3;
if (dwUin >= 10) return 2;
return 1;
}
{ // TODO: invent something more clever
if (dwUin >= 1000000000) return 10;
if (dwUin >= 100000000) return 9;
if (dwUin >= 10000000) return 8;
if (dwUin >= 1000000) return 7;
if (dwUin >= 100000) return 6;
if (dwUin >= 10000) return 5;
if (dwUin >= 1000) return 4;
if (dwUin >= 100) return 3;
if (dwUin >= 10) return 2;
return 1;
}
А как бы вы реализовали такую функцию?



