„C (programozási nyelv)” változatai közötti eltérés

[nem ellenőrzött változat][nem ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
DarkOne (vitalap | szerkesztései)
a ö->ő, ü->ű ;-)
Slate (vitalap | szerkesztései)
a előrás javítása
5. sor:
== Jellegzetességek ==
 
C viszonylag "minimalista" programozási nyelv. Lényegesen alacsonyabb szintű, mint más programozási nyelvek, bár néha magsmagas szintű nyelvnek hívják, de igazából csak az [[assembly]] alacsonyabb nála. A C-nek alapvetően két nagy előnye van az assembly-vel szemben. Az első, hogy a [[forráskód]] általában könnyebben olvasható és kevésbé nehéz annak írása, főleg a hosszabb programok esetében. A második, hogy az assembly kód, kötött az adott számítógép arhitektúrájához ([[x86]], [[RISC]],stb.), míg a C programok átvihetők (a forrás módosítása '''nélkül'''), természetesen az adott típuson léteznie kell egy C-forditónak (angolul compiler) és az esetlegesen használt függvények itt használható változatainak. A C nyelv egy un. lefordított nyelv, nem pedig értelmezett, mint pl. a [[shell script]] vagy a [[BASIC]]. Ezért tehát a program hatásfoka nagyban függ, az alkalmazott fordító-program (angol nevén compiler), amely a C-ben megírt kódot, számítógépes kódra "fordítja" és optimalizálja. Ez a folyamat a programozótól jórészt függetlenül zajlik. Ezzel ellentétben az assembly hatásfoka pontosan meghatározható, hiszen nem más, mint az ember által is olvasható számítógépes nyelv. Ezért aztán bár az operációs redszerek belső magjai (kernel) C-ben íródnak, a különösen kritikus szakaszok továbbra is "kézzel finomhangolt" részekből áll, mégpedig assembly nyelven. Hasonló előnyök és hátrányok különböztetik meg a C nyelvet a magasabb szintű programozási nyelvektől, a C-kód hatékonysága jól kontrollálható, míg az olvashatósága ill. írása lényegesen bonyolultabb. Fontos tudni, hogy a C '''legalább annyira''' hordozható, mint a magasabb szintű nyelvek, mivel manapság, szinte minden számítógépes rendszerben van C fordító és C függvények. A fordítók, függvények még a magasabb szintű nyelvek értelmezői is gyakran C-ben íródnak!
 
A C egyik legfontosabb jellemzője, hogy a programozó kezében van a memóriakezelés. A szabvány C nem ismer olyan definiciókat, hogy [[tömb (számítógép)|tömb]] "vége vizsgálat", vagy automatikus memóriakezelés <!-- erre kéne valami jobb szó -->. Ezzel szemben pl. a [[JAVA Programozási nyelv|JAVA]] és a [[C kettőskereszt Programozási nyelv|C#]] nyelvek, mindkettő C alapú, rendelkeznek automatikus memóriakezeléssel. Míg a "kézi" memóriakezelés több lehetőséget ad a programozónak a program "finomhangolására", ugyanúgy megnövekedik a hibák lehetősége is (bug), mint pl. a "túlcsordulás" (buffer owerflow). Ezek a hibák felhasználhatók, számítógépes rendszerekbe való betörésekhez. Segédeszközök mint függvények ill. könyvtárak (library) valamint automatikus kódellenőrző programok (pl [[Lint]]) készültek, hogy átsegítség a programozókat ezeken a buktatókon.