субота, 20 априла, 2024
Како да...?

Увод у програмски језик C (1. део)

Аутори: Вељко Симић, Стефан Ножинић

Реч, две о настанку

Програмски језик C настао је седамдесетих година прошлог века, можемо рећи из крајње потребе за програмским језиком, који је преносив, ефикасан и лак за учење. Пре C-а, програмери су морали да бирају језик у коме је један скуп особина био фаворизован у односу на други. Нпр. иако се Fortan може користити за писање добрих програма који имају примену у науци, он није најпогоднији за писање системских програма. Затим Basic, лако се учи, али није превише моћан и веома је непогодан за писање дугачких програма. Assembler-ом се могу писати веома ефикасни програми, али се он тешко учи и задаје озбиљне главобоље програмерима и није исти за сваку архитектуру рачунара. Почетком седамдесетих година, када је рачунарска револуција почела да се захуктава, потражња за софтвером је увелико превазишла могућност програмера да их откуца. Напокон, програмски језик C пројектовао је Dennis Ritchie 1972. године у Bell-овим лабораторијама и уградио га у машину DEC PDP-11.

GNU C преводилац

Пре него што напишемо наш први програм, потребно је да имамо инсталиран GCC (GNU C Compiler) преводилац, како бисмо наш програм могли да покренемо. Ако имате UNIX-олики систем, GCC је вероватно већ инсталиран. Да бисте то проверили, упишите gcc –version у конзоли. Ако је испис на вашем екрану сличан следећем, то значи да је GCC инсталиран.

$ 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.

Уколико немате инсталиран GCC изворни кôд преводиоца, можете га добити од организације Free Software Foundation. Инсталацију можете погледати на: http://gcc.gnu.org/install/.

Наш први програм

Кôд програма можете написати у било ком уреднику текста, а најпопуларнији су Gedit, VIM, Nano. Потом га је потребно превести неким преводиоцем, као што је то горе поменути GCC. Такође, постоји мноштво развојних окружења који олакшавају писање програма и његово превођење и покретање (Eclipse, CodeBlocks и NetBeans). Може се рећи да је стандард да први програм у неком програмском језику буде Hello World! који на стандардни излаз исписује поруку Hello World!. Тако ће бити и у овом тексту.

#include <stdio.h>

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

Прву линију нашег кôда вам нећемо у овом броју часописа објаснити. Засад је довољно рећи да #include директива служи да се у ваш тренутни програм учитају додатне библиотеке, односно заглавља, па се тиме омогућава модуларност. Заглавље stdio.h садржи могућности за рад са улазно-излазним функцијама. int main() је заглавље функције main, док све што се налази између витичастих заграда, означава њено тело. int значи да је њена повратна вредност цео број, односно у нашем случају 0 (return 0;). Сваки програм мора имати функцију main, јер је то улазна тачка програма, а ако је нема, преводилац ће пријавити грешку. У телу наше једине функције се налазе две наредбе, свака наредба се мора завршавати тачкa-зарезом („;”). Једна наредба исписује на екран Hello World! и то чини помоћу функције printf(…) која је дефинисана у stdio.h библиотеци, док друга наредба return 0; враћа вредност функције 0. Овде је битно напоменути и \n на крају стринга за испис. Ово је специјалан карактер који говори конзоли да пређе у нови ред.

Превођење програма

Ми још увек нисмо направили ниједан програм. Написали смо његов кôд који рачунар не разликује од обичне текстуалне датотеке, све док га не преведемо на језик разумљив рачунару. За то нам служи преводилац (Compiler), о коме смо причали у овом тексту. Да бисте превели (компајлирали) програм, довољно је да укуцате следећу наредбу:

gcc helloworld.c

У овом случају helloworld.c је име изворне датотеке у коме је смештен кôд нашег програма. Ако се ваша датотека зове другачије, укуцајте име ваше датотеке. Обратите пажњу на екстензију .c. Приметићете да се створила нова датотека под називом a.out. То је извршна датотека и то је програм. Покренућемо га следећом наредбом:

./a.out

Као резултат нашег програма, исписаће се на екрану порука: Hello World! У случају да не желите да се ваш програм зове a.out (морате признати, није занимљиво да се тако зове програм), наредба при превођењу изгледа овако:

gcc helloworld.c -o helloworld

Сада се ваш програм зове helloworld. Потребно је обратити пажњу на додатну опцију која је задата преводиоцу.Ово је био кратак увод у тематику. У наредним бројевима вам пишемо детаљније и много занимљивије ствари.

Наредни део овог серијала можете прочитати овде.