Eski Visual Studio 6'mda temel olarak şu şekilde görünen itow() öğesini çağırıyorum:İtow() için INT_SIZE_LENGTH 20, neden?
#define INT_SIZE_LENGTH 20
wchar_t* _itow(wchar_t*bif, int i, int radix)
{
char abuf[INT_SIZE_LENGTH];
itoa(abuf, i, radix);
// convert_to_wide_char();
}
Şimdi INT_SIZE_LENGTH
tanımına dikkat edin. Bu neden 20'ye ayarlandı?
Bir int32 için en kötü durum -4294967295
olmalıdır, sağ. Ve bu sadece 11 karakter artı \ 0. (Kendi arabam, _itow çağrısı, sadece 13 uzun. Ben yeterli olduğunu düşündüm.) Xzx30
(Olumlu bir int64 20 karaktere kadar, 21 kadar bir negatif olurdu. Ama bu yöntem için 32 bit tamsayılar. Xzx32
Burada bir şey özlüyorum gibi hissediyorum? Herhangi bir fikir minnetle alındı.
(Visual Studio 2008 koduna baktım ve kod tamamen yeniden yazıldı. Bu yüzden VS6 kodu o kadar iyi değil.)
20 kesinlikle * yeterli değil * çünkü 'radix '2 olabilir. – kennytm
En azından VC8 belgeleri" radix "*" 2–36 "* aralığında olmalıdır. –
Evet, sanırım VC6'nın arabası olduğunu biliyordum ... – leiflundgren