Dalsi zahada v C -> Prevod long int na string

Petr Tošovský PetrTos na altopro.cz
Pondělí Červenec 25 23:11:39 CEST 2011


Ok diky za vysvetleni. Zkusim si s tim troslu pohrat, to bude asi nejlepsi. Nemate v rukavu jeste nejake "speky"? 

Tosa

"Milan B." <milan na bastl.sk> napsal(a):

>On 25.7.2011 19:46, Petr Tošovský wrote:
>> Mam dotaz k radku
>> s[i++] = "0123456789ABCDEF"[n % radix];
>> Jestli to dobre chapu, tak na jednom radku definujete pole primym
>zapisem a indexem z polehned vyberete vhodny prvek podle zbytku deleni.
>To je korektni zapis? C znam jen na urovni beznych zakladu. Mate
>zkusenost jak se to pak implemenuje? Neni lepsi mit retezec v datove
>pameti jako promennou primo? Ma to nejake vyhody/nevyhody?
>> Diky za peknou ukazku.
>>
>
>Neviem, ktora cast normy o tom pojednava, resp. tento zapis pripusta (a
>
>nemienim to sialenstvo teraz studovat). Niekde som ho videl a zapacil
>sa 
>mi. Kompilator (ani pri obmedzeni na ANSI alebo C90) a ani splint 
>neprotestuju..., takze asi bude OK.
>
>Ale o co ide: - retazcova konstanta je interpretovana ako pole znakov, 
>co v C znamena ze je to smernik na pole znakov umiestnenych v pamati 
>konstant. Podobne ako pri zapise:
>
>char *s="12345";
>
>sa ten retazec musi niekam ulozit a dalej pracujeme len s jeho adresou.
>
>Zapis som pouzil z dovodu kompaktnosti prikladov, ktore som uvadzal.
>
>Implementuje sa to jednoducho - vytvori sa konstantna retazcova
>premenna 
>a pracuje sa s nou. GCC aj s vypnutou optimalizaciou tuto premennu 
>vytvori iba raz, aj ked sa retazec vyskytne na viac miestach.
>
>-m-


Další informace o konferenci Hw-list