<div dir="ltr"><div>Salutare,<br></div><div><br></div><div>Multumesc mult pentru raspunsul detaliat. Acum am inteles motivatia din spatele acestei decizii si o sustin.</div><div><br></div><div>Cat despre necesitatea punctarii acestui lucru in formularul de feedback, am ajuns la concluzia ca in timpul cat mi-a luat sa scriu mail-urile as fi terminat cu usurinta transformarea codului, deci nu il consider necesar. <br></div><div><br></div><div>O zi placuta,<br></div><div>Gherghita David, 334CA<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 5, 2020 at 12:26 AM Razvan Crainea <<a href="mailto:razvan.crainea@gmail.com">razvan.crainea@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Salut, David!<br>
<br>
Standardele C99 și C11 vin cu o serie de îmbunătățiri ale calității<br>
codului, doar că acestea sunt în detrimentul portabilității.<br>
Dacă vrei să scrii o aplicație de uz general, care să poată fi<br>
folosita de oricine, atunci vrei ca ea să fie cât mai portabilă, să<br>
poată fi compilată pe cât mai multe platforme, ideal pe toate. Atunci<br>
ai de făcut un compromis: A) fie scrii cod conform standardelor celor<br>
mai răspândite, în cazul de față un standard adoptat de peste 20 de<br>
ani (C89), B) fie limitezi persoanele care folosesc niște<br>
sisteme/compilatoare mai vechi să folosească aplicația ta. Costul<br>
variantei A) este declararea unor variabile câteva linii mai sus, sau<br>
folosirea lui alloca() vs variable-length arrays (C99), comparativ cu<br>
B) imposibilitatea de a rula aplicația ta pe anumite sisteme. Dacă<br>
scopul tău este ca aplicația să fie cât mai larg folosită, atunci<br>
consider că A) este varianta preferată. Dacă scopul tau este să<br>
termini cât mai repede implementarea, să poți rula aplicația, dar ea<br>
să fie folosită doar de tine, atunci poți alege B).<br>
În cadrul cursului de SO încurajăm dezvoltarea cât mai generică și<br>
portabilă a aplicațiilor, de aceea încurajăm dezvoltarea folosind<br>
standardul C89.<br>
<br>
Am notat feedback-ul legat de faptul că nu este specificat explicit în<br>
temă că trebuie să folosiți standardul c89, mulțumim pentru<br>
atenționare! Dacă într-adevăr este o problemă atât de mare pentru<br>
tine, te rog să punctezi acest lucru în forumularul de feedback pe<br>
care o să-l primiți la final de semestru.<br>
<br>
Spor la temă,<br>
Răzvan<br>
<br>
On Wed, Mar 4, 2020 at 11:29 PM David Gherghita via so<br>
<<a href="mailto:so@cursuri.cs.pub.ro" target="_blank">so@cursuri.cs.pub.ro</a>> wrote:<br>
><br>
> Multumesc pentru raspuns, o sa o transform in C89. Mi s-ar fi parut normal, totusi, ca acest aspect sa fie precizat in cerinta (am vazut ca este in FAQ o intrebare referitoare la asta dar nu mi se pare suficient).<br>
><br>
> Din cate am vazut nici versiunile mai noi de Visual Studio nu ofera suport pentru c99 sau c11, pentru ca cl e focusat pe c++, si nu mi se pare ok sa fie nevoie sa folosim un standard atat de vechi, avand in vedere ca versiunile noi au adus multe imbunatatiri.<br>
><br>
> On Wed, Mar 4, 2020 at 11:14 PM Paul Olaru <<a href="mailto:olarupaulstelian97@gmail.com" target="_blank">olarupaulstelian97@gmail.com</a>> wrote:<br>
>><br>
>> Din păcate trebuie făcută în C89 tema asta (și eu m-am confruntat cu asta anul trecut).<br>
>><br>
>><br>
>><br>
>> (de ar fi mai actualizate mașinile virtuale să nu mai fie Visual Studio 2010 ci 2017 care<br>
>><br>
>> are un compilator mai modern...)<br>
>><br>
>><br>
>><br>
>> Eu personal recomand să pui -std=c89 pe compilerul gcc pe Linux pt că acesta dă erori<br>
>><br>
>> mai clare decât cel de Windows când, spre ex, ai declarații amestecate cu restul codului.<br>
>><br>
>><br>
>><br>
>> Sent from Mail for Windows 10<br>
>><br>
>><br>
>><br>
>> From: David Gherghita via so<br>
>> Sent: Wednesday, March 4, 2020 11:11 PM<br>
>> To: <a href="mailto:so@cursuri.cs.pub.ro" target="_blank">so@cursuri.cs.pub.ro</a><br>
>> Subject: [so] [Tema1][Windows] Standard C89<br>
>><br>
>><br>
>><br>
>> Salutare,<br>
>><br>
>><br>
>><br>
>> In urma obtinerii cu succes a punctajului maxim pe linux, compiland codul cu standardul C11, la testarea pe windows am observat extrem de mult erori de compilare, datorate folosirii de cl a standardului C89.<br>
>><br>
>><br>
>><br>
>> Cautand pe net cum pot seta folosirea unui standard mai nou, am inteles ca nu se poate. Sper totusi ca acest lucru sa nu fie adevarat, deoarece nu inteleg de ce s-ar alege pt SO pe windows acest compilator de la microsoft care nu suporta versiuni mai noi de C, avand in vedere multitudinea de alternative disponibile.<br>
>><br>
>><br>
>><br>
>> Multumesc,<br>
>><br>
>> Gherghita David<br>
>><br>
>><br>
><br>
> _______________________________________________<br>
> <a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a><br>
<br>
<br>
<br>
--<br>
Răzvan Crainea<br>
</blockquote></div>