Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дәріс.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
49 Кб
Скачать
☆

Си тілінің әліпбиі (алфавит)

С тілінде мына белгілер (символдар) жинағы қолданылады:

1) Латын әліпбиінің бас (A,B,C,…….,Y,Z) және кіші (a,b,c,………,y,z) әріптері;

2) 0-ден 9-ға дейінгі араб цифрлары;

3) Мынадай анайы белгілер:

+ (плюс), - (минус), * (жұлдызша ), / (бөлу сызығы немесе слэш), = (тең), > (үлкен), < ( кіші), ; (нүктелі үтір ), & (амперсэнд ), [ ] (тік жақшалар), { } (фигуралық жақшалар), ( ) (қарапайым жақшалар), _ (астыңғы сызық), (пробел ), . (нүкте), , (үтір), : (қос нүкте), # (нөмір), % (пайыз), ~ (әрбір разряд бойынша терістеу), ? (сұрақ белгісі), ! ( леп белгісі), \ (кері слэш).

Берілгендер классификациясы

С тілінде екі категориялы берілгендер қолданылады: берілгендердің қарапайым (скалярлық) және күрделі (құрамды) типтері. Негізгі (базалық) типтерге бүтін, нақты және символдық типтер жатады. Өз кезегінде, бүтін типті берілгендер қысқа (short), ұзын (long) және таңбасыз (unsigned) болуы мүмкін. Берілгендердің базалық типтерінің өлшемдері мен мүмкін боларлық диапазондарын келтірейік (1-ші кесте):

Типтің аты

Берілгендер типі

Жады көлемі, байт

Мәндер диапазоны

Символдық

char

1

-128…127

Бүтін

int

2

-32768…32767

Қысқа

Short

2(1)

-32768…32767(-128…127)

Ұзын

Long

4

-2147483648…2147483647

Таңбасыз бүтін

Unsigned int

2

0…65535

Таңбасыз ұзын

Unsigned long

4

0…424967295

Нақты

Float

4

3,14*10-38…3,14*1038

Екі еселі дәлдігі бар нақты

Double

8

1,7 *10-308 1,7 *10308

Берілгендердің күрделі типі массивтерге, құрылымдарға (struct), бірігулерге (немесе құрамаларға) (union), санауларға (enum) бөлінеді.

Препроцессор директивалары

Си тілінде программалау ортасында немесе тіл компиляторынна қажетті бір компонент ретінде препроцессор кіреді. Препроцессордың негізгі қызметі ол-программада шығарылатын тексті оның компиляциясына дейін өңдеу болып табылады.

Препроцессорлық өңдеу қадамдары.

Негізінен препроцессорлық өңдеу бірнеше қадамдардан тұрады. Нақты бір реализация бірнеше қадамдарды біріктіре алады. Бірақ оның нәтижесі келесі реттеу секілді орындалуы қажет.

  • Барлық жүйелік-тәуелді стандарты кодтарға қайтадан өзгертіліп кодталуы керек. (мысалы, жүйелік-тәуелді индикатор жол соғында)

  • "\" және "конец строки" символдарының біреуі араларына қойылған пробелмен алынып тасталады., одан соң бастапоы мәтіндегі келесі жол "\" және "конец строки " символдары орналасқан жолға біріктіріледі.

  • Мәтінде препроцессорлардың директивалары мен лексемалары анықталады, ал әрбір оларға берілген түсінікткме бс орын символымен ауыстырылады.

  • Препроцессор директивалары орындалады.

  • Символдық тұрақтылардағы және символдық жолдардағы эскейп-нәтижелері өздерінің эквиваленттілеріне ауыстырылады., яғни өздерінің сәйкес сандық кодтарына өзгертіледі.

  • Жинақталған символдық жолдарға (жолдық тұрақтылар) түсініктеме беріледі, яғни олар бір жолға біріктіріледі.

  • әрбір препроцессорлық лексема Си тіліндегі мәтінге айналады.

Препроцессорлық лексемаларға символдық тұрақылар, файлдар аты, идентификаторлар, операция белгілері, препроцессорлық сандар, тыныс белгілері және жолдық тұрақтылар.

Препроцессор директиваларын өңдеу қадамдарын толық қаастырайық. Оны орындауда келесі жағдайлар пайда болады:

  • идентификаторларды ауыстыру

  • көрсетілген файлдардан программаға текст қосу .

  • программадан оның мәтінінің дара бөліктерін алып тастау (шартты компиляция).

Препроцессорды басқару үшін, яғни дұрыс қадамдар жасау үшін препроцессор командаларын (директивалары) қолданылады, олардың әрбіреуі жаңа жолдарға жазылады және # символынан басталады.

Препроцессор директиваларының жалпыланған форматы:

# директива аты препроцессор лексемалары.

# символының алдында және артында директиваларда пробел болады. сонымен қатар препроцессор лексемаларының алдына да және артынада да пробел қойылады. Препроцессор директиваларының аяқталу қызметін мәтін жолының соңы атқарады (егер "\" символы сол жолға қойылған болса, онда аяқталу қызметін келесі мәтін жолының соңы орындайды).

Клесі препроцессорлық директивалар анықталған.

# define-препроцессор идентификаторы немесе макросты анықтайды.

# include-файлдан мәтін қосу.

#undef-препроцессор идентификаторын немесе макросты анықтаудан бас тарту.

#if-шартты тексеру.

# ifdef-идентификаторды анықтауды тексеру.

#Ifndef-идентификатордың анықталмағанын тексеру.

#else -#if үшін альтернативті бұтақ басы.

#endif-#if шартты директивасының соңы.

#line-келесі төменгі жолдың номер ретінің ауысуы.

#error-қате туралы хат мітінін түзеу.

#pragma-реализациямен алдын-ала қарастырылған әрекет.

# бос директива.

Препроцессорлық директивадан басқа үш препроцессорлық оерация бар. Олар # define командасыменбірге қарастырылады:

defined –ақиқатты тексеру.

##-препроцессорлық лексема конкатенация.

#-операнданы жолдық символға айналдыру.

#define директивасы бірнеше модификацияға ие. Олар препроцессорлық идентификатордың және макростың анықталуын қарастырады.

#include директивасы программа мәтініне көрсетілген файл мәтінін қосады.

#undef директивасы # define директивасының әрекетін жоққа шығарады.

#if директивасы және оның модификациялары #else, #indif, #elif директиваларымен бірге программа мәтінін шартты түрде өңдеуді ұйымдастырады. Бұларды қолданғанда барлық мәтін өңделмейді, тек оның осы директивалармен бөлінген бөліктері ғанаөңделеді.

#line директивасы жол номерін реттейді.

#error директивасы қате болған жағдайда қысқаша мәтінді диагностикалық хат шығарады.

#pragma директивасы автор өзі құрған компиляторды іске қосады.

#-бос директива болғандықтан ештеңе шақырмайды, яғни ешқандай эффект бермейді.

Негізінен Си тілінің операторлары локальді түрде анықталады. Және олардың мүмкіндіктерін кестемен көрсетуге болады. бұл кестенің мәні өте зор, бұны кез келген уақытта оқығанда немесе программа жазғанда қолдануға болады.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]