Miután a fordítót telepítettük, nekiláthatunk az első C programunk megírásának. Ez a szokásos Hello World program lesz, ami így néz ki C esetén:
#include <stdio.h>
int main() {
printf("Hello World!\r\n");
return 0;
}
Az első sorban az #include
egy előfeldolgozó utasítás, ami az utána szereplő header fájlt bemásolja a fordítás előtt a programunkba. Az <stdio.h>
a szabványos ki és bemenet (konzol) kezeléséhez szükséges függvényeket definiálja. A neve azért van kacsacsőrök között, mert ez jelzi az előfeldolgozónak, hogy a fordító által ismert útvonalak között keresse ezt a fájlt és ne a fordítandó forráskód mellett.
A fő metódusnak itt is main
a neve. Ennek egy egész számot kell visszaadnia eredményül. Ennek a számnak 0-nak kell lennie, ha nem történt hiba.
Szöveget a printf
függvénnyel tudunk kiíratni. A szöveg után a \r\n
karakterpáros a sortörés miatt kell, mivel nincs beépítetten olyan kiírató függvény, ami sort is emelne.
Ezt követően a kódot le kellene fordítanunk. Ezt a forráskódot tartalmazó mappából a GCC segítségével az alábbi módon tudjuk megtenni:
gcc -Wall -o hello.exe hello.c
A -Wall
kapcsoló az „all warnings” rövidítése, de a neve megtévesztő, mivel nem minden figyelmeztetést engedélyez, csupán azokat, amikre érdemes legalább ügyelni, a -o
pedig meghatározza a kimeneti fájl nevét. Windows esetén a .exe
kiterjesztés kötelező, Linux esetén a kiterjesztés megadása nem kötelező. Futtatni a programot az MSYS shell-ből a ./hello.exe
kiadásával fogjuk tudni.
A -Wall
használata minden fordítás esetén erősen ajánlott. Mégpedig azért, mert a C fordítók igencsak liberálisak annak tekintetében, hogy mit fordítanak le. Elképzelhető, hogy a kódunk nem követi teljes mértékben a szabványosítottan megengedett dolgokat, de attól még forduló kód lesz belőle és az is elképzelhető, hogy ezen „hibák” ellenére úgy is fog működni ahogy szeretnénk, de ez nem feltétlen lesz igaz már egy másik fordítóval. Éppen ezért a -Wall
figyelmeztetéseit érdemes figyelembe venni és javítani szükség esetén.
Ha minden lehetséges figyelmeztetést szeretnénk megkapni, akkor a -Wall
mellett a -Wextra
kapcsolót is adjuk meg.