Re: Mikro C PIC - string - problém
Martin Persich
persich na transcon.cz
Úterý Leden 14 10:35:04 CET 2014
Pokud používáte standardní funkce "str...()", tak si bohužel délku bufferů musíte v programu hlídat sám. A hodně důsledně! Stačí chvilka nepozornosti a i po několika letech se objevují v programu chyby... To je bohužel jeden z velkých nedostatků (a zárověň výhod .-) ) jazykä "C".
Martin
----- Original Message -----
From: Jan Půhoný
To: HW-news
Sent: Tuesday, January 14, 2014 10:25 AM
Subject: Re: Mikro C PIC - string - problém
Díky moc - bylo to tou špatnou deklarací v druhém souboru, proto mi to rozhazovalo displej a občas se to i kouslo.
Teď se to chová korektně.
Je tedy potřeba hlídat, aby délka toho bufferu byla vždy 16+1 znaků? Není na to nějaká funkce která by to zajistila?
Ještě jednou díky všem, nemohl jsem na to dlouho přijít.
Honza Půhoný
S pozdravem Ing. Jan Půhoný
www.puhy.cz
puhy na puhy.cz
Navštivte nás na Facebooku:
http://www.facebook.com/puhy.cz
Následujte nás na Twitteru:
https://twitter.com/puhycz
Náš kanál na YouTube:
http://www.youtube.com/user/puhyeu
Připojení k internetu a VoIP telefonování
http://www.puhy.net
Dne 14. ledna 2014 10:01 Martin Persich <persich na transcon.cz> napsal(a):
V druhém souboru by měla být jen deklarace:
extern unsigned char prvni_r[];
extern unsigned char druhy_r[];
Počet prvků (délku bufferu) si musí program v "C" bohužel hlídat sám, není problém téměř cokoliv, kdekoliv přepsat mimo tento buffer ... :-(
Jinak ten uvedený zápis jednotlivých prvků do bufferu v druhém souboru je dle mého v pořádku a v rámci možností (tj. jazyka "C") korektní.
Martin. persich na transcon.cz
----- Original Message -----
From: Jan Půhoný
To: HW-news
Sent: Tuesday, January 14, 2014 9:37 AM
Subject: Re: Mikro C PIC - string - problém
Díky všem za odpovědi.
Zdá se, te strcpy funguje stejně jak s & tak bez &. Ještě to ale trochu zlobí, když do prvni_r a druhy_r šahám přes takovýto zápis
extern unsigned char prvni_r[17]=" ";
extern unsigned char druhy_r[17]=" ";
prvni_r[8]=jednotky;
prvni_r[9]=desitky;
prvni_r[10]=':';
z jiného c souboru stejného projektu.
V hlavním c souboru s main void mám definici takto:
unsigned char prvni_r[17]=" ";
unsigned char druhy_r[17]=" ";
Jak korektně přistupovat ke stejným proměnným z různých c souborů projektu?
Díky.
Honza Půhoný
Dne 13. ledna 2014 22:13 Martin Persich <persich na transcon.cz> napsal(a):
A ještě jeden postřeh. Pokud se jedná o buffer pro 16-ti znakový LCD displej, tak pro použití funkce "strcpy()" je nezbytné, aby tento buffer měl délku 17 znaků (pro uložení ukončující "nuly" - '\0' ). Jinak dojde k nedefinovanému přepsání "následující" proměnné.
Martin. persich na transcon.cz
----- Original Message -----
From: Aleš Novák
To: HW-news
Sent: Monday, January 13, 2014 9:32 PM
Subject: Re: Mikro C PIC - string - problém
Nemelo by to byt spise takhle:
stcrpy(prvni_r,"testovaci napis");
Jmeno pole je samo o sobe pointer na jeho prvni polozku.
Ales
13. ledna 2014, 20:31:59, napsal jste:
Zkuste stcrpy(&prvni_r,"testovaci napis");
LK
Dne 13.1.2014 19:53, Jan Půhoný napsal(a):
Zdravím konferenci,
mám tady takový lama problém v C (Mikro C pro PIC řady 16).
V proměnné prvni_r mám znaky pro první řádek LCD displeje (pak to vypisuji přes Lcd_Out(1,1prvni_r); - to funguje.
//definice
unsigned char prvni_r[16];
//editace znaků
prvni_r[5] = 223;
prvni_r[6] = 'C';
prvni_r[7] =' ';
Lcd_Out(1,1prvni_r); //na pozici 5,6,7 mi to vypíše °C
to funguje ok
Proč ale nefunguje toto:
prvni_r="testovaci napis";
na tomto řádku to hází error: Assigning to non-lvalue
Co s tím, abych tam mohl dávat jak celé řetězce a zároveň editovat jednotlivé znaky?
Díky,
Honza Půhoný
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
--
S pozdravem,
Aleš
alesh.novak na email.cz
----------------------------------------------------------------------
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
--------------------------------------------------------------------------
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
------------------------------------------------------------------------------
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140114/d08dc789/attachment-0001.html>
Další informace o konferenci Hw-list