CodeVisionAVR - co robię nie tak?

Witam.

Czy może ktoś podpowiedzić mi co jest nie tak w moim krótkim kodzie w CodeVisionAVR. Kod kompiluje się bezbłędnie, konfiguracja jest ok, dlaczego jednak program nie działa. Czy ktoś może sprawdzić to u siebie na komputerze i AVRe, bo wydaje mi się że tutaj źle kompiluje CodeVisionAVR.

... char c; char buffer[32]; char *s; ... while (1) { //Odbiór stringa s=buffer; while(c=getchar()!=0 ){ *s=c; s++; } *s=0; //Wysłanie stringa s=buffer; while( *s != 0 ){ putchar(*s); s++; } } }

Z góry dzięki za odpowiedź bo męczę się chyba nad tym juz z tydzień. Pozdrawiam.

Reply to
Pinarczuk
Loading thread data ...

Pinarczuk napisał(a):

powinno być: while ( (c=getchar()) != 0 ) przy założeniu że chcesz zapisać pobrany znak do zmiennej c i porównać z zerem, no i jesteś pewien, że ostatni znak będzie zerem

Pozdrawiam czerstwy

Reply to
czerstwy

Pinarczuk wrote on 23 Sep 2004 18:50:56 +0200: [.....]

Kompilator to chyba kompiluje poprawnie, problem w tym że nie jest zbyt dobry ponieważ nie wyrzuca ostrzeżenia na takie coś:

Występuje tutaj niejednoznaczność i kompilator generuje kod taki jak to przewidzieli jego twórcy aczkolwiek nie taki jakiego Ty byś oczekiwał. :-) Jak mniemam ten wiersz powinien wyglądać tak: while ((c = getchar()) != 0) { a ze względu na brak nawiasów kompilator prawdopodobnie potraktował go tak: while (c = (getchar() != 0)) { Przyzwoity kompilator natychmiast wyrzuci ostrzeżenie w takim miejscu.

Tydzień? Przez ten czas możnaby spokojnie przeczytać kilka pierwszych rozdziałów jakiejś dobrej książki o C gdzie są opisane takie rzeczy. :-)

Regards, /J.D.

Reply to
Jan Dubiec

while(1) { s=buffer; while(c=getchar()) *s++ = c; *s = 0; ...

Krzysiek

Reply to
invalid unparseable

dokladnie; polecam koledze nauke _podstaw_ programowania w C; /oczywiscie na 80486 'lub wyzsze' w np. bc a nie na avr w cvavr...

Reply to
Q

poza tym: cvavr ma code wizarda, sporo przykladow jest na sieci, ...

Reply to
Q

On Fri, 24 Sep 2004 16:54:29 +0200, "Q" snipped-for-privacy@gazeta.gov.pl> wrote: [.....]

C to jest C. Poprawnie napisany kod w ANSI C [*] da się skompilować praktycznie każdym współczesnym kompilatorem i będzie on działał poprawnie. Oczywiście chodzi o kod nie wykorzystujący jakichś cech lub bibliotek systemowych specyficznych dla danej architektury. Generalnie należy nauczyć się odróżniać język C od kompilatora tego języka oraz od bibliotek systemowych. Aha, no i warto również nauczyć się odróżniać kompilator i linker od IDE. :-)

[*] Oczywiście są inne (tzn. nowsze) standardy C, ale ANSI C jest obecnie "najmniejszym wspólnym mianownikiem"

Regards, /J.D.

Reply to
Jan Dubiec

Pomijajac co koledzy slusznie wytkneli, to jeszcze: a) czy na pewno chcesz zeby program wczytywal dane az do znaku 00h ? Trudno taki wyslac z peceta.

b) przyzwoitosc nakazuje sprawdzac czy bufor sie nie przepelnia ..

J.

Reply to
J.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.