programowanie '51 w C

Nov 20, 2005 9 Replies

witam.



pisze program w C na at89s8252. sa procedury:



void WriteText(char *S) { while (*S) { LcdWrite(*S); S++; } }



void main(void) { WriteText("hello world!"); }



wszystko jest ok, ale chcialbym w ciagu *S wyslac liczbe, ktora jest wartoscia jakiejsc zmiennej int. wymyslilem na to sposob, ale jest dosc dlugi, bo dziele liczbe i zamienia kazda cyfre liczb tysiecy, setek, dzisiatek, jednostek, itd na kod ascii i tak wysylam. zastanawiam sie, czy mozna "przepisac" wartosci np. zmiennej int k = 1234567 do uzycia w miejscu "hello world!" w powyzszej procedurze? prosze o pomoc i sugestie :)


Psychik snipped-for-privacy@ZAPYTAJ.pl napisał(a):

Zainteresuj się funkcją itoa()

A jak chcesz w zmiennej typu "int" czy "unsigned int",upchnąć 1234567 ?

Pozdrawiam Piotrek

U¿ytkownik "Psychik" snipped-for-privacy@ZAPYTAJ.pl napisa³ w wiadomo¶ci news:dlpjjh$rgc$ snipped-for-privacy@opal.icpnet.pl...

A masz do¶æ miejsca w pamiêci programu na implementacjê funkcji printf()/sprintf()? No to nie masz siê nad czym zastanawiaæ ;)

Fishman

Piotrek Sz. napisał(a):

to jest funkcja ktorej szukam, ALE...

"WARNING 206 IN LINE 148 OF moje2.c " 'itoa': missing function prototype

czy to nie jest czasem funkcja obecna wylacznie w C++ ?

no tak... chodzilo o liczbe wieksza niz 9 (dziesienie) :)

Nie, to bardzo stara funkcja. Ale przeszukaj pliki .h - bo najwyrazniej zapomniales dolaczyc tego w ktorym jest zaprototypowana.

J.

J.F. <jfox snipped-for-privacy@poczta.onet.pl> napisał(a):

Kurde !!! Pomyliłem się :( itoa() jest w AVR-GCC , jako funkcja niestandardowa , natomiast w Keil-u i SDCC takowej nie znalazłem :( Przyjdzie Ci skorzystać z (s)pritf() lub napisać własną.

Piotrek

J.F. napisał(a):

wg.

formatting link
wize, ze zainkludowalem to co trzeba. no ale deklaracji itoa ni ma...

Piotrek Sz. napisał(a):

wlasna juz mam, ale dlugawa i strasznie toporna, wiec szukam czegos o czym nie wiem :)

Psychik napisał(a):

dlaczego powołujesz się na dokumentację funkcji uniksowych? zwłaszcza, że wyraźnie piszą, że ta funkcja jest rozszerzeniem API dostępnym w produktach danej firmy.

itoa() nie jest standardową funkcją C. jedni ją implementują po swojemu, inni w ogóle. jeśli napisałeś własną, to trzymaj się jej, póki nie będziesz miał prawdziwych, a nie potencjalnych, problemów z zajętością pamięci albo wydajnością.

w.

Dlatego przeszukaj. Moze umieliscili w innym pliku, moze faktycznie nie ma.

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required