Re: Formátovaný tisk bylo Re: sprintf - co delam blbe?
Jan Waclawek
konfera na efton.sk
Středa Duben 17 13:57:55 CEST 2024
>Anonymní String se
>instancuje voláním konstruktoru String(const char *cstr = ""). To je
>v±e.
OK, viacmenej rozumiem, aj ked asi mi este nejake detaily unikaju, ale to
nie je dolezite. Dolezite je, ze:
> Ano, překladač přeuspořádá zásobník,
To som necakal, a skutocne to mnohe vysvetluje.
>ale
>nemusíte se o to starat
No, musim, nemusim. Nemusim, ak mam nekonecne vela pamate a nekonecne vela
casu. Bavime sa o mcu, cize musim.
Mojej otazke, ktora bola na
>>> Jde to sice takhle dělat i v čistém C, ale není to zvykem.
ste sa vyhli, ale asi nie nahodou :-)
wek
----- Original Message ---------------
>Mě zmátlo, µe z toho tak jak to bylo napsané
>String fnc (...) {
> char buf [11];
> // ...
> return buf;
>}
>není jasné, co to vlastně vrací. Pokud bych napsal
> return String(buf);
>nemusel bych koukat do zdrojáků a bylo by to stejné. Anonymní String se
>instancuje voláním konstruktoru String(const char *cstr = ""). To je
>v±e. Ano, překladač přeuspořádá zásobník, je to dost brutální, ale
>nemusíte se o to starat, dále se pak pracuje s kopií a její platnost
>končí na konci bloku, kde se pouµívá.
>Jakýkoli String v C++ je hrůza a je lep±í se tomu pokud moµno vyhnout.
>
>Mrazík
>
>
>On 17. 04. 24 12:29, Jan Waclawek wrote:
>>> Arduino nepouµívám, takµe mi také není jasné jak to přesně funguje, ale
>>
>> No ved je k dispozicii kompletna dokuemntacia.. ;-)
>> https://github.com/arduino/ArduinoCore-API/blob/master/api/String.h
>> https://github.com/arduino/ArduinoCore-API/blob/master/api/String.cpp
>>
>> Ale bez ohladu na to, kedze C++ nepouzivam a nepoznam, tak mi nie je jasne,
>> ako a kedy sa ten anonymny objekt, ktory je nasledkom pouzitia triedy ako
>> navratoveho typu, instancuje; resp. co je na zasobniku v akom poradi a
>> akym sposobom a v ktorom okamihu sa tam ten buffer prenesie.
>>
>> Zaujima ma to preto, lebo toto je dost casty problem, kde by som chcel, aby
>> nejaku pamat alokovala "leaf" funkcia a aby sa po jej "pouziti"
>> automaticky ta pamat dealokovala. Tak ma zaujima, ako to ten C++ skutocne
>> robi.
>>
>>> Jde to sice takhle dělat i v čistém C, ale není to zvykem.
>>
>> Neviem, ako by som v cistom C zabezpecil zivotnost toho buffra dlhsie ako
>> je koniec funkcie, v ktorom bol definovany, a ako by som zabezpecil, aby
>> po pouziti bol ten buffer "dealokovany". V asm si viem predstavit, ze by
>> som pri navrate z tej funkcie preusporiadal zasobnik, ale pripada mi to
>> dost brutalne.
>>
>> wek
Další informace o konferenci Hw-list