fratello Postat Martie 28, 2021 Autor Partajează Postat Martie 28, 2021 Multumesc ! Stiu siteul, m-am inspirat de acolo pentru codul pentru DS18B20. Intr-adevar este eleganta metoda... Link spre comentariu
Vizitator Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 @fratello Ca tot este weekend si vad ca-ti plac optimizarile. Provocare (nu numai pentru tine): Se poate scrie functia getDOW() intr-o singura linie? Adica ca intre {} sa aveam doar o linie de cod: char * getDow(uint8_t ziua) { return ???; } Link spre comentariu
mihaicozac Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 Ar merge cu opearator ternar: return ziua == 7 ? "Duminica" : ziua == 6 ? "Sambata" : ziua == 5 ? "Vineri" : ziua == 4 ? "Joi" : ......... Dar arată sinistru. Link spre comentariu
fratello Postat Martie 28, 2021 Autor Partajează Postat Martie 28, 2021 Pe mine m-ati pierdut ... depaseste cu mult cunostintele mele... Link spre comentariu
Liviu M Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 [quote] Se poate scrie functia getDOW() intr-o singura linie?[/quote] Sigur, definesti zilele saptamanii in afara functiei (global): char * dayname[] = {"Duminica", "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata"}; char * getDOW(uint8_t tm_wday) { return dayname[tm_wday]; } Alminteri momentan eu am o jena cu functia ta. Stiu ca "asa se face" in C, da' teoretic dayname e variabila locala, ar trebui sa pierzi controlul asupra ei la iesirea din functie. Sau? char * getDOW(uint8_t tm_wday) { char * dayname[] = {"Duminica", "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata"}; return dayname[tm_wday]; } Link spre comentariu
Vizitator Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 (editat) 25 minutes ago, Liviu M said: Sigur, definesti zilele saptamanii in afara functiei (global) Nu. Am spus "o singura linie de cod" ! Nu definim nimic anterior. O singura linie de cod a unei functii care sa returneze numele zilei primind ca parametru numarul acelei zile. Editat Martie 28, 2021 de Vizitator Link spre comentariu
Liviu M Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 Ba uite ce-ai zis. Functia mea are o singura linie. Acum 2 ore, Liviu.Mihaiu a spus: @fratello Se poate scrie functia getDOW() intr-o singura linie? Link spre comentariu
Vizitator Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 45 minutes ago, fratello said: Pe mine m-ati pierdut ... depaseste cu mult cunostintele mele... Deloc. Chiar te rog sa urmaresti discutiile. Ai fost interesat de asta, Suporti acum :) Link spre comentariu
Vizitator Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 6 minutes ago, Liviu M said: Ba uite ce-ai zis. Functia mea are o singura linie. revin. functia nu apeleaza la alte definitii externe. un singur return resolva problema. Link spre comentariu
Liviu M Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 Am inteles din prima, da' a fost prea tentant. Si cum Mihai deja a dat un raspuns (habar n-am daca se poate si altfel)... Link spre comentariu
mihaicozac Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 (editat) Varianta mea nu e bună? eu altă idee nu am. Editat Martie 28, 2021 de mihaicozac Link spre comentariu
Vizitator Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 1 hour ago, mihaicozac said: Dar arată sinistru. este mirifica, dar ai dreptate: "arata sinistru" Link spre comentariu
Vizitator Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 @mihaicozac tot de la ideea ta am plecat cu pad la zile. cam asa zic eu intr-o singura linie de cod: trim(substr("DuminicaLuni Marti MiercuriJoi Vineri Sambata ",tm_wday*8,8)); Link spre comentariu
fratello Postat Martie 28, 2021 Autor Partajează Postat Martie 28, 2021 Acum 37 minute, Liviu.Mihaiu a spus: Chiar te rog sa urmaresti discutiile. Ai fost interesat de asta, Suporti acum Bineinteles !!! Cu mare interes ! Link spre comentariu
Liviu M Postat Martie 28, 2021 Partajează Postat Martie 28, 2021 @Tizu: pui te rog codul complet si compilabil? Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum