Программаның физикалық жобалануы.физикалық жобалау процедурасы - тәртібі, аспабы, ресурсы, құжаттары. (Дәріс 8)

Слайд 2

Мақсаты: Физикалық жобалау процедурасы – тәртібі, аспабы, ресурсы, құжаттарын игеру.

Мақсаты:
Физикалық жобалау процедурасы – тәртібі, аспабы, ресурсы, құжаттарын игеру.

Слайд 3

Препроцессор директивалары Препроцессорлық өңдеу процесстің бірінші фазасы деп аталатын, C/C++-тағы программаларды

Препроцессор директивалары
Препроцессорлық өңдеу процесстің бірінші фазасы деп аталатын, C/C++-тағы программаларды компиляциялайды,

бірақ C++Builder компиляторы аралық файлдарды препроцессорлық өңдеуден кейін генерацияламайды. Егер нәтижесінде препроцессор жұмысын көргіңіз келсе, онда срр32.ехе бөлек программасын командалық жолдан жіберіп көруге болады: срр32 myfile.c
Макроанықтамалар
Макроанықтамалар, әдетте макростар деп те аталады, препроцессордың #define директивасымен анықталады. #define макростарыныңүш түрлі формаларын атап айтуға болады: қарапайым символды анықтау, символдық константаны анықтау және параметрлері бар макростарды анықтау.Қарапайым анықтау келесі түрде беріледі: #define NDEBUG
Мұндай директивадан кейін NDEBUG символы анықталған деп есептеледі. Ол ешнәрсені білдірмейді, бірақ жәй ғана — анықталған (бос) екендігін білдіреді. Оны: #define NDEBUG 1 деп жазуға болады.
Слайд 4

Ол кезде NDEBUG символдық константа ретінде де қолдануға болады. Сонымен, #define

Ол кезде NDEBUG символдық константа ретінде де қолдануға болады. Сонымен, #define

константаларды ғана емес, басқа текстілік көрсеткіштерді және операторлар тізбегін де анықтауға мүмкіндік береді, ол төменде берілген:
#define SHUTDOWN printf("Error!"); \ return -1

if (ErrorCondition()) SHUTDOWN; // "шықыру" макросты.
Кері бөлу белгісі (\) макрос келесі бетте жалғасатындығын көрсетеді. С операторларынан айырмашылығыпрепроцессор директивалары бір жолда орналасуы керек, егер ол орналаспаған жағдайда оның келесі жолда екендігі осы белгімен анықталады.
Ертерек анықталған макросты #undef директивасымен алып тастауға болады:
#undef NDEBUG
Бұдан кейін макрос анықталмаған деп есептеледі, одан кейінге оған қатынаулар компиляция кезіндеге қателерге алып келеді.
Слайд 5

Алдынала анықталған макростар C++Builder компиляторы автоматты түрде кейбір макростарды анықтайды. Оларды

Алдынала анықталған макростар
C++Builder компиляторы автоматты түрде кейбір макростарды анықтайды. Оларды екі

категорияға бөлуге болады: ANSI макростары және C++Builder-ге арналған спецификалық макростар. Алдыналаанықталған макростардың түрлері сәйкесінше 4.1 және 4.2 кестелерде берілген.
Кесте 4.1. Алдынала анықталған ANSI макростар
Макрос сипаттамасы
DATE форматтағы литеральдық жол “mmm dd yyyy”, берілген файлдың
препроцессормен өңделу күнін көрсетеді.
FILE ағымдағы файлдың атын көрсететін жол (жақшада болады).
LIME бүтін, ағымдағы файлдың нөмірін көрсететін жол.
STDC 1 тең, егер компилятор мен стандарт сәйкес келсе.
ANSI (А командалық жолының – кілті). Басқа жағайда макрос анықталмаған.
TIME “hh:mm:ss” форматындағы жол, файлды өңдеудің препроцессорлық уақыттын көрсетеді
Слайд 6

_file_ және _line_ макростарының мәні #line директивасымен өзгертілуі мүмкін. Кесте 4.2.

_file_ және _line_ макростарының мәні #line директивасымен өзгертілуі мүмкін.
Кесте

4.2. Алдыналаанықталған C++Builder макростар
Макростар Мәндері Сиапттамасы
ВСОРТ 1 кез – келген компиляторда анықталған.
BCPLUSPLUS 0х0540 Анықталған, егер компиляция С++ режимінде орындалса.
Келесі версияларда өсіп отырады.
BORLANDC 0х0540 Версия нөмірі.
CDECL 1 Анықталған, егер cdecl шақыру жайында хабар болса, ал басқа жағдайда
анықталмаған.
CHARUNSIGNED 1 Үнсіздікпен анықталған (char үнсіздікпен unsigned char екендігін
білдіреді). Оны К- кілтімен алып тастауға болады.
CONSOLE Консолдік қосымшаларды компиляциялау кезінде анықталады.
CPPUNWIND 1 Стекті пайдалануға рұқсат алу; үнсіздікпен анықталады. Оны -xd-
кілтімен алып тастауға болады.
cplusplus 1 C++ режимінде компиляциялау кезінде анықталады
DLL 1 анықталған, егер динамикалық кітапханамен компиляцияланса.
FLAT 1 32-биттік жады моделімен компиляцияланса анықталаған.
MIХ86 бар уақытта анықталған. Үнсізікпен мәні — 300. (мәнін өзгертуге болады 400
немесе 500, сәйкесінше /4 немесе /5 кілттерін командалық жолдан енгізесіз.)
Слайд 7

MSDOS 1 Бүтін константа. MT 1 Анықталған, егер WM – опциясы

MSDOS 1 Бүтін константа.
MT 1 Анықталған, егер WM

– опциясы орналасса. Ол мультисызықты (multithread)
кітапхана қосылатындығын көрсетеді.
PASCAL 1 Анықталған, егер Pascal-ды шақыру жайында шарт берілсе.
TCPLUSPLUS 0х0540 Анықталған, егер компиляция C++ режимінде орындлса (bcplusplus ұқсас).
TEMPLATES 1 C++ файлдары үшін анықталған (шаблондар қолданылатындығын көрсетеді).
TLS 1 Thread Local Storage. C++Builder –де барлық уақытта анықталған.
TURBOC 0х0540 Версия нөмірі ( BORLANDC ұқсас).
WCHAR T 1 Тек C++ программаларында анықталағн (wear t — іштей анықталған тип екендігін көрсетеді.
WCAR T DEFINED 1, WCHAR Т сияқты.
Windows Код үшін анықталған, тек Windows-та қолданылады.
WIN32 1 Консольдік және GUI-қосымшалар үшін анықталған.
Көріп отырғандай, көптеген алдыналаанықталған C++Builder макростарықұрылатын компиляцияның әртүрлі параметрлерін командалық жолдан (Ьсс32.ехе копиляторын қолмен жіберу кезінде) бейнелеу үшін қоданылады. Осы жұмыстарды интеграцияланған ортада Project Options диалогы арқылы да орындауға болады, оны біз әлі қарастырамыз.