„C (programozási nyelv)” változatai közötti eltérés
[ellenőrzött változat] | [ellenőrzött változat] |
Tartalom törölve Tartalom hozzáadva
a Visszaállítottam a lap korábbi változatát: 31.46.240.247 (vita) szerkesztéséről TurkászBot szerkesztésére |
|||
48. sor:
* <code>void</code> típusú függvény és <code>void *</code> adattípus
* függvények, melyek <code>struct</code> vagy <code>union</code> típusokat voltak képesek visszaadni (return)
* különböző struktúráknak lehetnek azonos nevű mezői (
* struktúra típusú változók értékadása (korábban ezt csak a <code>memcpy</code>
* <code>const</code> definíció, az érték írásvédettségéhez
* szabvány [[programkönyvtár]] (library), mely a különböző cégek leggyakrabban támogatott függvényeit tartalmazta
62. sor:
[[1983]]-ban az [[Amerikai Nemzeti Szabványügyi Hivatal]] (angolul: American National Standards Institute, röviden ANSI) megalakította az X3J11 bizottságot, hogy létrehozzanak egy egységes (szabvány) C definíciót. A hosszú és fáradságos folyamat végén [[1989]]-ben elkészült a szabvány (egy évvel az első C++ ANSI szabvány után!) és jóváhagyták mint: ANSI X3.159–1989 „A C programozási nyelv”. A nyelvnek ezt a verzióját nevezik ANSI C-nek. [[1990]]-ben az ANSI C szabványt (néhány apróbb módosítással) átvette a [[Nemzetközi Szabványügyi Szervezet]] (angolul: International Organization for Standardization, röviden ISO) mint [[ISO/EC 9899:1990]].
Az ANSI C szabványosítás egyik célja az volt, hogy a K&R C-ből és a nem hivatalos bővítésekből egy egységeset alakítson ki. Belevettek azonban számos új megoldást is, mint például [[függvény prototípus]]t (a C++ nyelvből) valamint egy jobban alkalmazható (fejlettebb) előfordítót (
ANSI C-t szinte minden fordító támogat. A legtöbb C kód, mely manapság íródott, az ANSI C-n alapul. Bármilyen program, amely a szabvány C-ben íródott, helyesen működik bármely [[platform]]on, amelyen szabványos C létezik. Vannak azonban programok, melyek csak adott platformon vagy adott fordítóval fordíthatók le, a használt nem szabvány függvénygyűjtemények miatt (például grafikus függvények) és vannak olyan fordítók, melyek nem támogatják alapértelmezésben az ANSI C szabványt.
83. sor:
=== C11 ===
2007-ben kezdődött a munka a C sztenderd egy másik revíziójával kapcsolatban, amit informálisan "C1X"-nek hívtak egészen addig, míg hivatalosan is nem publikálták 2011. december 8-
A C11 sztenderd számos új lehetőséget adott hozzá a C és könyvtárakhoz, beleértve a típus generikus makrókat,
== A C nyelv jellemzői ==
99. sor:
== Formai szabályok ==
A nyelv utasításai a [[#preproc|preprocesszor-utasítások]] kivételével szabad formátumúak: ahol egy helyköz megengedett, ott akárhány helyköz, tabulátor, új sor lehet. A nyelv szavai (utasításnevek, változónevek, számok, műveleti jelek
A megjegyzéseket <code>/*</code> és <code>*/</code> közé kell zárni, és szabvány szerint nem skatulyázhatók egymásba, bár sok fordítóprogram mégis megengedi. Az ANSI C-től kezdve használható a <code>//</code>, mely a sor végéig tartó megjegyzést vezet be (a [[C++]]-hoz hasonlóan). Hosszabb megjegyzéseket a <code>#if 0</code>...<code>#endif</code> közé is lehet tenni; ezek – lévén preprocesszor-utasítások – egymásba skatulyázhatók.
236. sor:
C-ben függvényen belül nem lehet függvényt definiálni, ezért a függvényen (blokkon) kívüli adatok mindig statikusak, azaz a program indulásától kezdve ugyanazon a memóriaterületen vannak, így ezt a tényt nem kell külön megadni. A blokkon kívüli <code>static</code> kulcsszó az adat vagy függvény láthatóságát a forrásfájlon belülre korlátozza. A blokkon kívül deklarált, <tt>static</tt> nélküli változó és a <tt>static</tt> nélküli függvény globális.
Globális változóra vagy függvényre a program többi
==== Tárolási osztály ====
258. sor:
A tárolási osztály adja meg, hogy az adat a program melyik memóriaterületére kerül (lásd jobb oldali táblázat, középső oszlop).
A [[#blokk|blokkon]] (függvényen) kívül deklarált adat mindig statikus, a blokkon belüli – ha mást nem adunk meg – dinamikus. Blokkon belüli adat a <code>static</code> kulcsszóval tehető statikussá, és az <code>extern</code> jelzi, hogy másik
A statikus adatnak állandó helye (memóriacíme) van. A dinamikus adat a veremben tárolódik, a blokkba belépéskor foglalódik le a helye, kilépéskor felszabadul, kezdőértéke definiálatlan.
851. sor:
A függvények pufferelnek: a kiírt adatok a memóriába kerülnek, és csak bizonyos mennyiség után, a fájl lezárásakor (<tt>fclose</tt>) vagy a <tt>fflush</tt> függvény meghívására íródnak ki.
A printf és scanf függvénycsaládnak a formátumot stringben kell megadni. A formátum <code>%</code>-jellel kezdődik, és az adat típusára utaló betűvel végződik. A kettő között további információkat lehet megadni. A formátumstring utáni első paraméter az első %-hoz tartozó adat
Az <tt>sprintf</tt> függvény fájl helyett karaktertömbbe írja a kimenetet. A <tt>sscanf</tt> karaktertömbből veszi a bemenetet. A két családnak további függvényei is vannak.
|