Структура језика¶
На основу израђеног алгоритма следи фаза кодирања, односно писања програмског кода у одређеном програмском језику.
Азбука програмског језика C (енгл. Character Set) обухвата 26 великих и 26 малих слова енглеског алфабета, 10 декадних цифара, 29 интерпункцијских карактера, карактер „размак” (енгл. Space) и одређене специјалне „нештампајуће” карактере.
Велика слова: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Мала слова: a b c d e f g h i j k l m n o p q r s t u v w x y z
Декадне цифре: 0 1 2 3 4 5 6 7 8 9
Карактери: ! " # % & ’ ( ) * + , - . / : ; < = > ? [ \ ] ^ _ { | } ~
У односу на модерне програмске језике, попут програмског језика C#, програмски језик C не подржава коришћење UNICODE карактера, па тако, ћириличне (и латиничне карактере који нису део енглеског алфабета) не смеш да користиш.
Програмски језик C третира велика и мала слова као различите карактере
(енгл. case sensitive). То значи да је променљива x
потпуно различита од
променљиве X
, односно, да реч int
има улогу резервисане речи, док реч INT
не значи ништа.
Структура C програма¶
Структура типичног програма у програмском језику C има следеће елементе:
директиве препроцесора
дефиниције и глобалне декларације
функција
main()
дефиниције осталих функција
Директиве препроцесора¶
Сврха препроцесора је да у припремној фази компајлирања програма обради
директиве, односно, наредбе препроцесора. Препроцесор омогућује да се
програмски кôд организује у више датотека и да се дефинишу симболичке
константе. Све директиве препроцесора почињу карактером #
и морају се писати
у посебним редовима.
Директива #include <ime_datoteke.h>
служи за прикључивање предефинисаних
програмских кодова из стандардне библиотеке програмског језика C, из датотека
које се налазе у include
директоријуму. У сваком програму користићеш
директиву #include <stdio.h>
која програму прикључује заглавље стандардног
улаза/излаза (енгл. standard input output). Остала заглавља стандардне
библиотеке биће представљена по потреби током наредних лекција.
Директива #include "ime_datoteke.h"
служи за прикључивање програмских кодова
из датотека које су написали сами програмери. Ове датотеке треба да се налазе у
истом директоријуму у којем се налази и главни програм. Ако се датотека налази
у неком другом директоријуму, онда је потребно навести и путању пре њеног имена
и екстензије.
Директива #define
служи за дефинисање симболичких константи (макроа). Пише се
у два облика: #define IME_MAKROA vrednost
или #define IME_MAKROA (izraz)
.
Дефиниције, глобалне декларације и дефиниције функција¶
Под дефиницијама и глобалним декларацијама изнад функције main()
подразумева
се придруживање имена и додељивање меморије подацима или функцијама
(потпрограмима). Под дефиницијом функција испод функције main()
подразумева
се спецификација рада функција (потпрограма). Рад са функцијама учићеш наредне
школске године - у овој школској години програме ћеш писати само у оквиру
главне функције main()
.
Функција main()
¶
Функција која се позива приликом покретања програма зове се main()
и
најједноставније се записује овако:
main()
{
}
Функција main()
је целобројног типа int
, јер враћа целобројну вредност
процесу оперативног система у којем је програм покренут:
ако је програм успешно извршен, враћа
0
,у супротном, ако је било проблема током извршавања, враћа цео број различит од нуле.
Између витичастих заграда у функцији main()
наводе се редом наредбе. Наредбе
се увлаче за четири празна места (или за један TAB
) ради прегледности. О
наредбама ћеш учити у наредним лекцијама.
Процес у оквиру којег се извршава програм у програмском језику C обично je
командна линија (Command Prompt или PowerShell, односно Terminal, у оперативном
систему Windows). Због тога се у последњој линији функције main()
наводи
наредба return 0;
. Њена улога је да прекине извршавање програма и процесу
оперативног система у којем је програм покренут врати нулу:
int main()
{
return 0;
}
Између заграда (
и )
након назива функције наводе се аргументи функције.
Аргументи функције преносе функцији неке вредности. Ако функција main()
нема
аргументе, правилнији запис био би овакав:
int main(void)
{
return 0;
}
Овакав запис функције main()
користићеш током ове школске године. Функцији
main()
могуће је проследити аргументе из командне линије, што ће опет бити
једна од тема за наредну школску годину.
Први програм¶
Подсети се првог дијаграма тока који је на излазу исписивао текст
Hello, World!
.

На основу датог дијаграма тока сада можеш написати и програм у програмском језику C:
#include <stdio.h>
int main(void)
{
printf("Hello, World!");
return 0;
}
Када компајлираш и покренеш овај програм, на излазу ће се исписати:
Hello, World!
Шта се дешавало током компајлирања?
У припремној фази, захваљујући препроцесоркој директиви
#include <stdio.h>
програму је прикључено заглавље стандардног улаза/излаза, па компајлер зна како да протумачи функцијуprintf()
у функцијиmain()
.Након тога, почиње извршавање кода у функцији
main()
.У првој линији функција
printf("Hello, World!");
исписује текст задат под наводницимаHello, World!
.У другој линији наредба
return 0;
прекида извршавање функцијеmain()
и враћа процесу оперативног система вредност0
.