Кључне речи и идентификатори¶
Кључне речи¶
Кључне речи (резервисане речи, службене речи) имају тачно дефинисано значење и изведене су од речи на енглеском језику. Са њиховим значењем упознаваћемо се током рада. Према првом стандарду језика било их је 32, а према последњем стандарду из 2018. године има их 44:
auto break case char
const continue default do
double else enum extern
float for goto if
inline int long register
restrict return short signed
sizeof static struct switch
typedef union unsigned void
volatile while _Alignas _Alignof
_Atomic _Bool _Complex _Generic
_Imaginary _Noreturn _Static_assert _Thread_local
До сада си већ наишао на три кључне речи у претходној лекцији: int
, void
и
return
. Без обзира који C компајлер користиш и који C стандард тај компајлер
подржава, кључне речи из списка изнад не смеш користити као идентификаторе.
Пошто програмски језик C разликује мала и велика слова, синтаксно би било
исправно да идентификаторе назовеш слично као кључне речи, нпр. Int
, Void
и
Return
, али се то никако не препоручује!
Идентификатори¶
Идентификатори служе за именовање променљивих, константи, функција и других елемената које именује програмер. Идентификатор се формира као узастопни низ од једног или више карактера:
_ 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
Приликом формирања идентификатора мора се водити рачуна да први карактер
идентификатора не може бити цифра, а може бити мало слово, велико слово или
карактер _
, након чега следи произвољан редослед малих и великих слова,
цифара и карактера _
.
ANSI стандард језика C дозвољава максимално 31 карактер у имену идентификатора, осим у случају екстерних идентификатора где је максимум 6 карактера. Међутим, то ограничење данас не постоји - у конкретним имплементацијама C компајлера дозвољава се практично толико велик низ карактера, да програмер о томе не треба да брине. Microsoft C компајлер дозвољава 247 карактера у имену било ког идентификатора, док други компајлери могу да имају слична ограничења. На крају, C компајлер свако валидно име идентификатора преводи у један карактер.
Пракса је, али није правило, да се приликом формирања идентификатора не користи
карактер _
као почетни, јер се тако означавају одређене кључне речи и макрои
у језику C. Такође, препоручљиво је да се приликом формирања идентификатора
користе смислене речи у складу са значењем идентификатора, односно скраћенице
које јасно описују своје значење. На тај начин кôд програма постаје јасан и
другим програмерима, а може помоћи и самом аутору кода да се присети његовог
значења након одређеног времена.
На пример, исправно именовани идентификатори могу бити:
x // исправно, можда недовољно јасно шта је "x"?
KatetaA // исправно
izracunajObim // исправно
kateta_1 // исправно
_obim // исправно, али се не препоручује!
NemaPotrebeZaOvakoDugackimImenom_SmisliNestoKrace // исправно, али се не препоручује!
Односно, неисправно формирани идентификатори могу бити:
radlovački // неисправно, садржи недозвољени карактер "č"
x.3 // неисправно, садржи недозвољени карактер "."
100t // неисправно, почиње бројем
obim kruga // неисправно, садржи размак
auto // неисправно, представља кључну реч
Стилови именовања идентификатора¶
Не постоје стриктна правила којим стилом требаш именовати идентификаторе, али су се временом издвојили одређени стилови:
Идентификатор |
Стил |
---|---|
|
Flat Case |
|
Upper Case |
|
Camel Case |
|
Pascal Case |
|
Snake Case |
У различитим организацијама, на различитим пројектима, за различите програмске језике, могу се пронаћи различите конвенције за именовање идентификатора (енгл. naming conventions).
На пример, компанија Google јавно је објавила своје „водиче за стилове”, у којима се дефинишу стилови писања програмског кода, од именовања идентификатора до најситнијих техничких детаља. Ово је од нарочитог значаја када много програмера ради са великим кодним базама, где свако мора да разуме сваки кôд. Google се водио следећим принципима приликом дефинисања стилова:
Правила морају да буду оправдана (ако сваки програмер треба да их запамти).
Кôд треба да буде оптимизован за читаоца (програмера), а не за писца.
Кôд треба да разуме просечан програмер у компанији.
Кôд треба доследно да поштује правила (како се са тим не би губило време).
На крају, кôд из кодне базе може да се оптимизује када то постане неопходно.
Google C/C++ коднa базa има више од 100 милиона линија кода, а са њом ради увек више хиљада C/C++ програмера. У таквој ситуацији, именовање идентификатора није банална ствар.