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