Dalsi zahada v C -> Prevod long int na string
Milan B.
milan na bastl.sk
Pondělí Červenec 25 23:53:20 CEST 2011
On 25.7.2011 23:11, Petr Tošovský wrote:
> Ok diky za vysvetleni. Zkusim si s tim troslu pohrat, to bude asi nejlepsi. Nemate v rukavu jeste nejake "speky"?
>
Nemam:)
V skutocnosti som privrzencom prehladneho a jednoducheho programovania,
bez komplikovanych a za vlasy pritiahnutych konstrukcii.
Ale ten zapis s retazcom ma isty povab - je jednoduchy, mierne exoticky
a tak trochu absurdny. A napriek tomu je intuitivne pochopitelny.
-m-
> 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-
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list