C kerdes
Fuzesi Arnold
arnold.fuzesi.lista at gmail.com
Wed May 31 15:30:59 CEST 2006
Nem, akkor nem pampog ha nem 0...F :)
------------------
do-while(0):
if(blabla)
MYPSTR(blabla);
else{
blabla
}
Asszem vmi hasonlo esetben {}; -el anyázik, vagy hulyeseget fordit.
1x megszivtam ezt nagyon, azota igyvan. Csak szintaktikailag van
jelentosege.
MYPSTR ertelme:
printf_P(PSTR("\r\nHello 3!\r\n"));
Ilyet itt fenn nem tud csak a GCC kb...
A PSTR itt: _MEMATTR __c[]= s;
Adott a myprintf_P() fuggveny, ami __flash conts char* tip format stringet
vár.
Azaz a formátumstringet a flash-ben tárolja, ne ramban.
(Ezért nemjó a sima printf("akarmi"), mert pikkpakk elfogy a RAM.)
Ezert kell az egesz trükk. Hogy be tudjam varazsolni a printf belsejébe a
dolgot.
MYPSTR csinal egy kis flash tömböt, egy globalis pointert rairanyit.
Aztan a myprintf abbol dolgozik.
Mivel a MYPSTR forditasi idoben foglal memoriat, ezert tulkepp tök
bedrótozott lesz az egesz ugyan azt csinalja mint a GCC-s trükk, csak kicsit
fapadosabb,két lépésben tudom csak megoldani.
A.
----- Original Message -----
From: "Moczik Gabor" <pm at progzmaster.hu>
To: <elektro at tesla.hu>
Sent: Wednesday, May 31, 2006 2:29 PM
Subject: Re: C kerdes
Ha nem 0..F karaktert irsz utana, akkor nem pampog, hogy "Invalid hex value'
vagy ilyesmi? ;-)
> Ez az alap amivel dolgoznék:
> MYPSTR("\x0080C");
> #define MYPSTR(s) do{static const char!!!!!! _MEMATTR __c[]= s; MYSTRING=
> __c;}while(0)
Miert kell a do/while? Csak hogy blokkban legyen?
Ahhoz eleg a { } is, nem?
Mit is csinal ez? A __c stringbe beteszi a parametert, a MYSTRING-be meg a
__c-t. MYSTRING=s miert nem jo?
> Asszem marad a favagas..mindegy, nem veszes...csak uj volt maga a
> problema.
Szerintem ez bug, nezd meg esetleg a fordito forumjat vagy miegymasat, hatha
mas is tapasztalta mar...
--
((( Móczik Gábor )))--((( pm -> @ -> progzmaster -> . -> hu )))
((( Skype: moczik )))--((( Website: http://www.progzmaster.hu )))
-----------------------------------
Szponzorunk: http://tonerbolt.hu/
More information about the Elektro
mailing list