C programnyelv?
Mennyire mondható nehéznek pl. a c#hoz vagy a javahoz képest?
Megjött a motiváció, hogy tanuljak valamilyen nyelvet, csak nem tudom melyiket lenne érdemes. A javat elég nehéznek mondják, a c#hoz van minimális ismeretem, mivel középiskolában ezt tanították, c ről viszont semmit nem tudok.
Én azt mondanám, hogy sokkal alapabb nyelv, mint a C# vagy java, vagyis ezt úgy értem, hogy szinte minden ami be van építve a java-féle nyelvekbe könnyű-kezelést segítő dolgok, például memória automata kezelése, azt C-ben magadnak kell megírnod. A C nyelv mondható a legközelebbinek a géphez a gyakran használt nyelvek közül, azaz az ebben írt kód hasonlítható legjobban a lefordult assembly-hez, sok esetben akár 1-1 megfeleltetéssel összepárosíthatóak a sorok.
Mivel nagyon sokmindent tudsz elrontani, amit a gép nem fog magától észlelni (mert nincs keretrendszere, ami észlelje), ezért van nehézség benne, de amit ebben megtanulsz algoritmusokat, technikákat, azt utána már minden nyelvben nagyon hasznosnak találod majd.
Ennek ellenére, ha nem beágyazott szoftvert írnál (mikrokontrolleres vackokat például robotkocsi építésére), akkor a gyakorlati értéke számodra kevesebb, mint egy olyan programnyelvnek, ami megkönnyíti bizonyos platformokra a tervezést. Éppen ezért C nyelven jellemzően csak operációs rendszereket, és kis chip-eket programoznak, még a gépigényesebb dolgokat is inkább c++ban írják, mert az már sokmindennel többet tud.
Szóval végül a tanácsom, mint C-ben dolgozó szoftvermérnök:
Érdemes pár hetet a C-be belekóstolnod, de csak alapszinten, és utána jobban jársz, ha a C++ nyelvet tanulod meg, így tudsz egy keresettebb multifunkciós nyelvet, és a C tudásod sem vész el, hiszen ami C-ben működik, az egyből C++ban is ugyanúgy működik.
Ha több részlet érdekel, írj privátot.
A nehézség mértékét összehasonlítva nem mondanám nehezebbnek mint a C# vagy Java, nem tart tovább sem.
Viszont más jellegű. A C nyelv kapcsán elsajátítandó programozási technikák "alacsonyabb szintűek", "gépközelibbek", mint amiket C#-ból és Java-ból tanultál; arra készülj fel, hogy nem ugyanazt fogod tanulni csak más nyelven.
A C-nek másban áll a nehézsége, mint pl. a Java-nak. Ami általában nehézséget szokott okozni, az pl. a pointerekkel való munka (ptr-aritmetika, int const * / int * const / stb.), vagy pl. a függvények pointerek és visszatérési típusok világa.
Alapszinten tényleg egyszerű, mert maga a nyelv nem bonyolult, egyszerű elemekbők áll, csak ezeket az elemeket nagyon sokféleképpen lehet kombinálni, és gyakran érezhető, hogy inkább gépközeli, mint emberközeli nyelv. Nagyon könnyű olyan elvi hibákat ejteni, amiket más programnyelvek eleve kizárnak.
Nem elijesztés céljából, mert ezek azért ritkák, csak érdekességképpen, hogy értsd a C nehézségének ezt a részét:
char (*(*x[3])())[5]
"x is an array of 3 pointers to function returning pointer to array of 5 char’s
int *(*(*arr[5])()) ()"
"arr is an array of 5 pointers to functions returning pointer to function returning pointer to integer"
stb.
( [link] )
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!