petak, 19 aprila, 2024
Kako da...?

Uvod u programski jezik C (1. deo)

Autori: Veljko Simić, Stefan Nožinić

Reč, dve o nastanku

Programski jezik C nastao je sedamdesetih godina prošlog veka, možemo reći iz krajnje potrebe za programskim jezikom, koji je prenosiv, efikasan i lak za učenje. Pre C-a, programeri su morali da biraju jezik u kome je jedan skup osobina bio favorizovan u odnosu na drugi. Npr. iako se Fortan može koristiti za pisanje dobrih programa koji imaju primenu u nauci, on nije najpogodniji za pisanje sistemskih programa. Zatim Basic, lako se uči, ali nije previše moćan i veoma je nepogodan za pisanje dugačkih programa. Assembler-om se mogu pisati veoma efikasni programi, ali se on teško uči i zadaje ozbiljne glavobolje programerima i nije isti za svaku arhitekturu računara. Početkom sedamdesetih godina, kada je računarska revolucija počela da se zahuktava, potražnja za softverom je uveliko prevazišla mogućnost programera da ih otkuca. Napokon, programski jezik C projektovao je Dennis Ritchie 1972. godine u Bell-ovim laboratorijama i ugradio ga u mašinu DEC PDP-11.

GNU C prevodilac

Pre nego što napišemo naš prvi program, potrebno je da imamo instaliran GCC (GNU C Compiler) prevodilac, kako bismo naš program mogli da pokrenemo. Ako imate UNIX-oliki sistem, GCC je verovatno već instaliran. Da biste to proverili, upišite gcc –version u konzoli. Ako je ispis na vašem ekranu sličan sledećem, to znači da je GCC instaliran.

$ gcc --version gcc (Debian 4.7.2-5) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Ukoliko nemate instaliran GCC izvorni kôd prevodioca, možete ga dobiti od organizacije Free Software Foundation. Instalaciju možete pogledati na: http://gcc.gnu.org/install/.

Naš prvi program

Kôd programa možete napisati u bilo kom uredniku teksta, a najpopularniji su Gedit, VIM, Nano. Potom ga je potrebno prevesti nekim prevodiocem, kao što je to gore pomenuti GCC. Takođe, postoji mnoštvo razvojnih okruženja koji olakšavaju pisanje programa i njegovo prevođenje i pokretanje (Eclipse, CodeBlocks i NetBeans). Može se reći da je standard da prvi program u nekom programskom jeziku bude Hello World! koji na standardni izlaz ispisuje poruku Hello World!. Tako će biti i u ovom tekstu.

#include  int main() { printf ("Hello World!\n"); return 0; }

Prvu liniju našeg kôda vam nećemo u ovom broju časopisa objasniti. Zasad je dovoljno reći da #include direktiva služi da se u vaš trenutni program učitaju dodatne biblioteke, odnosno zaglavlja, pa se time omogućava modularnost. Zaglavlje stdio.h sadrži mogućnosti za rad sa ulazno-izlaznim funkcijama. int main() je zaglavlje funkcije main, dok sve što se nalazi između vitičastih zagrada, označava njeno telo. int znači da je njena povratna vrednost ceo broj, odnosno u našem slučaju 0 (return 0;). Svaki program mora imati funkciju main, jer je to ulazna tačka programa, a ako je nema, prevodilac će prijaviti grešku. U telu naše jedine funkcije se nalaze dve naredbe, svaka naredba se mora završavati tačka-zarezom („;”). Jedna naredba ispisuje na ekran Hello World! i to čini pomoću funkcije printf(…) koja je definisana u stdio.h biblioteci, dok druga naredba return 0; vraća vrednost funkcije 0. Ovde je bitno napomenuti i \n na kraju stringa za ispis. Ovo je specijalan karakter koji govori konzoli da pređe u novi red.

Prevođenje programa

Mi još uvek nismo napravili nijedan program. Napisali smo njegov kôd koji računar ne razlikuje od obične tekstualne datoteke, sve dok ga ne prevedemo na jezik razumljiv računaru. Za to nam služi prevodilac (Compiler), o kome smo pričali u ovom tekstu. Da biste preveli (kompajlirali) program, dovoljno je da ukucate sledeću naredbu:

gcc helloworld.c

U ovom slučaju helloworld.c je ime izvorne datoteke u kome je smešten kôd našeg programa. Ako se vaša datoteka zove drugačije, ukucajte ime vaše datoteke. Obratite pažnju na ekstenziju .c. Primetićete da se stvorila nova datoteka pod nazivom a.out. To je izvršna datoteka i to je program. Pokrenućemo ga sledećom naredbom:

./a.out

Kao rezultat našeg programa, ispisaće se na ekranu poruka: Hello World! U slučaju da ne želite da se vaš program zove a.out (morate priznati, nije zanimljivo da se tako zove program), naredba pri prevođenju izgleda ovako:

gcc helloworld.c -o helloworld

Sada se vaš program zove helloworld. Potrebno je obratiti pažnju na dodatnu opciju koja je zadata prevodiocu.Ovo je bio kratak uvod u tematiku. U narednim brojevima vam pišemo detaljnije i mnogo zanimljivije stvari.

Naredni deo ovog serijala možete pročitati ovde.