C programozás/Bevezető példa

A Wikikönyvekből, a szabad elektronikus könyvtárból.
Ugrás a navigációhoz Ugrás a kereséshez


A klasszikus Hello Világ program[szerkesztés]

Az alább látható egy program forráskódja. A C programokat tipikusan egy .c kiterjesztésű fájlba szoktuk beleírni. A szerkesztő lényegében tetszőleges. A legegyszerűbb szerkesztővel is szerkeszthetjük a program forráskódját, de a komolyabbak sok segítséget adhatnak a program megírásában és a hibák kijavításában.

#include <stdio.h>

int main(void) {
  printf("Hello Világ! \n");
  return 0;
}

Az include sor behívja a stdio.h fejlécfájlt. Egyelőre azt kell tudnunk, hogy innentől lehetőségünk lesz a printf függvény használatára, hogy kiírassunk dolgokat. Az stdio a szabványos be- és kimenet (standard input/output) rövidítése. Mint a nevéből látszik kiíratást és beolvasást kezelő függvényeket tartalmaz.

Ebben a fájlban egyetlen függvény szerepel, a main függvény. Ennek minden C programban szerepelnie kell. Miután lefordítom a programot, ez a függvény fog végrehajtódni.

A main függvényhez több utasítás tartozik, ezért ezeket kapcsos zárójelek közé rakjuk. Minden egyes utasítás végét ; (pontosvessző) jelöli. A soremeléseknek általában nincs jelentőségük a fordító szempontjából, csak a programozó munkáját könnyíti meg az átláthatóbb tagolás.

A main előtt álló int azt jelenti, hogy a program visszatérési értéke egész szám. A UNIX és Linux rendszerekben hagyomány, hogy egy program 0-val tér vissza, ha sikeresen lefutott, és pozitív egészekkel, ha hiba történt: a különböző pozitív számok különböző hibát jelentenek. A main függvény végén látjuk a

   return 0;

utasítást. Ha idáig eljut a program, akkor 0-val tér vissza.

A printf függvény írja ki az argumentumában szereplő szöveget. A szöveget mindig dupla idézőjelek közé rakjuk. Ezt a szöveget tartalmazó adattípust karakterláncnak, vagy angolosan sztringnek nevezzük. A karakterlánc speciális jeleket is tartalmaz, amelyeket \ (visszaper=backslash) vezet be. A leggyakrabb ilyen speciális karakter a "\n", amely újsort jelöl. Érdemes kipróbálni, hogyan változik a futás, ha a Hello után is írunk egy \n-et, vagy ha mindkettőt elhagyjuk. Előbbi esetben a Hello és a világ! szavak külön sor elejére kerülnek.

A printf függvény az itt bemutatottnál jóval többet tud: alkalmas változók értékeinek kiíratására is különböző módokon (például a tört számoknál megadható a tizedesjegyek száma, egészeket különböző számrendszerekben írathatunk ki).

Ha a programkódot beírtuk, akkor a Fordító használata című fejezetben leírt módon lefordíthatjuk, és a lefordított fájlt végrehajthatjuk.

Megjegyzések használata[szerkesztés]

A programkódot megjegyzésekkel láthatjuk el, hogy a későbbiekben könnyebben értelmezni tudja a programkódot, akinek például tovább kell fejlesztenie azt. A megjegyzések a fordító számára nem jelentenek semmit, a fordítást nem befolyásolják.

A C-ben kétféle megjegyzés lehetséges. Az egyiket a // vezeti be, és a sor végéig tart, a másikat /* és */ közé helyezzük, és több soros is lehet.

Alább láthatjuk a korábban megismert programkódot megjegyzésekkel ellátva. (A wikibooks a megjegyzéseket szürkével jelöli.)

/*
 include utasítással lehetővé tesszük, hogy a programunkban olyan függvényeket
 használjunk, amelyet máshol definiáltunk. Az stdio.h teszi lehetővé például
 a printf és más kiírató és beolvasó függvények használatát.
 Az include-os sorok végére kivételesen nem kell pontosvessző.
*/

#include <stdio.h>

/*
 A következő sorban kezdődik a szokásos "main" függvény, amely végrehajtódik akkor,
 amikor a lefordított programot futtatjuk. A main egész (int) értékkel tér vissza és
 (legalábbis ebben a változatában) nincs egy argumentuma sem (void).
*/
 
int main(void) {
  printf("Hello Világ! \n");  // Kiíratás
  return 0;                   // A 0 a szokásos visszatérési érték, amikor
                              // a program helyesen lefut
}

/*
 * Unix és Linux rendszereken, miután a lefordított programot parancssorból futtatjuk,
 * a main függvény visszatérési értékét az
 * echo $?
 * paranccsal írathatjuk ki.
 */