From: Arkadium <magicamk@poczta.onet.pl>
Newsgroups: pl.comp.lang.c
Subject: Szybkie itoa
Date: Sun, 18 Sep 2011 21:29:35 +0100
[...]Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail
Organization: http://onet.pl
Lines: 28
Message-ID: <j55kbe$sqt$1@news.onet.pl>
NNTP-Posting-Host: 88-110-115-13.dynamic.dsl.as9105.com
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1316377774 29533 88.110.115.13 (18 Sep 2011 20:29:34 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Sun, 18 Sep 2011 20:29:34 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20110902 Thunderbird/6.0.2
Xref: news-archive.icm.edu.pl pl.comp.lang.c:296174
Muszę napisać funkcję itoa, bo nie mam w bibliotece na maszynie gdzie 
się odbędzie właściwa kompilacja. Na razie mam coś takiego znalezionego 
w sieci i lekko przerobionego:

char *itoa(int value, char* result){
char *ptr = result, *ptr1 = result, tmp_char, *digits = "0123456789";
int tmp_value;
do{
         tmp_value = value;
         value /= 10;
         *ptr++ = *(digits + tmp_value - value * 10);}
while (value);
*ptr-- = 0;
while(ptr1 < ptr){
         tmp_char = *ptr;
         *ptr--= *ptr1;
         *ptr1++ = tmp_char;}
return result;
}

Kompilowane Borlandem na pececie jest lekko szybsze od 'wbudowanego' 
itoa (0.9 sec. do 1.4 sec. dla iluś tam iteracji). Funkcja *nigdy* nie 
dostanie liczby ujemnej i większej od 65535 i *zawsze* ma zwracać wynik 
dziesiętnie. Odpada więc problem ze znakiem, ewentualny overflow i 
zabawa z base.
Pytanie właściwe: jak to napisać żeby było szybsze.
-- 
Signature error: 0x00fe (0x00fe).