Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Справочное руководство по С++

.HTM
Скачиваний:
46
Добавлен:
01.05.2014
Размер:
426.4 Кб
Скачать

вШСТО уФТБХУФТБР. уРТБЧПЮОПЕ ТХЛПЧПДУФЧП РП C++ вШСТО уФТБХУФТБР. уРТБЧПЮОПЕ ТХЛПЧПДУФЧП РП C++ чФПТПЕ ДПРПМОЕООПЕ ЙЪДБОЙЕ * уртбчпюопе тхлпчпдуфчп R.1 чЧЕДЕОЙЕ ьФП УРТБЧПЮОПЕ ТХЛПЧПДУФЧП ПРЙУЩЧБЕФ СЪЩЛ РТПЗТБННЙТПЧБОЙС у++ РП УПУФПСОЙЙ ОБ НБК 1991. у++ - СЪЩЛ РТПЗТБННЙТПЧБОЙС ПВЭЕЗП ОБЪОБЮЕОЙС, ВБЪЙТХАЭЙКУС ОБ СЪЩЛЕ РТПЗТБННЙТПЧБОЙС у ш. ш "The C Programming Language" B. Kernighan, D. Ritchie. Prentice Hall, 1978, 1988. еУФШ ТХУУЛЙК РЕТЕЧПД: "сЪЩЛ РТПЗТБННЙТПЧБОЙС у. ъБДБЮЙ РП СЪЩЛХ у" в. лЕТОЙЗБО, д. тЙФЮЙ, б. жШАЕТ. "жЙОБОУЩ Й УФБФЙУФЙЛБ". 1984 ч ДПРПМОЕОЙЕ Л ЧПЪНПЦОПУФСН у СЪЩЛ у++ РТЕДПУФБЧМСЕФ ЛМБУУЩ, ЖХОЛГЙЙ РПДУФБОПЧЛЙ, РЕТЕЗТХЪЛХ ПРЕТБГЙК, РЕТЕЗТХЪЛХ ЙНЕО ЖХОЛГЙК, РПУФПСООЩЕ ФЙРЩ, УУЩМЛЙ, ПРЕТБФПТЩ ХРТБЧМЕОЙС УЧПВПДОПК РБНСФША, РТПЧЕТЛХ РБТБНЕФТПЧ ЖХОЛГЙК Й РТЙЧЕДЕОЙЕ ФЙРПЧ. чУЕ ТБУЫЙТЕОЙС у УХННЙТХАФУС Ч $$R.18.1. тБЪМЙЮЙС НЕЦДХ у++ Й ANSI C++ РТЙЧЕДЕОЩ Ч $$R.18.2 ш. ш American National Standard X3.159-1989. бНЕТЙЛБОУЛЙК ОБГЙПОБМШОЩК УФБОДБТФ. тБУЫЙТЕОЙС у++ ЧЕТУЙЙ 1985 ЗПДБ ДП ДБООПЗП ПРЙУБОЙС УХННЙТХАФУС Ч $$R.18.1.2. тБЪДЕМЩ, ПФОПУСЭЙЕУС Л ЫБВМПОБН ФЙРБ ($$R.14) Й ХРТБЧМЕОЙА ПУПВЩНЙ УЙФХБГЙСНЙ ($$R.15), СЧМСАФУС НЕУФБНЙ РМБОЙТХЕНЩИ ТБУЫЙТЕОЙК СЪЩЛБ. R.1.1 пВЪПТ ьФП ТХЛПЧПДУФЧП УПДЕТЦЙФ УМЕДХАЭЕЕ: 1. чЧЕДЕОЙЕ. 2. уПЗМБЫЕОЙС П МЕЛУЙЮЕУЛЙИ РПОСФЙСИ. 3. пУОПЧОЩЕ РПОСФЙС. 4. уФБОДБТФОЩЕ РТЕПВТБЪПЧБОЙС. 5. чЩТБЦЕОЙС. 6. пРЕТБФПТЩ. 7. пРЙУБОЙС. 8. пРЙУБФЕМЙ. 9. лМБУУЩ. 10. рТПЙЪЧПДОЩЕ ЛМБУУЩ. 11. лПОФТПМШ ДПУФХРБ Л ЮМЕОБН. 12. уРЕГЙБМШОЩЕ ЖХОЛГЙЙ-ЮМЕОЩ. 13. рЕТЕЗТХЪЛБ. 14. ыБВМПОЩ ФЙРПЧ. 15. хРТБЧМЕОЙЕ ПУПВЩНЙ УЙФХБГЙСНЙ. 16. рТЕРТПГЕУУПТОБС ПВТБВПФЛБ. рТЙМПЦЕОЙЕ A: уЧПДЛБ УЙОФБЛУЙУБ рТЙМПЦЕОЙЕ B: уПЧНЕУФЙНПУФШ R.1.2 ъБРЙУШ УЙОФБЛУЙУБ ч ЪБРЙУЙ УЙОФБЛУЙУБ СЪЩЛБ Ч ЬФПН ТХЛПЧПДУФЧЕ УЙОФБЛУЙЮЕУЛЙЕ РПОСФЙС ПВПЪОБЮБАФУС ЛХТУЙЧПН, Б МЙФЕТБМШОЩЕ УМПЧБ Й УЙНЧПМЩ ЫТЙЖФПН РПУФПСООПК ЫЙТЙОЩ. чБТЙБОФЩ РЕТЕЮЙУМСАФУС ОБ ПФДЕМШОЩИ УФТПЛБИ, ЪБ ЙУЛМАЮЕОЙЕН ФЕИ ОЕНОПЗЙИ УМХЮБЕЧ, ЛПЗДБ ДМЙООЩК УРЙУПЛ ЧБТЙБОФПЧ ДБЕФУС ОБ ПДОПК УФТПЛЕ У РПНЕФЛПК "ПДЙО ЙЪ". оЕПВСЪБФЕМШОЩК ФЕТНЙОБМШОЩК ЙМЙ ОЕФЕТНЙОБМШОЩК УЙНЧПМ ПВПЪОБЮБЕФУС У РПНПЭША ОЙЦОЕЗП ЙОДЕЛУБ "opt", РПЬФПНХ { ЧЩТБЦЕОЙЕ opt } ПЪОБЮБЕФ ОЕПВСЪБФЕМШОПЕ ЧЩТБЦЕОЙЕ, ЪБЛМАЮЕООПЕ Ч ЖЙЗХТОЩЕ УЛПВЛЙ. R.2 уПЗМБЫЕОЙС П МЕЛУЙЮЕУЛЙИ РПОСФЙСИ рТПЗТБННБ ОБ у++ УПУФПЙФ ЙЪ ПДОПЗП ЙМЙ ОЕУЛПМШЛЙИ ЖБКМПЧ ($$R.3.3). у МПЗЙЮЕУЛПК ФПЮЛЙ ЪТЕОЙС ЖБКМ ФТБОУМЙТХЕФУС ЪБ ОЕУЛПМШЛП РТПИПДПЧ. рЕТЧЩК РТПИПД УПУФПЙФ Ч РТЕРТПГЕУУПТОПК ПВТБВПФЛЕ ($$R.16), ОБ ЛПФПТПК РТПЙУИПДЙФ ЧЛМАЮЕОЙЕ ЖБКМПЧ Й НБЛТПРПДУФБОПЧЛБ. тБВПФБ РТЕРТПГЕУУПТБ ХРТБЧМСЕФУС У РПНПЭША ЛПНБОД, СЧМСАЭЙИУС УФТПЛБНЙ, РЕТЧЩК УЙНЧПМ ЛПФПТЩИ ПФМЙЮОЩК ПФ РТПВЕМБ ЕУФШ # ($$R2.1). тЕЪХМШФБФ ТБВПФЩ РТЕРТПГЕУУПТБ ЕУФШ РПУМЕДПЧБФЕМШОПУФШ МЕЛУЕН. фБЛХА РПУМЕДПЧБФЕМШОПУФШ МЕЛУЕН, Ф.Е. ЖБКМ РПУМЕ РТЕРТПГЕУУПТОПК ПВТБВПФЛЙ, ОБЪЩЧБАФ ЕДЙОЙГЕК ФТБОУМСГЙЙ. R.2.1 мЕЛУЕНЩ уХЭЕУФЧХАФ МЕЛУЕНЩ РСФЙ ЧЙДПЧ: ЙДЕОФЙЖЙЛБФПТЩ, УМХЦЕВОЩЕ УМПЧБ, МЙФЕТБМЩ, ПРЕТБГЙЙ Й ТБЪМЙЮОЩЕ ТБЪДЕМЙФЕМЙ. рТПВЕМЩ, ЧЕТФЙЛБМШОБС Й ЗПТЙЪПОФБМШОБС ФБВХМСГЙС, ЛПОЕГ УФТПЛЙ, РЕТЕЧПД УФТПЛЙ Й ЛПННЕОФБТЙЙ (ЧУЕ ЧНЕУФЕ "ПВПВЭЕООЩЕ" РТПВЕМЩ), ЛБЛ ХЛБЪБОП ОЙЦЕ, ЙЗОПТЙТХАФУС, ЪБ ЙУЛМАЮЕОЙЕН ФПЗП, ЮФП ПОЙ ПФДЕМСАФ МЕЛУЕНЩ. пВПВЭЕООЩЕ РТПВЕМЩ ОХЦОЩ, ЮФПВЩ ТБЪДЕМЙФШ УФПСЭЙЕ ТСДПН ЙДЕОФЙЖЙЛБФПТЩ, УМХЦЕВОЩЕ УМПЧБ Й ЛПОУФБОФЩ. еУМЙ ЧИПДОПК РПФПЛ ТБЪПВТБО ОБ МЕЛУЕНЩ ДП ДБООПЗП УЙНЧПМБ, ФП УМЕДХАЭЕК МЕЛУЕНПК УЮЙФБЕФУС МЕЛУЕНБ У НБЛУЙНБМШОП ЧПЪНПЦОПК ДМЙОПК, ЛПФПТБС ОБЮЙОБЕФУС У ЬФПЗП УЙНЧПМБ. R.2.2 лПННЕОФБТЙЙ уЙНЧПМЩ /* ОБЮЙОБАФ ЛПННЕОФБТЙК, ЛПФПТЩК ЪБЧЕТЫБЕФУС УЙНЧПМБНЙ */. фБЛЙЕ ЛПННЕОФБТЙЙ ОЕ НПЗХФ ВЩФШ ЧМПЦЕООЩНЙ. уЙНЧПМЩ // ОБЮЙОБАФ ЛПННЕОФБТЙК, ЛПФПТЩК ЪБЧЕТЫБЕФУС ЛПОГПН ЬФПК УФТПЛЙ. уЙНЧПМЩ //, /* Й */ ОЕ ЙНЕАФ УРЕГЙБМШОПЗП ОБЪОБЮЕОЙС Ч ЛПННЕОФБТЙЙ // Й ТБУУНБФТЙЧБАФУС ЛБЛ ПВЩЮОЩЕ УЙНЧПМЩ. бОБМПЗЙЮОП УЙНЧПМЩ // Й /* ОЕ ЙНЕАФ УРЕГЙБМШОПЗП ОБЪОБЮЕОЙС ЧОХФТЙ ЛПННЕОФБТЙС /*. R.2.3 йДЕОФЙЖЙЛБФПТЩ йДЕОФЙЖЙЛБФПТ - ЬФП РПУМЕДПЧБФЕМШОПУФШ ВХЛЧ Й ГЙЖТ РТПЙЪЧПМШОПК ДМЙОЩ. рЕТЧЩК УЙНЧПМ ДПМЦЕО ВЩФШ ВХЛЧПК, УЙНЧПМ РПДЮЕТЛЙЧБОЙС _ УЮЙФБЕФУС ВХЛЧПК. рТПРЙУОЩЕ Й УФТПЮОЩЕ ВХЛЧЩ ТБЪМЙЮБАФУС. чУЕ УЙНЧПМЩ УХЭЕУФЧЕООЩ. R.2.4 уМХЦЕВОЩЕ УМПЧБ рЕТЕЮЙУМЕООЩЕ ОЙЦЕ ЙДЕОФЙЖЙЛБФПТЩ ЖЙЛУЙТХАФУС ЛБЛ УМХЦЕВОЩЕ УМПЧБ Й Ч ДТХЗПН УНЩУМЕ ОЕ НПЗХФ ЙУРПМШЪПЧБФШУС: asm continue float new signed try auto default for operator sizeof typedef break delete friend private static union case do goto protected struct unsigned catch double if public switch virtual char else inline register template void class enum int return this volatile const extern long short throw while ч ДПРПМОЕОЙЕ Л ЬФПНХ ЙДЕОФЙЖЙЛБФПТЩ, УПДЕТЦБЭЙЕ ДЧПКОПЕ РПДЮЕТЛЙЧБОЙЕ (__) ТЕЪЕТЧЙТХАФУС ДМС ТЕБМЙЪБГЙК у++ Й УФБОДБТФОЩИ ВЙВМЙПФЕЛ Й РПМШЪПЧБФЕМЙ ОЕ ДПМЦОЩ ХРПФТЕВМСФШ ЙИ. ч РТЕДУФБЧМЕОЙЙ РТПЗТБННЩ ОБ у++ Ч ЛПДЙТПЧЛЕ ASCII ЙУРПМШЪХАФУС Ч ЛБЮЕУФЧЕ ПРЕТБГЙК ЙМЙ ТБЪДЕМЙФЕМЕК УМЕДХАЭЙЕ УЙНЧПМЩ: ! % ^ & * ( ) - + = { } | ~ [ ] \ ; ' : " < > ? , . / Б УМЕДХАЭЙЕ ЛПНВЙОБГЙЙ УЙНЧПМПЧ ЙУРПМШЪХАФУС ДМС ЪБДБОЙС ПРЕТБГЙК: -> ++ -- .* ->* << >> <= >= == != && || *= /= %= += -= <<= >>= &= ^= |= :: лБЦДБС ПРЕТБГЙС УЮЙФБЕФУС ПФДЕМШОПК МЕЛУЕНПК. ч ДПРПМОЕОЙЙ Л ЬФПНХ УМЕДХАЭЙЕ УЙНЧПМЩ ТЕЪЕТЧЙТХАФУС ДМС РТЕРТПГЕУУПТБ: # ## пРТЕДЕМЕООЩЕ, ЪБЧЙУСЭЙЕ ПФ ТЕБМЙЪБГЙЙ, УЧПКУФЧБ, ФБЛЙЕ ЛБЛ ФЙР ПРЕТБГЙЙ sizeof ($$R5.3.2) ЙМЙ ДЙБРБЪПОЩ ВБЪПЧЩИ ФЙРПЧ ($$R.3.6.1) ПРТЕДЕМСАФУС Ч УФБОДБТФОЩИ ЪБЗПМПЧПЮОЩИ ЖБКМБИ ($$R.16.4) <float.h> <limits.h> <stddef.h> ьФЙ ЖБКМЩ СЧМСАФУС ЮБУФША ANSI УФБОДБТФБ ДМС у. лТПНЕ ФПЗП ЪБЗПМПЧПЮОЩЕ ЖБКМЩ <new.h> <stdarg.h> <stdlib.h> ПРТЕДЕМСАФ ФЙРЩ УБНЩИ ЧБЦОЩИ ВЙВМЙПФЕЮОЩИ ЖХОЛГЙК. дЧБ РПУМЕДОЙИ ЖБКМБ ЧИПДСФ Ч ANSI УФБОДБТФ ДМС у, ЖБКМ <new.h> ПФОПУЙФУС ФПМШЛП Л у++. R.2.5 мЙФЕТБМЩ еУФШ ОЕУЛПМШЛП ЧЙДПЧ МЙФЕТБМПЧ (ЮБУФП ОБЪЩЧБЕНЩИ "ЛПОУФБОФБНЙ"). МЙФЕТБМ: ГЕМБС ЛПОУФБОФБ УЙНЧПМШОБС ЛПОУФБОФБ ЛПОУФБОФБ У РМБЧБАЭЕК ФПЮЛПК УФТПЛБ МЙФЕТБМПЧ R.2.5.1 гЕМЩЕ ЛПОУФБОФЩ чУЕ ГЕМЩЕ ЛПОУФБОФЩ, УПУФПСЭЙЕ ЙЪ РПУМЕДПЧБФЕМШОПУФЙ ГЙЖТ, УЮЙФБАФУС ДЕУСФЙЮОЩНЙ (ПУОПЧБОЙЕ УЮЙУМЕОЙС ДЕУСФШ), ЕУМЙ ФПМШЛП ПОЙ ОЕ ОБЮЙОБАФУС У 0 (ГЙЖТБ ОПМШ). рПУМЕДПЧБФЕМШОПУФШ ГЙЖТ, ОБЮЙОБАЭБСУС У 0, УЮЙФБЕФУС ЧПУШНЕТЙЮОЩН ГЕМЩН (ПУОПЧБОЙЕ УЮЙУМЕОЙС ЧПУЕНШ). гЙЖТЩ 8 Й 9 ОЕ СЧМСАФУС ЧПУШНЕТЙЮОЩНЙ. рПУМЕДПЧБФЕМШОПУФШ ГЙЖТ, ОБЮЙОБАЭБСУС У 0x ЙМЙ 0X, УЮЙФБЕФУС ЫЕУФОБДГБФЕТЙЮОЩН ГЕМЩН (ПУОПЧБОЙЕ УЮЙУМЕОЙС ЫЕУФОБДГБФШ). ыЕУФБОДГБФЕТЙЮОЩЕ ГЙЖТЩ НПЗХФ УПУФПСФШ ЙЪ УЙНЧПМПЧ ПФ a ЙМЙ A ДП f ЙМЙ F У ДЕУСФЙЮОЩНЙ ЪОБЮЕОЙСНЙ ЙИ ПФ ДЕУСФЙ ДП РСФОБДГБФЙ. оБРТЙНЕТ, ЮЙУМП ДЧЕОБДГБФШ НПЦОП ЪБРЙУБФШ ЛБЛ 12, 014 ЙМЙ 0XC. фЙР ГЕМПК ЛПОУФБОФЩ ПРТЕДЕМСЕФУС ЕЕ РТЕДУФБЧМЕОЙЕН, ЪОБЮЕОЙЕН Й ПЛПОЮБОЙЕН. еУМЙ ПОБ ДЕУСФЙЮОБС Й ОЕ ЙНЕЕФ ПЛПОЮБОЙС, ЕЕ ФЙР ВХДЕФ РЕТЧЩН РПДИПДСЭЙН ДМС ЕЕ ЪОБЮЕОЙС ЙЪ УМЕДХАЭЙИ ФЙРПЧ: int, long int, unsigned long int. еУМЙ ПОБ ЧПУШНЕТЙЮОБС ЙМЙ ЫЕУФОБДГБФЕТЙЮОБС Й ОЕ ЙНЕЕФ ПЛПОЮБОЙС, ЕЕ ФЙР ВХДЕФ РЕТЧЩН РПДИПДСЭЙН ДМС ЕЕ ЪОБЮЕОЙС ЙЪ УМЕДХАЭЙИ: int, unsigned int, long int, unsigned long int. еУМЙ ПОБ ПЛБОЮЙЧБЕФУС УЙНЧПМПН u ЙМЙ U, ЕЕ ФЙР ВХДЕФ РЕТЧЩН РПДИПДСЭЙН ДМС ЕЕ ЪОБЮЕОЙС ЙЪ УМЕДХАЭЙИ: unsigned int, unsigned long int. еУМЙ ПОБ ПЛБОЮЙЧБЕФУС УЙНЧПМПН l ЙМЙ L, ЕЕ ФЙР ВХДЕФ РЕТЧЩН РПДИПДСЭЙН ДМС ЕЕ ЪОБЮЕОЙС ЙЪ УМЕДХАЭЙИ: long int, unsigned long int. еУМЙ ПОБ ПЛБОЮЙЧБЕФУС ОБ ul, lu, uL, Lu, Ul, lU, UL ЙМЙ LU, ЕЕ ФЙРПН ВХДЕФ unsigned long int. R.2.5.2 уЙНЧПМШОЩЕ ЛПОУФБОФЩ уЙНЧПМШОПК ЛПОУФБОФПК СЧМСЕФУС ПДЙО ЙМЙ ОЕУЛПМШЛП УЙНЧПМПЧ, ЪБЛМАЮЕООЩЕ Ч ПДЙОПЮОЩЕ ЛБЧЩЮЛЙ, ОБРТЙНЕТ 'x'. лПОУФБОФБ ЙЪ ПДОПЗП УЙНЧПМБ ЙНЕЕФ ФЙР char. ъОБЮЕОЙЕ ЛПОУФБОФЩ ЙЪ ПДОПЗП УЙНЧПМБ ЕУФШ РПТСДЛПЧЩК ОПНЕТ УЙНЧПМБ Ч ФБВМЙГЕ ЛПДЙТПЧЛЙ УЙНЧПМПЧ ОБ ДБООПК НБЫЙОЕ. уЙНЧПМШОЩЕ ЛПОУФБОФЩ ЙЪ ОЕУЛПМШЛЙИ УЙНЧПМПЧ ЙНЕАФ ФЙР int. ъОБЮЕОЙЕ ФБЛПК ЛПОУФБОФЩ ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ. оЕЛПФПТЩЕ УЙНЧПМЩ, ОЕ ЙНЕАЭЙЕ ЗТБЖЙЮЕУЛПЗП РТЕДУФБЧМЕОЙС, ЛБЛ ПДЙОПЮОБС ЛБЧЩЮЛБ ',ДЧПКОБС ЛБЧЩЮЛБ ", ЪОБЛ ЧПРТПУБ ?, ПВТБФОБС ДТПВОБС ЮЕТФБ \, НПЦОП РТЕДУФБЧМСФШ ЛПНВЙОБГЙЕК УЙНЧПМПЧ (ОБЮЙОБАЭЕКУС У \) Ч УППФЧЕФУФЧЙЙ У РТЙЧПДЙНПК ОЙЦЕ ФБВМЙГЕК: ЛПОЕГ УФТПЛЙ NL (LF) \n ЗПТЙЪПОФБМШОБС ФБВХМСГЙС HT \t ЧЕТФЙЛБМШОБС ФБВХМСГЙС VT \v ЫБЗ ОБЪБД BS \b ЧПЪЧТБФ ЛБТЕФЛЙ CR \r РЕТЕЧПД ЖПТНБФБ (БЧФПТЕЗЙУФТ) FF \f УЙЗОБМ BEL \a ПВТБФОБС ДТПВОБС ЮЕТФБ \ \\ ЪОБЛ ЧПРТПУБ ? \? ПДЙОПЮОБС ЛБЧЩЮЛБ ' \' ДЧПКОБС ЛБЧЩЮЛБ " \" ЧПУШНЕТЙЮОПЕ ЮЙУМП ooo \ooo ЫЕУФОБДГБФЕТЙЮОПЕ ЮЙУМП hhh \xhhh еУМЙ ЪБ ПВТБФОПК ДТПВОПК ЮЕТФПК УМЕДХЕФ УЙНЧПМ, ПФМЙЮОЩК ПФ РЕТЕЮЙУМЕООЩИ, ТЕЪХМШФБФ ОЕПРТЕДЕМЕО. лПНВЙОБГЙС \ooo УПУФПЙФ ЙЪ ПВТБФОПК ДТПВОПК ЮЕТФЩ, Б ЛПФПТПК УМЕДХАФ ПДОБ, ДЧЕ ЙМЙ ФТЙ ЧПУШНЕТЙЮОЩЕ ГЙЖТЩ. уЮЙФБЕФУС, ЮФП ПОЙ ПРТЕДЕМСАФ ЪОБЮЕОЙЕ ЙУЛПНПЗП УЙНЧПМБ. лПНВЙОБГЙС \xhhh УПУФПЙФ ЙЪ ЙЪ ПВТБФОПК ДТПВОПК ЮЕТФЩ, ЪБ ЛПФПТПК УМЕДХЕФ x, Б ЪБ ОЙН, Ч УЧПА ПЮЕТЕДШ, УМЕДХЕФ РПУМЕДПЧБФЕМШОПУФШ ЫЕУФОБДГБФЕТЙЮОЩИ ГЙЖТ. уЮЙФБЕФУС, ЮФП ПОБ ЪБДБЕФ ЪОБЮЕОЙЕ ЙУЛПНПЗП УЙНЧПМБ. оЕФ ПЗТБОЙЮЕОЙС ОБ ДМЙОХ ЬФПК РПУМЕДПЧБФЕМШОПУФЙ ЫЕУФОБДГБФЕТЙЮОЩИ ГЙЖТ. рПУМЕДПЧБФЕМШОПУФШ ЧПУШНЕТЙЮОЩИ ЙМЙ ЫЕУФОБДГБФЕТЙЮОЩИ ГЙЖТ ПЛБОЮЙЧБЕФУС, ЛПЗДБ ЧУФТЕЮБЕФУС РЕТЧЩК УЙНЧПМ, ЛПФПТЩК ОЕ ЕУФШ ЧПУШНЕТЙЮОБС ЙМЙ ЫЕУФОБДГБФЕТЙЮОБС ГЙЖТБ УППФЧЕФУФЧЕООП. еУМЙ ЪОБЮЕОЙЕ УЙНЧПМШОПК ЛПОУФБОФЩ РТЕЧПУИПДЙФ НБЛУЙНБМШОПЕ ЙЪ char, ФП ПОП ПРТЕДЕМСЕФУС ТЕБМЙЪБГЙЕК. уЙНЧПМШОБС ЛПОУФБОФБ, ЛПФПТПК ОЕРПУТЕДУФЧЕООП РТЕДЫЕУФЧХЕФ ВХЛЧБ L, СЧМСЕФУС ЫЙТПЛПК УЙНЧПМШОПК ЛПОУФБОФПК, ОБРТЙНЕТ, L'ab'. фБЛЙЕ ЛПОУФБОФЩ ЙНЕАФ ФЙР wchar_t, СЧМСАЭЙКУС ГЕМПЮЙУМЕООЩН ФЙРПН ($$R.3.6.1), ПРТЕДЕМЕООПН Ч УФБОДБТФОПН ЪБЗПМПЧПЮОПН ЖБКМЕ <stddef.h>. ыЙТПЛЙЕ УЙНЧПМЩ РТЕДОБЪОБЮЕОЩ ДМС ФБЛПЗП ОБВПТБ УЙНЧПМПЧ, ЗДЕ ЪОБЮЕОЙЕ УЙНЧПМБ ОЕ РПНЕЭБЕФУС Ч ПДЙО ВБКФ. R.2.5.3 лПОУФБОФЩ У РМБЧБАЭЕК ФПЮЛПК лПОУФБОФЩ У РМБЧБАЭЕК ФПЮЛПК УПУФПСФ ЙЪ ГЕМПК ЮБУФЙ, УЙНЧПМБ ФПЮЛБ, ДТПВОПК ЮБУФЙ, e ЙМЙ E, ГЕМПЗП РПЛБЪБФЕМС У ЧПЪНПЦОЩН ЪОБЛПН Й ЧПЪНПЦОЩН ПЛПОЮБОЙЕН, ХЛБЪЩЧБАЭЙН ФЙР. гЕМБС Й ДТПВОБС ЮБУФЙ УПУФПСФ ЙЪ РПУМЕДПЧБФЕМШОПУФЙ ДЕУСФЙЮОЩИ (ПУОПЧБОЙЕ УЮЙУМЕОЙС ДЕУСФШ) ГЙЖТ. йМЙ ГЕМБС ЮБУФШ, ЙМЙ ДТПВОБС ЮБУФШ (ОП ОЕ ПВЕ) НПЗХФ ПФУХФУФЧПЧБФШ. йМЙ ФПЮЛБ, ЙМЙ УЙНЧПМ e (ЙМЙ E) ЧНЕУФЕ У РПЛБЪБФЕМЕН НПЗХФ ПФУХФУФЧПЧБФШ (ОП ОЕ ПВБ). фЙР ЛПОУФБОФЩ У РМБЧБАЭЕК ФПЮЛПК ЕУФШ double, ЕУМЙ ФПМШЛП ПО ОЕ ЪБДБО СЧОП У РПНПЭША ПЛПОЮБОЙС. пЛПОЮБОЙС f ЙМЙ F ЪБДБАФ ФЙР float, ПЛПОЮБОЙС l ЙМЙ L ЪБДБАФ ФЙР long double. R.2.5.4 уФТПЛЙ МЙФЕТБМПЧ уФТПЛБ МЙФЕТБМПЧ ЕУФШ РПУМЕДПЧБФЕМШОПУФШ УЙНЧПМПЧ (ЛБЛ ПОЙ ПРТЕДЕМЕОЩ Ч $$R.2.5.2), ЪБЛМАЮЕООБС Ч ДЧПКОЩЕ ЛБЧЩЮЛЙ, Ф.Е. "...". уФТПЛБ ЙНЕЕФ ФЙР "НБУУЙЧ УЙНЧПМПЧ" Й ЛМБУУ РБНСФЙ static ($$R.3.5), ПОБ ЙОЙГЙБМЙЪЙТХЕФУС ЪБДБООЩНЙ УЙНЧПМБНЙ. вХДХФ МЙ ЧУЕ УФТПЛЙ ТБЪМЙЮОЩ (Ф.Е. ИТБОЙФУС Ч ПФДЕМШОЩИ ПВЯЕЛФБИ), ПРТЕДЕМСЕФУС ТЕБМЙЪБГЙЕК. уПУЕДОЙЕ УФТПЛЙ МЙФЕТБМПЧ ЛПОЛБФЕОЙТХАФУС. уЙНЧПМЩ Ч УФТПЛБИ, РПМХЮЕООЩИ РТЙ ЛПОЛБФЕОБГЙЙ, ИТБОСФУС ПФДЕМШОП. оБРТЙНЕТ, РПУМЕ ЛПОЛБФЕОБГЙЙ "\xA" "B" УФТПЛБ ВХДЕФ УПДЕТЦБФШ ДЧБ УЙНЧПМБ '\xA' Й 'B' (Б ОЕ ПДЙО ЫЕУФОБДГБФЕТЙЮОЩК УЙНЧПМ '\xAB'). рПУМЕ ЧУЕИ ОЕПВИПДЙНЩИ ЛПОЛБФЕОБГЙК Л УФТПЛЕ ДПВБЧМСЕФУС УЙНЧПМ '\0', ЮФПВЩ РТПЗТБННБ, ЮЙФБАЭБС УФТПЛХ, НПЗМБ ПРТЕДЕМЙФШ ЕЕ ЛПОЕГ. тБЪНЕТ УФТПЛЙ ТБЧЕО ЮЙУМХ ЧУЕИ ЕЕ УЙНЧПМПЧ, ЧЛМАЮБС УЙНЧПМ ЪБЧЕТЫЙФЕМШ УФТПЛЙ. чОХФТЙ УФТПЛЙ РЕТЕД УЙНЧПМПН ДЧПКОПК ЛБЧЩЮЛЙ " ДПМЦЕО ЙДФЙ УЙНЧПМ \. уФТПЛБ МЙФЕТБМПЧ, РЕТЕД ЛПФПТПК ОЕРПУТЕДУФЧЕООП ЙДЕФ УЙНЧПМ L, УЮЙФБЕФУС ЫЙТПЛПУЙНЧПМШОПК УФТПЛПК, ОБРТЙНЕТ, L"asdf". фБЛБС УФТПЛБ ЙНЕЕФ ФЙР "НБУУЙЧ ЬМЕНЕОФПЧ ФЙРБ wchar_t", ЗДЕ wchar_t ГЕМПЮЙУМЕООЩК ФЙР, ПРТЕДЕМЕООЩК Ч УФБОДБТФОПН ЪБЗПМПЧПЮОПН ЖБКМЕ <stddef.h>. тЕЪХМШФБФ ЛПОЛБФЕОБГЙЙ ПВЩЮОЩИ Й ЫЙТПЛПУЙНЧПМШОЩИ УФТПЛ МЙФЕТБМПЧ ОЕПРТЕДЕМЕО. R.3 пУОПЧОЩЕ РПОСФЙС йНС ПВПЪОБЮБЕФ ПВЯЕЛФ, ЖХОЛГЙА, НОПЦЕУФЧП ЖХОЛГЙК, ЬМЕНЕОФ РЕТЕЮЙУМЕОЙС, ФЙР, ЮМЕО ЛМБУУБ, ЫБВМПО ФЙРБ, ЪОБЮЕОЙЕ ЙМЙ НЕФЛХ. йНС УФБОПЧЙФУС ЙЪЧЕУФОП Ч РТПЗТБННЕ У РПНПЭША ПРЙУБОЙС. йНС НПЦОП ЙУРПМШЪПЧБФШ ФПМШЛП Ч РТЕДЕМБИ ЮБУФЙ РТПЗТБННЩ, ОБЪЩЧБЕНПК ПВМБУФША ЧЙДЙНПУФЙ ЙНЕОЙ. йНС ЙНЕЕФ ФЙР, ЛПФПТЩК ЪБДБЕФ ЕЗП ЙУРПМШЪПЧБОЙЕ. йНС, ЙУРПМШЪХЕНПЕ Ч ВПМЕЕ ЮЕН ПДОПК ЕДЙОЙГЕ ФТБОУМСГЙЙ, НПЦЕФ ПВПЪОБЮБФШ ПДЙО Й ФПФ ЦЕ (Б НПЦЕФ Й ТБЪОЩЕ) ПВЯЕЛФ, ЖХОЛГЙА, ФЙР, ЫБВМПО ФЙРБ ЙМЙ ЪОБЮЕОЙЕ, Ч ЪБЧЙУЙНПУФЙ ПФ ЛПНРПОПЧЛЙ ($$R.3.3) ЬФЙИ ЕДЙОЙГ ФТБОУМСГЙЙ. пВЯЕЛФ ЙНЕЕФ ПВМБУФШ ДМС ЕЗП ИТБОЕОЙС ($$R.3.7). рПЙНЕОПЧБООЩК ПВЯЕЛФ ЙНЕЕФ ЛМБУУ РБНСФЙ ($$R.3.5), ЛПФПТЩК ПРТЕДЕМСЕФ ЕЗП ЧТЕНС ЦЙЪОЙ. йОФЕТРТЕФБГЙС ЪОБЮЕОЙК, ИТБОСЭЙИУС Ч ПВЯЕЛФЕ, ПРТЕДЕМСЕФУС ФЙРПН ЧЩТБЦЕОЙС, ЪБДБАЭЕЗП ДПУФХР Л ПВЯЕЛФХ. R.3.1 пРЙУБОЙС Й ПРТЕДЕМЕОЙС пРЙУБОЙЕ ($$r.7) ДЕМБЕФ ЙЪЧЕУФОЩН Ч РТПЗТБННЕ ПДОП ЙМЙ ОЕУЛПМШЛП ЙНЕО. пРЙУБОЙЕ УЮЙФБЕФУС ПРТЕДЕМЕОЙЕН, ЕУМЙ ФПМШЛП ПОП ОЕ ПРЙУЩЧБЕФ ЖХОЛГЙА ВЕЪ ЪБДБОЙС ЕЕ ФЕМБ ($$R.8.3), ОЕ УПДЕТЦЙФ ПРЙУБФЕМС extern ($$R.7.11), ОЕ ЙНЕЕФ ЮБУФЙ ЙОЙГЙБМЙЪБГЙЙ ЙМЙ ФЕМБ ЖХОЛГЙЙ, ОЕ СЧМСЕФУС ПРЙУБОЙЕН УФБФЙЮЕУЛПЗП ЮМЕОБ ДБООЩИ Ч ПРЙУБОЙЙ ЛМБУУБ ($$R.9.4), ОЕ СЧМСЕФУС ПРЙУБОЙЕН ЙНЕОЙ ЛМБУУБ ($$R.9.1), ОЕ СЧМСЕФУС ПРЙУБОЙЕН typedef ($$R.7.1.3). оЙЦЕ РТЙЧЕДЕОЩ РТЙНЕТЩ ПРТЕДЕМЕОЙК: int a; extern const c = 1; int f(int x) { return x+a; } struct S { int a; int b; }; enum { up, down }; ФПЗДБ ЛБЛ ОЙЦЕ УМЕДХАФ ФПМШЛП ПРЙУБОЙС: extern int a; extern const c; int f(int); struct S; typedef int Int; дМС ЛБЦДПЗП ПВЯЕЛФБ, ЖХОЛГЙЙ, ЛМБУУБ Й ЬМЕНЕОФБ РЕТЕЮЙУМЕОЙС, ЙУРПМШЪХЕНЩИ Ч РТПЗТБННЕ, ДПМЦОП ВЩФШ ФПМШЛП ПДОП ПРТЕДЕМЕОЙЕ ($$R.3.3). еУМЙ ЖХОЛГЙС ОЙЛПЗДБ ОЕ ЧЩЪЩЧБЕФУС Й ЕЕ БДТЕУ ОЙЛПЗДБ ОЕ ЙУРПМШЪХЕФУС, ЕЕ ОЕ ОХЦОП ПРТЕДЕМСФШ. бОБМПЗЙЮОП, ЕУМЙ ЙНС ЛМБУУБ ЙУРПМШЪХЕФУС ФПМШЛП ФБЛ, ЮФП ОЕ ФТЕВХЕФУС ЪОБФШ ПРТЕДЕМЕОЙС ЛМБУУБ, ФП ФБЛПК ЛМБУУ ОЕ ОБДП ПРТЕДЕМСФШ. R.3.2 пВМБУФШ ЧЙДЙНПУФЙ уХЭЕУФЧХЕФ ЮЕФЩТЕ ПВМБУФЙ ЧЙДЙНПУФЙ: МПЛБМШОБС, ЖХОЛГЙС, ЖБКМ Й ЛМБУУ. мПЛБМШОБС: йНС, ПРЙУБООПЕ Ч ВМПЛЕ ($$R.6.3), СЧМСЕФУС МПЛБМШОЩН Ч ЬФПН ВМПЛЕ Й НПЦЕФ ЙУРПМШЪПЧБФШУС ФПМШЛП Ч ОЕН Й Ч ВМПЛБИ, УПДЕТЦБЭЙИУС Ч ЬФПН ВМПЛЕ Й РПСЧМСАЭЙИУС РПУМЕ НПНЕОФБ ПРЙУБОЙС. йНЕОБ ЖПТНБМШОЩИ РБТБНЕФТПЧ ТБУУНБФТЙЧБАФУС, ЛБЛ ЕУМЙ ВЩ ПОЙ ВЩМЙ ПРЙУБОЩ Ч УБНПН ПВЯЕНМАЭЕН ВМПЛЕ ЬФПК ЖХОЛГЙЙ. жХОЛГЙС: нЕФЛЙ ($$R.6.1) НПЦОП ЙУРПМШЪПЧБФШ РПЧУАДХ Ч ЖХОЛГЙЙ, Ч ЛПФПТПК ПОЙ ПРЙУБОЩ. фПМШЛП НЕФЛЙ ЙНЕАФ ПВМБУФШ ЧЙДЙНПУФЙ, УПЧРБДБАЭХА У ЖХОЛГЙЕК. жБКМ: йНС ПРЙУБООПЕ ЧОЕ ЧУЕИ ВМПЛПЧ ($$R.6.3) Й ЛМБУУПЧ ($$R.9) ЙНЕЕФ ПВМБУФШ ЧЙДЙНПУФЙ ЖБКМ Й НПЦЕФ ВЩФШ ЙУРПМШЪПЧБОП Ч ЕДЙОЙГЕ ФТБОУМСГЙЙ, Ч ЛПФПТПК ПОП РПСЧМСЕФУС РПУМЕ НПНЕОФБ ПРЙУБОЙС. йНЕОБ, ПРЙУБООЩЕ У ЖБКМПЧПК ПВМБУФША ЧЙДЙНПУФЙ, ОБЪЩЧБАФУС ЗМПВБМШОЩНЙ. лМБУУ: йНС ЮМЕОБ ЛМБУУБ СЧМСЕФУС МПЛБМШОЩН Ч УЧПЕН ЛМБУУЕ Й ПОП НПЦЕФ ВЩФШ ЙУРПМШЪПЧБОП ФПМШЛП Ч ЖХОЛГЙЙ-ЮМЕОЕ ЬФПЗП ЛМБУУБ ($$R.9.3), ЙМЙ РПУМЕ ПРЕТБГЙЙ . , РТЙНЕОСЕНПК Л ПВЯЕЛФХ ДБООПЗП ЛМБУУБ ($$R.5.2.4) ЙМЙ ПВЯЕЛФХ РТПЙЪЧПДОПЗП ЛМБУУБ($$R.10), ЙМЙ РПУМЕ ПРЕТБГЙЙ ->, РТЙНЕОСЕНПК Л ХЛБЪБФЕМА ОБ ПВЯЕЛФ ДБООПЗП ЛМБУУБ ($$R.5.2.4) ЙМЙ ОБ ПВЯЕЛФ РТПЙЪЧПДОПЗП ЛМБУУБ, ЙМЙ РПУМЕ ПРЕТБГЙЙ ТБЪТЕЫЕОЙС :: ($$R.5.1), РТЙНЕОЕООПК Л ЙНЕОЙ ДБООПЗП ЙМЙ РТПЙЪЧПДОПЗП ЛМБУУБ. йНС, ЧЧЕДЕООПЕ У РПНПЭША ПРЕТБГЙЙ friend ($$R.11.4), РТЙОБДМЕЦЙФ ФПК ЦЕ ПВМБУФЙ ПРТЕДЕМЕООПУФЙ, ЮФП Й ЛМБУУ, УПДЕТЦБЭЙК ПРЙУБОЙЕ friend. лМБУУ, ЧРЕТЧЩЕ ПРЙУБООЩК Ч ПРЕТБФПТЕ return ЙМЙ Ч ФЙРЕ РБТБНЕФТБ, РТЙОБДМЕЦЙФ Л ЗМПВБМШОПК ПВМБУФЙ ЧЙДЙНПУФЙ. уРЕГЙБМШОЩЕ УПЗМБЫЕОЙС ДЕКУФЧХАФ ОБ ЙНЕОБ, ЧЧЕДЕООЩЕ РТЙ ПРЙУБОЙЙ РБТБНЕФТПЧ ЖХОЛГЙЙ ($$R.8.2.5) Й Ч ПРЙУБОЙСИ friend ($$R.11.4). йНС НПЦЕФ ВЩФШ УЛТЩФП СЧОЩН ПРЙУБОЙЕН ФПЗП ЦЕ ЙНЕОЙ Ч ПВЯЕНМАЭЕН ВМПЛЕ ЙМЙ ЛМБУУЕ. уЛТЩФПЕ ЙНС ЮМЕОБ ЛМБУУБ ЧУЕ-ФБЛЙ НПЦОП ЙУРПМШЪПЧБФШ, ЕУМЙ ПОП РТЕДЧБТСЕФУС ЙНЕОЕН ЛМБУУБ, Л ЛПФПТПНХ РТЙНЕОЕОБ ПРЕТБГЙС :: ($$R.4.1, $$R.9.4, $$R.10). уЛТЩФПЕ ЙНС ПВЯЕЛФБ, ЖХОЛГЙЙ, ФЙРБ ЙМЙ ЬМЕНЕОФБ РЕТЕЮЙУМЕОЙС У ЖБКМПЧПК ПВМБУФША ЧЙДЙНПУФЙ НПЦОП ЙУРПМШЪПЧБФШ, ЕУМЙ ПОП РТЕДЧБТСЕФУС ХОБТОПК ПРЕТБГЙЕК :: ($$R.5.1). ч ДПРПМОЕОЙЙ Л ЬФПНХ, ЙНС ЛМБУУБ ($$R.9.1) НПЦЕФ ВЩФШ УЛТЩФП ЙНЕОЕН ПВЯЕЛФБ, ЖХОЛГЙЙ ЙМЙ ЬМЕНЕОФБ РЕТЕЮЙУМЕОЙС, ЙНЕАЭЕЗП ФХ ЦЕ ПВМБУФШ ЧЙДЙНПУФЙ. еУМЙ ЛМБУУ Й ПВЯЕЛФ, ЙМЙ ЖХОЛГЙС, ЙМЙ ЬМЕНЕОФ РЕТЕЮЙУМЕОЙС ПРЙУБОЩ (Ч МАВПН РПТСДЛЕ) У ПДЙОБЛПЧЩН ЙНЕОЕН Ч ПДОПК ПВМБУФЙ ЧЙДЙНПУФЙ, ФП ЙНС ЛМБУУБ УФБОПЧЙФУС УЛТЩФЩН. йНС ЛМБУУБ, УЛТЩФПЕ Ч МПЛБМШОПК ПВМБУФЙ ЧЙДЙНПУФЙ ЙМЙ Ч ПВМБУФЙ ЧЙДЙНПУФЙ ЛМБУУБ ЙНЕОЕН ПВЯЕЛФБ, ЖХОЛГЙЙ ЙМЙ ЬМЕНЕОФБ РЕТЕЮЙУМЕОЙС, ЧУЕ-ФБЛЙ НПЦОП ЙУРПМШЪПЧБФШ, ЕУМЙ РТЕДЧБТЙФШ ЕЗП РПДИПДСЭЕК УРЕГЙЖЙЛБГЙЕК class, struct ЙМЙ union ($$R.7.1.6). бОБМПЗЙЮОП, УЛТЩФПЕ ЙНС ЬМЕНЕОФБ РЕТЕЮЙУМЕОЙС НПЦОП ЙУРПМШЪПЧБФШ, ЕУМЙ РТЕДЧБТЙФШ ЕЗП УРЕГЙЖЙЛБГЙЕК ФЙРБ enum ($$R.7.1.6). ч $$R.10.4 РТЙЧПДЙФУС УЧПДЛБ РТБЧЙМ ПВМБУФЙ ЧЙДЙНПУФЙ. нПНЕОФПН ПРЙУБОЙС ЙНЕОЙ УЮЙФБЕФУС НПНЕОФ ЪБЧЕТЫЕОЙС ПРЙУБФЕМС ЙНЕОЙ ($$R.8), РТЕДЫЕУФЧХАЭЕК ЮБУФЙ ЙОЙГЙБМЙЪБГЙЙ (ЕУМЙ ПОБ ЕУФШ). оБРТЙНЕТ, int x = 12; { int x = x; } ъДЕУШ ЧФПТПЕ x ЙОЙГЙБМЙЪЙТХЕФУС УЧПЙН УПВУФЧЕООЩН (ОЕПРТЕДЕМЕООЩН) ЪОБЮЕОЙЕН. нПНЕОФПН ПРЙУБОЙС ЬМЕНЕОФБ РЕТЕЮЙУМЕОЙС УЮЙФБЕФУС НПНЕОФ УТБЪХ РПУМЕ РПСЧМЕОЙС ЕЗП ЙДЕОФЙЖЙЛБФПТБ, ОБРТЙНЕТ: enum { x = x }; ъДЕУШ ЬМЕНЕОФ РЕТЕЮЙУМЕОЙС x ПРСФШ ЙОЙГЙБМЙЪЙТХЕФУС УЧПЙН УПВУФЧЕООЩН (ОЕПРТЕДЕМЕООЩН) ЪОБЮЕОЙЕН. R.3.3 рТПЗТБННБ Й УЧСЪЩЧБОЙЕ рТПЗТБННБ УПУФПЙФ ЙЪ ПДОПЗП ЙМЙ ОЕУЛПМШЛЙИ ЖБКМПЧ, УЧСЪЩЧБЕНЩИ ЧНЕУФЕ ($$R.2). жБКМ УПУФПЙФ ЙЪ РПУМЕДПЧБФЕМШОПУФЙ ПРЙУБОЙК. йНС У ЖБКМПЧПК ПВМБУФША ЧЙДЙНПУФЙ, ЛПФПТПЕ СЧОП ПРЙУБОП ЛБЛ static, СЧМСЕФУС МПЛБМШОЩН Ч УЧПЕК ЕДЙОЙГЕ ФТБОУМСГЙЙ Й НПЦЕФ ЙУРПМШЪПЧБФШУС ДМС ЙНЕОПЧБОЙС ПВЯЕЛФПЧ, ЖХОЛГЙК Й Ф.Р. Ч ДТХЗЙИ ЕДЙОЙГБИ ФТБОУМСГЙЙ. зПЧПТСФ, ЮФП ФБЛЙЕ ЙНЕОБ ЙНЕАФ ЧОХФТЕООЕЕ УЧСЪЩЧБОЙЕ. йНС У ЖБКМПЧПК ПВМБУФША ЧЙДЙНПУФЙ, ЛПФПТПЕ СЧОП ПРЙУБОП УП УРЕГЙЖЙЛБГЙЕК inline, СЧМСЕФУС МПЛБМШОЩН Ч УЧПЕК ЕДЙОЙГЕ ФТБОУМСГЙЙ. йНС У ЖБКМПЧПК ПВМБУФША ЧЙДЙНПУФЙ, ЛПФПТПЕ СЧОП ПРЙУБОП УП УРЕГЙЖЙЛБГЙЕК const Й ОЕ ПРЙУБОП СЧОП ЛБЛ extern, УЮЙФБЕФУС МПЛБМШОЩН Ч УЧПЕК ЕДЙОЙГЕ ФТБОУМСГЙЙ. фП ЦЕ ЧЕТОП ДМС ЙНЕОЙ ЛМБУУБ, ЛПФПТПЕ ОЕ ЙУРПМШЪПЧБМПУШ Ч ОЕМПЛБМШОЩИ ДМС ДБООПК ЕДЙОЙГЩ ФТБОУМСГЙЙ ПРЙУБОЙСИ ПВЯЕЛФБ, ЖХОЛГЙЙ ЙМЙ ЛМБУУБ, Й ЛПФПТЩК ОЕ ЙНЕЕФ УФБФЙЮЕУЛЙИ ЮМЕОПЧ ($$R.9.4), ОЕ ЙНЕЕФ ЖХОЛГЙК-ЮМЕОПЧ, ЛТПНЕ РПДУФБОПЧПЛ ($$R.9.3.2). чУСЛПЕ ПРЙУБОЙЕ ОЕЛПФПТПЗП ЙНЕОЙ У ЖБКМПЧПК ПВМБУФША ЧЙДЙНПУФЙ, ЛПФПТПЕ ОЕ ПРЙУБОП ПДОЙН ЙЪ РЕТЕЮЙУМЕООЩИ УРПУПВПЧ ФБЛ, ЮФПВЩ ЙНЕФШ ЧОХФТЕООЕЕ УЧСЪЩЧБОЙЕ, Ч НОПЗПЖБКМПЧПК РТПЗТБННЕ ПВПЪОБЮБЕФ ПДЙО Й ФПФ ЦЕ ПВЯЕЛФ ($$R.3.7), ЖХОЛГЙА ($$R.8.2.5) ЙМЙ ЛМБУУ ($$R.9). фБЛЙЕ ЙНЕОБ ОБЪЩЧБАФУС ЧОЕЫОЙНЙ ЙМЙ ЗПЧПТСФ, ЮФП ПОЙ ЙНЕАФ ЧОЕЫОЕЕ УЧСЪЩЧБОЙЕ. ч ЮБУФОПУФЙ, РПУЛПМШЛХ ОЕМШЪС ПРЙУБФШ ЙНС ЛМБУУБ ЛБЛ static, ЧУСЛПЕ ХРПФТЕВМЕОЙЕ ЙНЕОЙ ОЕЛПФПТПЗП ЛМБУУБ У ЖБКМПЧПК ПВМБУФША ЧЙДЙНПУФЙ, ЛПФПТЩК (ЛМБУУ) ЙУРПМШЪПЧБМУС ДМС ПРЙУБОЙС ПВЯЕЛФБ ЙМЙ ЖХОЛГЙЙ У ЧОЕЫОЙН УЧСЪЩЧБОЙЕН, ЙМЙ ЦЕ ЛПФПТЩК ЙНЕЕФ УФБФЙЮЕУЛЙК ЮМЕО ЙМЙ ЖХОЛГЙА-ЮМЕО, ОЕ СЧМСАЭХАУС РПДУФБОПЧЛПК, ВХДЕФ ПВПЪОБЮБФШ ПДЙО Й ФПФ ЦЕ ЛМБУУ. йНЕОБ ПРТЕДЕМСЕНЩИ ФЙРПЧ (typedef $$R.7.13), ЬМЕНЕОФЩ РЕТЕЮЙУМЕОЙС ($$R.7.2) ЙМЙ ЙНЕОБ ЫБВМПОПЧ ФЙРБ ($$R.14) ОЕ ЙНЕАФ ЧОЕЫОЕЗП УЧСЪЩЧБОЙС. уФБФЙЮЕУЛЙЕ ЮМЕОЩ ЛМБУУБ ($$R.9.4) ДПРХУЛБАФ ЧОЕЫОЕЕ УЧСЪЩЧБОЙЕ. жХОЛГЙЙ-ЮМЕОЩ, ОЕ СЧМСАЭЙЕУС РПДУФБОПЧЛПК, ДПРХУЛБАФ ЧОЕЫОЕЕ УЧСЪЩЧБОЙЕ. жХОЛГЙЙ-ЮМЕОЩ, СЧМСАЭЙЕУС РПДУФБОПЧЛПК, ДПМЦОЩ ЙНЕФШ Ч ФПЮОПУФЙ ПДОП ПРТЕДЕМЕОЙЕ Ч РТПЗТБННЕ. мПЛБМШОЩЕ ЙНЕОБ ($$R.3.2), СЧОП ПРЙУБООЩЕ УП УРЕГЙЖЙЛБГЙЕК extern, ЙНЕАФ ЧОЕЫОЕЕ УЧСЪЩЧБОЙЕ, ЕУМЙ ФПМШЛП ПОЙ ХЦЕ ОЕ ВЩМЙ ПРЙУБОЩ ЛБЛ static ($$R.7.1.1). фЙРЩ, ЙУРПМШЪХЕНЩЕ ЧП ЧУЕИ ПРЙУБОЙСИ ОЕЛПФПТПЗП ЧОЕЫОЕЗП ЙНЕОЙ, ДПМЦОЩ УПЧРБДБФШ, ЪБ ЙУЛМАЮЕОЙЕН ЙУРПМШЪПЧБОЙС ЙНЕО ПРТЕДЕМСЕНЩИ ФЙРПЧ ($$R.7.1.3) Й ХЛБЪБОЙС ЗТБОЙГ НБУУЙЧПЧ ($$R.8.2.4). дПМЦОП ВЩФШ Ч ФПЮОПУФЙ ПДОП ПРТЕДЕМЕОЙЕ ДМС ЛБЦДПК ЖХОЛГЙЙ, ПВЯЕЛФБ, ЛМБУУБ Й ЬМЕНЕОФБ РЕТЕЮЙУМЕОЙС, ЙУРПМШЪХЕНЩИ Ч РТПЗТБННЕ. пДОБЛП, ЕУМЙ ЖХОЛГЙС ОЙЛПЗДБ ОЕ ЧЩЪЩЧБЕФУС Й ЕЕ БДТЕУ ОЙЛПЗДБ ОЕ ЙУРПМШЪХЕФУС, ЕЕ ОЕ ОХЦОП ПРТЕДЕМСФШ. бОБМПЗЙЮОП, ЕУМЙ ЙНС ЛМБУУБ ЙУРПМШЪХЕФУС ФПМШЛП ФБЛЙН ПВТБЪПН, ЮФП ОЕ ФТЕВХЕФУС ЪОБФШ ПРТЕДЕМЕОЙЕ ЛМБУУБ, ФП ЛМБУУ ОЕ ОХЦОП ПРТЕДЕМСФШ. пВМБУФШ ЧЙДЙНПУФЙ ЖХОЛГЙЙ НПЦЕФ ВЩФШ ФПМШЛП ЖБКМ ЙМЙ ЛМБУУ. у РПНПЭША УРЕГЙЖЙЛБГЙЙ УЧСЪЩЧБОЙС НПЦОП ДПВЙФШУС УЧСЪЩЧБОЙС У ПРЙУБОЙСНЙ ОБ ДТХЗПН СЪЩЛЕ ($$R.7.4). R.3.4 оБЮБМП Й ПЛПОЮБОЙЕ РТПЗТБННЩ рТПЗТБННБ ДПМЦОБ УПДЕТЦБФШ ЖХОЛГЙА У ЙНЕОЕН main(). еК РТЙРЙУЩЧБЕФУС ТПМШ ОБЮБМБ РТПЗТБННЩ. ьФБ ЖХОЛГЙС ОЕ СЧМСЕФУС РТЕДПРТЕДЕМЕООПК ДМС ФТБОУМСФПТБ, ПОБ ОЕ НПЦЕФ ВЩФШ РЕТЕЗТХЦЕОБ, Б ЕЕ ФЙР ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ. рТЕДРПМБЗБЕФУС, ЮФП МАВБС ТЕБМЙЪБГЙС ДПМЦОБ ДПРХУЛБФШ ДЧБ РТЙЧЕДЕООЩИ ОЙЦЕ ПРТЕДЕМЕОЙС Й ЮФП НПЦОП ДПВБЧМСФШ РПУМЕ argv МАВЩЕ РБТБНЕФТЩ. жХОЛГЙС main НПЦЕФ ПРТЕДЕМСФШУС ФБЛ int main() { /* ... */ } ЙМЙ int main(int argc, char* argv[]) { /* ... */ } ч РПУМЕДОЕН ПРТЕДЕМЕОЙЙ argc ЪБДБЕФ ЮЙУМП РБТБНЕФТПЧ, РЕТЕДБЧБЕНЩИ РТПЗТБННЕ ПЛТХЦЕОЙЕН, Ч ЛПФПТПН ПОБ ЧЩРПМОСЕФУС. еУМЙ argc ОЕ ТБЧОП ОХМА, РБТБНЕФТЩ ДПМЦОЩ РЕТЕДБЧБФШУС ЛБЛ УФТПЛЙ, ЪБЧЕТЫБАЭЙЕУС УЙНЧПМПН '\0', У РПНПЭША argv[0] ДП argv[argc-1], РТЙЮЕН argv[0] ДПМЦОП ВЩФШ ЙНЕОЕН, РПД ЛПФПТЩН РТПЗТБННБ ВЩМБ ЪБРХЭЕОБ, ЙМЙ "". дПМЦОП ЗБТБОФЙТПЧБФШУС, ЮФП argv[argc]==0. жХОЛГЙС main() ОЕ ДПМЦОБ ЧЩЪЩЧБФШУС Ч РТПЗТБННЕ. уЧСЪЩЧБОЙЕ main() ($$R.3.3) ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ. оЕМШЪС РПМХЮБФШ БДТЕУ main() Й ОЕ УМЕДХЕФ ПРЙУЩЧБФШ ЕЕ ЛБЛ inline ЙМЙ static. чЩЪПЧ ЖХОЛГЙЙ void exit(int); ПРЙУБООПК Ч <stdlib.h>, ЪБЧЕТЫБЕФ РТПЗТБННХ. ъОБЮЕОЙЕ РБТБНЕФТБ РЕТЕДБЕФУС ПЛТХЦЕОЙА РТПЗТБННЩ Ч ЛБЮЕУФЧЕ ТЕЪХМШФБФБ РТПЗТБННЩ. йОЙГЙБМЙЪБГЙС ОЕМПЛБМШОЩИ УФБФЙЮЕУЛЙИ ПВЯЕЛФПЧ ($$R.3.5) ЕДЙОЙГЩ ФТБОУМСГЙЙ РТПЙУИПДЙФ РТЕЦДЕ РЕТЧПЗП ПВТБЭЕОЙС Л ЖХОЛГЙЙ ЙМЙ ПВЯЕЛФХ, ПРТЕДЕМЕООПНХ Ч ЬФПК ЕДЙОЙГЕ ФТБОУМСГЙЙ. ьФБ ЙОЙГЙБМЙЪБГЙС ($$R.8.4, $$R.9.4, &&R.12.1, $$R.12.6.1) НПЦЕФ ВЩФШ РТПЧЕДЕОБ РЕТЕД ЧЩРПМОЕОЙЕН РЕТЧПЗП ПРЕТБФПТБ main() ЙМЙ ПФМПЦЕОБ ДП МАВПЗП НПНЕОФБ, РТЕДЫЕУФЧХАЭЕЗП РЕТЧПНХ ЙУРПМШЪПЧБОЙА ЖХОЛГЙЙ ЙМЙ ПВЯЕЛФБ, ПРТЕДЕМЕООЩИ Ч ДБООПК ЕДЙОЙГЕ ФТБОУМСГЙЙ. чУЕ УФБФЙЮЕУЛЙЕ ПВЯЕЛФЩ РП ХНПМЮБОЙА ЙОЙГЙБМЙЪЙТХАФУС ОХМЕН ($$R.8.4) РТЕЦДЕ МАВПК ДЙОБНЙЮЕУЛПК (ЧП ЧТЕНЕОЙ ЧЩРПМОЕОЙС РТПЗТБННЩ) ЙОЙГЙБМЙЪБГЙЙ. вПМШЫЕ ОЙЛБЛЙИ ФТЕВПЧБОЙК ОБ РПТСДПЛ ЙОЙГЙБМЙЪБГЙЙ ПВЯЕЛФПЧ ЙЪ ТБЪМЙЮОЩИ ЕДЙОЙГ ФТБОУМСГЙЙ ОЕ ОБМБЗБЕФУС. йОЙГЙБМЙЪБГЙС МПЛБМШОЩИ Й УФБФЙЮЕУЛЙИ ПВЯЕЛФПЧ ПРЙУБОБ Ч $$R.8.4. дЕУФТХЛФПТЩ ($$R.12.4) ДМС ЙОЙГЙБМЙЪЙТПЧБООЩИ УФБФЙЮЕУЛЙИ ПВЯЕЛФПЧ ЧЩЪЩЧБАФУС РТЙ ЧПЪЧТБФЕ ЙЪ main() ЙМЙ РТЙ ЧЩЪПЧЕ exit(). хОЙЮФПЦЕОЙЕ РТПЙУИПДЙФ Ч ПВТБФОПН РПТСДЛЕ РП УТБЧОЕОЙА У ЙОЙГЙБМЙЪБГЙЕК. у РПНПЭША ЖХОЛГЙЙ atexit() ЙЪ <stdlib.h> НПЦОП ХЛБЪБФШ ЖХОЛГЙА, ЛПФПТХА ОХЦОП ЧЩЪЩЧБФШ РТЙ ЧЩИПДЕ ЙЪ РТПЗТБННЩ. еУМЙ ВЩМП ПВТБЭЕОЙЕ Л ЖХОЛГЙЙ atexit(), ПВЯЕЛФЩ, ЙОЙГЙБМЙЪЙТПЧБООЩЕ ДП ЧЩЪПЧБ atexit(), ОЕ ДПМЦОЩ ХОЙЮФПЦБФШУС ДП ФЕИ РПТ, РПЛБ ОЕ РТПЙЪПКДЕФ ЧЩЪПЧ ЖХОЛГЙЙ, ХЛБЪБООПК Ч atexit(). еУМЙ ТЕБМЙЪБГЙС у++ УПУХЭЕУФЧХЕФ У ТЕБМЙЪБГЙЕК у, ЧУЕ ДЕКУФЧЙС, ЛПФПТЩЕ ДПМЦОЩ ВЩМЙ РТПЙЪПКФЙ РПУМЕ ЧЩЪПЧБ ЖХОЛГЙЙ, ЪБДБООПК Ч atexit(), РТПЙУИПДСФ ФПМШЛП РПУМЕ ЧЩЪПЧБ ЧУЕИ ДЕУФТХЛФПТПЧ. чЩЪПЧ ЖХОЛГЙЙ void abort(); ПРЙУБООПК Ч <stdlib.h>, ЪБЧЕТЫБЕФ РТПЗТБННХ ВЕЪ ЧЩРПМОЕОЙС ДЕУФТХЛФПТПЧ УФБФЙЮЕУЛЙИ ПВЯЕЛФПЧ Й ВЕЪ ЧЩЪПЧБ ЖХОЛГЙК, ЪБДБООЩИ Ч atexit(). R.3.5 лМБУУЩ РБНСФЙ уХЭЕУФЧХЕФ ДЧБ ПРЙУЩЧБЕНЩИ ЛМБУУБ РБНСФЙ: БЧФПНБФЙЮЕУЛЙК Й УФБФЙЮЕУЛЙК. бЧФПНБФЙЮЕУЛЙЕ ПВЯЕЛФЩ УФБОПЧСФУС МПЛБМШОЩНЙ РТЙ РЕТЕДБЮЕ ХРТБЧМЕОЙС Ч ЛБЦДЩК ВМПЛ. уФБФЙЮЕУЛЙЕ ПВЯЕЛФЩ УХЭЕУФЧХАФ Й УПИТБОСАФ УЧПЕ ЪОБЮЕОЙЕ ЧП ЧУЕ ЧТЕНС ЧЩРПМОЕОЙС РТПЗТБННЩ. бЧФПНБФЙЮЕУЛЙЕ ПВЯЕЛФЩ ЙОЙГЙБМЙЪЙТХАФУС ($$R.12.1) ЧУСЛЙК ТБЪ, ЛПЗДБ ХРТБЧМЕОЙЕ РЕТЕИПДЙФ Ч ВМПЛ, ЗДЕ ПОЙ ПРТЕДЕМЕОЩ Й ХОЙЮФПЦБАФУС ($$R.12.4) РП ЧЩИПДЕ ЙЪ ЬФПЗП ВМПЛБ ($$R.6.7). рПЙНЕОПЧБООЩК БЧФПНБФЙЮЕУЛЙК ПВЯЕЛФ ОЕ ДПМЦЕО ВЩФШ ХОЙЮФПЦЕО ДП ПЛПОЮБОЙС ЕЗП ВМПЛБ, ФПЮОП ФБЛ ЦЕ, ЛБЛ ОЕ НПЦЕФ ВЩФШ ЙУЛМАЮЕО РПЙНЕОПЧБООЩК БЧФПНБФЙЮЕУЛЙК ПВЯЕЛФ ЛМБУУБ, ЙНЕАЭЕЗП ЛПОУФТХЛФПТ ЙМЙ ДЕУФТХЛФПТ У РПВПЮОЩН ЬЖЖЕЛФПН, ДБЦЕ ЕУМЙ ЛБЦЕФУС, ЮФП ЬФПФ ПВЯЕЛФ ОЕ ЙУРПМШЪХЕФУС. бОБМПЗЙЮОП, ЗМПВБМШОЩК ПВЯЕЛФ ЛМБУУБ У ЛПОУФТХЛФПТПН ЙМЙ ДЕУФТХЛФПТПН, ЙНЕАЭЙНЙ РПВПЮОЩК ЬЖЖЕЛФ, ОЕ НПЦЕФ ВЩФШ ЙУЛМАЮЕО, ДБЦЕ ЕУМЙ ЛБЦЕФУС, ЮФП ПО ОЕ ЙУРПМШЪХЕФУС. уФБФЙЮЕУЛЙЕ ПВЯЕЛФЩ ЙОЙГЙБМЙЪЙТХАФУС Й ХОЙЮФПЦБАФУС Ч УППФЧЕФУФЧЙЙ У ПРЙУБОЙЕН Ч $$R.3.4 Й $$R.6.7. у ОЕЛПФПТЩНЙ ПВЯЕЛФБНЙ ОЕ УЧСЪБОП ОЙЛБЛПЗП ЙНЕОЙ, УН. $$R.5.3.3 Й $$R.12.2. чУЕ ЗМПВБМШОЩЕ ПВЯЕЛФЩ ЙНЕАФ ЛМБУУ РБНСФЙ УФБФЙЮЕУЛЙК. мПЛБМШОЩН ПВЯЕЛФБН Й ЮМЕОБН ЛМБУУБ НПЦОП РТЕДБФШ ЛМБУУ РБНСФЙ УФБФЙЮЕУЛЙК У РПНПЭША СЧОПЗП ЙУРПМШЪПЧБОЙС УРЕГЙЖЙЛБГЙЙ ЛМБУУБ РБНСФЙ static ($$R.7.1.1). R.3.6 фЙРЩ уХЭЕУФЧХАФ ДЧБ ЧЙДБ ФЙРПЧ: ПУОПЧОЩЕ Й РТПЙЪЧПДОЩЕ. R.3.6.1 пУОПЧОЩЕ ФЙРЩ уХЭЕУФЧХЕФ ОЕУЛПМШЛП ПУОПЧОЩИ ФЙРПЧ. ч УФБОДБТФОПН ЪБЗПМПЧПЮОПН ЖБКМЕ <limits.h> ЪБДБАФУС Ч ЪБЧЙУЙНПУФЙ ПФ ТЕБМЙЪБГЙЙ НЙОЙНБМШОЩЕ Й НБЛУЙНБМШОЩЕ ЪОБЮЕОЙС ЛБЦДПЗП ФЙРБ. пВЯЕЛФЩ, ПРЙУБООЩЕ ЛБЛ УЙНЧПМЩ (char), НПЗХФ ИТБОЙФШ МАВПК ЬМЕНЕОФ ЙЪ ВБЪПЧПЗП ОБВПТБ УЙНЧПМПЧ ДБООПК НБЫЙОЩ. еУМЙ УЙНЧПМ ЬФПЗП ОБВПТБ ИТБОЙФУС Ч УЙНЧПМШОПК РЕТЕНЕООПК, ФП ЕЕ ЪОБЮЕОЙЕ ТБЧОП ГЕМПНХ ЪОБЮЕОЙА ЛПДБ ЬФПЗП УЙНЧПМБ. уЙНЧПМЩ НПЗХФ СЧОП ПРЙУЩЧБФШУС ЛБЛ unsigned ЙМЙ signed. пВЩЮОЩК char, signed char Й unsigned char СЧМСАФУС ФТЕНС ТБЪМЙЮОЩНЙ ФЙРБНЙ. дМС ЧУЕИ ЬФЙИ ФТЕИ ФЙРПЧ ФТЕВХЕФУС ПДЙОБЛПЧЩК ПВЯЕН РБНСФЙ. у РПНПЭША ПРЙУБОЙК short int, int Й long int НПЦОП ПРТЕДЕМЙФШ ГЕМЩЕ ФТЕИ ТБЪМЙЮОЩИ ТБЪНЕТПЧ. дМС ДМЙООЩИ ГЕМЩИ ФТЕВХЕФУС РБНСФЙ ОЕ НЕОШЫЕ ЮЕН ДМС ЛПТПФЛЙИ ГЕМЩИ, ОП Ч ТЕБМЙЪБГЙЙ ЙМЙ ЛПТПФЛЙЕ ГЕМЩЕ, ЙМЙ ДМЙООЩЕ ГЕМЩЕ, ЙМЙ Й ФЕ Й ДТХЗЙЕ НПЗХФ ПЛБЪБФШУС ЬЛЧЙЧБМЕОФОЩНЙ ПВЩЮОЩН ГЕМЩН. пВЩЮОЩЕ ГЕМЩЕ ЙНЕАФ ТБЪНЕТ, ПРТЕДЕМСЕНЩК УЙУФЕНПК ЛПНБОД, ТБЪНЕТЩ ДТХЗЙИ ГЕМЩИ ПРТЕДЕМСАФУС ЛПОЛТЕФОЩНЙ РПФТЕВОПУФСНЙ. дМС ЛБЦДПЗП ЙЪ ФЙРПЧ signed char, short, int Й long УХЭЕУФЧХЕФ УППФЧЕФУФЧХАЭЙК ВЕЪЪОБЛПЧЩК ФЙР, ЛПФПТЩК ЪБОЙНБЕФ ФПФ ЦЕ ПВЯЕН РБНСФЙ Й ХДПЧМЕФЧПТСЕФ ФЕН ЦЕ ФТЕВПЧБОЙСН ЧЩТБЧОЙЧБОЙС. фТЕВПЧБОЙЕ ЧЩТБЧОЙЧБОЙЕ - ЬФП ПЗТБОЙЮЕОЙЕ ОБ ЪОБЮЕОЙЕ ХЛБЪБФЕМС ОБ ДБООЩК ПВЯЕЛФ, ЛПФПТПЕ ОБЛМБДЩЧБЕФ ТЕБМЙЪБГЙС ($$R.5.4). вЕЪЪОБЛПЧЩЕ ГЕМЩЕ, ПРЙУБООЩЕ ЛБЛ unsigned, РПДЮЙОСАФУС ЪБЛПОПН БТЙЖНЕФЙЛЙ РП НПДХМА 2@n, ЗДЕ n ЮЙУМП ВЙФПЧ, ЙУРПМШЪХЕНПЕ ДМС РТЕДУФБЧМЕОЙС ЪОБЮЕОЙС. пФУАДБ УМЕДХЕФ, ЮФП Ч БТЙЖНЕФЙЛЕ ВЕЪЪОБЛПЧЩИ ОЕ ЧПЪОЙЛБЕФ РЕТЕРПМОЕОЙС. уХЭЕУФЧХЕФ ФТЙ ФЙРБ У РМБЧБАЭЕК ФПЮЛПК: float, double Й long double. фЙР double ЗБТБОФЙТХЕФ ОЕ НЕОШЫХА ФПЮОПУФШ РТЕДУФБЧМЕОЙС, ЮЕН float, Б ФЙР long double ЗБТБОФЙТХЕФ ФПЮОПУФШ ОЕ НЕОШЫЕ, ЮЕН Х double. иБТБЛФЕТЙУФЙЛЙ ПУОПЧОЩИ ФЙРПЧ У РМБЧБАЭЕК ФПЮЛПК ПРТЕДЕМСАФУС Ч УППФЧЕФУФЧЙЙ У ТЕБМЙЪБГЙЕК Ч УФБОДБТФОПН ЪБЗПМПЧПЮОПН ЖБКМЕ <float.h>. фЙРЩ char, int МАВЩИ ТБЪНЕТПЧ Й ФЙР РЕТЕЮЙУМЕОЙС ($$R.7.2) ОБЪЩЧБАФУС ГЕМПЮЙУМЕООЩНЙ ФЙРБНЙ. гЕМПЮЙУМЕООЩЕ ФЙРЩ ЧНЕУФЕ У ФЙРБНЙ У РМБЧБАЭЕК ФПЮЛПК ПВТБЪХАФ БТЙЖНЕФЙЮЕУЛЙЕ ФЙРЩ. фЙР void ЪБДБЕФ РХУФПЕ НОПЦЕУФЧП ЪОБЮЕОЙК. пО ЙУРПМШЪХЕФУС ДМС ПВПЪОБЮЕОЙС ФЙРБ ЖХОЛГЙК, ЛПФПТЩЕ ОЕ ЧПЪЧТБЭБАФ ТЕЪХМШФБФ. оЕМШЪС ПРЙУЩЧБФШ ПВЯЕЛФЩ У ФЙРПН void. мАВПЕ ЧЩТБЦЕОЙЕ НПЦОП СЧОП РТЕПВТБЪПЧБФШ Л ФЙРХ void ($$R.5.4), РПМХЮЙЧЫЕЕУС ЧЩТБЦЕОЙЕ НПЦОП ЙУРПМШЪПЧБФШ ФПМШЛП ЛБЛ ЧЩТБЦЕОЙЕ-ПРЕТБФПТ ($$R.6.2), ЛБЛ МЕЧЩК ПРЕТБОД ПРЕТБГЙЙ ЪБРСФБС ($$R.5.18) ЙМЙ Ч ЛБЮЕУФЧЕ ЧФПТПЗП ЙМЙ ФТЕФШЕЗП ПРЕТБОДБ Ч ПРЕТБГЙЙ ?: ($$R.5.16). R.3.6.2 рТПЙЪЧПДОЩЕ ФЙРЩ уХЭЕУФЧХЕФ РПФЕОГЙБМШОП ВЕУЛПОЕЮОПЕ ЮЙУМП РТПЙЪЧПДОЩИ ФЙРПЧ, ЛПФПТЩЕ УФТПСФУС ЙЪ ПУОПЧОЩИ ФЙРПЧ УМЕДХАЭЙНЙ УРПУПВБНЙ: НБУУЙЧ ПВЯЕЛФПЧ ДБООПЗП ФЙРБ, $$R.8.4; ЖХОЛГЙЙ, ЙНЕАЭЙЕ РБТБНЕФТЩ ДБООПЗП ФЙРБ Й ЧПЪЧТБЭБАЭЙЕ ПВЯЕЛФЩ ДБООПЗП ФЙРБ, $$R.8.2.5; ХЛБЪБФЕМЙ ОБ ПВЯЕЛФЩ ЙМЙ ЖХОЛГЙЙ ДБООПЗП ФЙРБ, $$R.8.2.1; УУЩМЛЙ ОБ ПВЯЕЛФЩ ЙМЙ ЖХОЛГЙЙ ДБООПЗП ФЙРБ, $$R.8.2.2; ЛПОУФБОФЩ, СЧМСАЭЙЕУС ЪОБЮЕОЙСНЙ ДБООПЗП ФЙРБ, $$R.7.1.6; ЛМБУУЩ, УПДЕТЦБЭЙЕ УПЧПЛХРОПУФШ ПВЯЕЛФПЧ ТБЪМЙЮОЩИ ФЙРПЧ ($$R.9), ОБВПТ ЖХОЛГЙК ДМС ХРТБЧМЕОЙС ЬФЙНЙ ПВЯЕЛФБНЙ ($$R.9.3) Й Й УРЙУПЛ ПЗТБОЙЮЕОЙК ОБ ДПУФХР Л ЬФЙН ПВЯЕЛФБН Й ЖХОЛГЙСН, $$R.11; УФТХЛФХТЩ, ЛПФПТЩЕ СЧМСАФУС ЛМБУУБНЙ ВЕЪ УФБОДБТФОЩИ ПЗТБОЙЮЕОЙК ОБ ДПУФХР, $$r.11; ПВЯЕДЙОЕОЙС, ЛПФПТЩЕ СЧМСАФУС УФТХЛФХТБНЙ, УРПУПВОЩНЙ УПДЕТЦБФШ Ч ТБЪОПЕ ЧТЕНС ПВЯЕЛФЩ ТБЪМЙЮОЩИ ФЙРПЧ, $$R.9.5; ХЛБЪБФЕМЙ ОБ ЮМЕОЩ ЛМБУУПЧ, ЛПФПТЩЕ ЪБДБАФ ЮМЕОЩ ДБООПЗП ФЙРБ УТЕДЙ ЧУЕИ ПВЯЕЛФПЧ ДБООПЗП ЛМБУУБ, $$R.8.2.3. ч ПВЭЕН УМХЮБЕ ХЛБЪБООЩЕ НЕФПДЩ РПУФТПЕОЙС ПВЯЕЛФПЧ НПЗХФ РТЙНЕОСФШУС ТЕЛХТУЙЧОП, ПЗТБОЙЮЕОЙС РТЙЧЕДЕОЩ Ч $$r.8.2.1, $$R.8.2.4, $$R.8.2.5 Й $$R.8.2.2. рТП ХЛБЪБФЕМШ ОБ ПВЯЕЛФЩ ФЙРБ T ЗПЧПТСФ "ХЛБЪБФЕМШ ОБ ОБ T". оБРТЙНЕТ, РТП ХЛБЪБФЕМШ ОБ ПВЯЕЛФ ФЙРБ int ЗПЧПТСФ "ХЛБЪБФЕМШ ОБ int", Б ХЛБЪБФЕМШ ОБ ПВЯЕЛФ ЛМБУУБ X ОБЪЩЧБЕФУС "ХЛБЪБФЕМШ ОБ X". пВЯЕЛФЩ ФЙРБ void* (ХЛБЪБФЕМШ ОБ void), const void* Й volatile void* НПЗХФ ЙУРПМШЪПЧБФШУС ЛБЛ ХЛБЪБФЕМЙ ОБ ПВЯЕЛФЩ ОЕЙЪЧЕУФОПЗП ФЙРБ. пВЯЕЛФ ФЙРБ void* ДПМЦЕО ЙНЕФШ ДПУФБФПЮОП РБНСФЙ, ЮФПВЩ ИТБОЙФШ ХЛБЪБФЕМШ ОБ МАВПК ПВЯЕЛФ. чУЕ ЖТБЗНЕОФЩ ТХЛПЧПДУФЧБ, ЗПЧПТСЭЙЕ ПВ "ХЛБЪБФЕМСИ", ОЕ ПФОПУСФУС Л ХЛБЪБФЕМСН ОБ ЮМЕОЩ, ЪБ ЙУЛМАЮЕОЙЕН ХЛБЪБФЕМЕК ОБ УФБФЙЮЕУЛЙЕ ЮМЕОЩ. R.3.6.3 йНЕОБ ФЙРПЧ пУОПЧОЩЕ Й РТПЙЪЧПДОЩЕ ФЙРЩ НПЦОП РПЙНЕОПЧБФШ У РПНПЭША НЕИБОЙЪНБ typedef ($$R.7.1.3), Б УЕНЕКУФЧП ФЙРПЧ Й ЖХОЛГЙК НПЦОП ЪБДБФШ Й РПЙНЕОПЧБФШ У РПНПЭША НЕИБОЙЪНБ ЫБВМПОБ ФЙРПЧ ($$R.14). R.3.7 бДТЕУБ мАВПК ПВЯЕЛФ - ЬФП ОЕЛПФПТБС ПВМБУФШ РБНСФЙ, БДТЕУ - ЧЩТБЦЕОЙЕ, УУЩМБАЭЕЕУС ОБ ПВЯЕЛФ ЙМЙ ЖХОЛГЙА. пЮЕЧЙДОЩН РТЙНЕТПН БДТЕУБ ВХДЕФ ЙНС ПВЯЕЛФБ. уХЭЕУФЧХАФ ПРЕТБГЙЙ, РПТПЦДБАЭЙЕ БДТЕУБ, ОБРТЙНЕТ, ЕУМЙ E ЧЩТБЦЕОЙЕ ФЙРБ ХЛБЪБФЕМШ, ФП *E - БДТЕУОПЕ ЧЩТБЦЕОЙЕ, УППФЧЕФУФЧХАЭЕЕ ПВЯЕЛФХ, ОБ ЛПФПТЩК ХЛБЪЩЧБЕФ E. фЕТНЙО "БДТЕУ" ("lvalue" Ф.Е. left value - МЕЧБС ЧЕМЙЮЙОБ) РПСЧМСЕФУС ЙЪ ПРЕТБФПТБ РТЙУЧБЙЧБОЙС E1 = E2, ЗДЕ МЕЧЩК ПРЕТБОД E1 ДПМЦЕО "БДТЕУПЧБФШ" ЙЪНЕОСЕНХА РЕТЕНЕООХА. рТЙ ПВУХЦДЕОЙЙ ЧУЕИ ПРЕТБГЙК Ч $$R.5 ХЛБЪЩЧБЕФУС РТЙНЕОЙНЩ МЙ ПОЙ Л БДТЕУОЩН ПРЕТБОДБН Й РПТПЦДБАФ МЙ ПОЙ УБНЙ БДТЕУБ. бДТЕУ НПЦЕФ ЙЪНЕОСФШУС, ЕУМЙ ПО ОЕ СЧМСЕФУС ЙНЕОЕН ЖХОЛГЙЙ, ЙНЕОЕН НБУУЙЧБ ЙМЙ const. R.4 уФБОДБТФОЩЕ РТЕПВТБЪПЧБОЙС оЕЛПФПТЩЕ ПРЕТБГЙЙ Ч ЪБЧЙУЙНПУФЙ ПФ УЧПЙИ ПРЕТБОДПЧ НПЗХФ ЧЩЪЧБФШ РТЕПВТБЪПЧБОЙЕ ЪОБЮЕОЙС ПРЕТБОДБ ПФ ПДОПЗП ФЙРБ Л ДТХЗПНХ. ъДЕУШ ПРЙУЩЧБАФУС РТЕПВТБЪПЧБОЙС, ЧЩЪЧБООЩЕ УБНЩНЙ ПВЩЮОЩНЙ ПРЕТБГЙСНЙ, Й ПВЯСУОСЕФУС ЛБЛПЧЩ НПЗХФ ВЩФШ ТЕЪХМШФБФЩ ФБЛЙИ РТЕПВТБЪПЧБОЙК. рП НЕТЕ ОБДПВОПУФЙ ВХДХФ ДБОЩ ДПРПМОЙФЕМШОЩЕ ПВЯСУОЕОЙС РТЙ ПВУХЦДЕОЙЙ ЛБЦДПК ПРЕТБГЙЙ. рПДПВОЩЕ РТЕПВТБЪПЧБОЙС ФБЛЦЕ РТПЙУИПДСФ РТЙ ЙОЙГЙБМЙЪБГЙЙ ($$R.8.4, $$R.8.4.3, $$R.12.8, $$R.12.1). ч $$R.12.3 Й $$R.13.2 ПРЙУЩЧБАФУС РТЕПВТБЪПЧБОЙС, ЪБДБООЩЕ РПМШЪПЧБФЕМЕН, Й ЙИ УППФОПЫЕОЙС УП УФБОДБТФОЩНЙ РТЕПВТБЪПЧБОЙСНЙ. ч ТЕЪХМШФБФЕ РТЕПВТБЪПЧБОЙС НПЦЕФ РПМХЮЙФШУС БДТЕУ, ФПМШЛП ЕУМЙ ТЕЪХМШФБФ ЕУФШ УУЩМЛБ ($$R.8.2.2). R.4.1 уФБОДБТФОЩЕ РТЕПВТБЪПЧБОЙС ДМС ГЕМПЮЙУМЕООЩИ чУАДХ, ЗДЕ ФТЕВХЕФУС ГЕМПЕ, НПЦОП ЙУРПМШЪПЧБФШ char, short int, ЬМЕНЕОФ РЕТЕЮЙУМЕОЙС ($$R.7.2) ЙМЙ ВЙФПЧПЕ РПМЕ ($$R.9.6), РТЙЮЕН Ч ЪОБЛПЧПН Й ВЕЪЪОБЛПЧПН ЧБТЙБОФБИ. еУМЙ int НПЦЕФ РТЕДУФБЧМСФШ ЧУЕ ЪОБЮЕОЙС ЙУИПДОПЗП ФЙРБ, ЪОБЮЕОЙЕ РТЕПВТБЪХЕФУС Л int, ЙОБЮЕ ПОП РТЕПВТБЪХЕФУС Л unsigned int. ьФП ОБЪЩЧБЕФУС УФБОДБТФОЩН РТЕПВТБЪПЧБОЙЕН ДМС ГЕМПЮЙУМЕООЩИ. R.4.2 рТЕПВТБЪПЧБОЙС ГЕМПЮЙУМЕООЩИ еУМЙ ГЕМПЕ РТЕПВТБЪХЕФУС Ч ВЕЪЪОБЛПЧЩК ФЙР, ФП РПМХЮЕООПЕ ЪОБЮЕОЙЕ ЕУФШ ОБЙНЕОШЫЕЕ ВЕЪЪОБЛПЧПЕ ГЕМПЕ, УПЧРБДБАЭЕЕ У ГЕМЩН УП ЪОБЛПН РП (mod 2**n), ЗДЕ n ЕУФШ ЮЙУМП ВЙФПЧ Ч РТЕДУФБЧМЕОЙЙ ВЕЪЪОБЛПЧПЗП ГЕМПЗП. дМС РТЕДУФБЧМЕОЙС Ч ДПРПМОЙФЕМШОПН ЛПДЕ ЬФП РТЕПВТБЪПЧБОЙЕ МЙЫШ ЛПОГЕРФХБМШОПЕ, ОЙЛБЛЙИ ЙЪНЕОЕОЙК Ч ДЧПЙЮОПН РТЕДУФБЧМЕОЙЙ Ч ДЕКУФЧЙФЕМШОПУФЙ ОЕ РТПЙУИПДЙФ.\ еУМЙ ГЕМПЕ РТЕПВТБЪХЕФУС Л ЪОБЛПЧПНХ ФЙРХ, ЪОБЮЕОЙЕ ОЕ НЕОСЕФУС, РТЙ ХУМПЧЙЙ, ЮФП ЕЗП НПЦОП РТЕДУФБЧЙФШ У РПНПЭША ОПЧПЗП ФЙРБ, ЙОБЮЕ ЪОБЮЕОЙЕ ПРТЕДЕМСЕФУС ТЕБМЙЪБГЙЕК. R.4.3 ъОБЮЕОЙС У РМБЧБАЭЕК ФПЮЛПК Й ДЧПКОПК ФПЮОПУФША дМС ЧЩТБЦЕОЙК ФЙРБ float НПЦЕФ ЙУРПМШЪПЧБФШУС БТЙЖНЕФЙЛБ У ПВЩЮОПК ФПЮОПУФША. еУМЙ ЪОБЮЕОЙЕ У РМБЧБАЭЕК ФПЮЛПК НЕОШЫЕК ФПЮОПУФЙ РТЕПВТБЪХЕФУС Ч ЪОБЮЕОЙЕ ФЙРБ float ТБЧОПК ЙМЙ ВПМШЫЕК ФПЮОПУФЙ, ФП ЙЪНЕОЕОЙС ЪОБЮЕОЙС ОЕ РТПЙУИПДЙФ. еУМЙ ЪОБЮЕОЙЕ У РМБЧБАЭЕК ФПЮЛПК ВПМШЫЕК ФПЮОПУФЙ РТЕПВТБЪХЕФУС Ч ЪОБЮЕОЙЕ ФЙРБ float НЕОШЫЕК ФПЮОПУФЙ Й ЪОБЮЕОЙЕ ОБИПДЙФУС Ч РТЕДЕМБИ, ЪБДБЧБЕНЩИ РТЕДУФБЧМЕОЙЕН ФЙРБ, ФП Ч ТЕЪХМШФБФЕ НПЦЕФ РПМХЮЙФШУС ЙМЙ ВМЙЦБКЫЕЕ ВПМШЫЕЕ ЙМЙ ВМЙЦБКЫЕЕ НЕОШЫЕЕ РТЕДУФБЧЙНПЕ ЪОБЮЕОЙЕ. еУМЙ ТЕЪХМШФБФ ПЛБЪБМУС ЧОЕ ЗТБОЙГ РТЕДУФБЧМЕОЙС ФЙРБ, РПЧЕДЕОЙЕ ОЕПРТЕДЕМЕОП. R.4.4 гЕМПЮЙУМЕООЩЕ Й ЮЙУМБ У РМБЧБАЭЕК ФПЮЛПК рТЕПВТБЪПЧБОЙЕ ЪОБЮЕОЙС У РМБЧБАЭЕК ФПЮЛПК Л ГЕМПЮЙУМЕООПНХ ФЙРХ УЧПДЙФУС Л "ХУЕЮЕОЙА", Ф.Е. ПФВТБУЩЧБОЙА ДТПВОПК ЮБУФЙ. фБЛЙЕ РТЕПВТБЪПЧБОЙС ЪБЧЙУСФ ПФ НБЫЙОЩ, Ч ЮБУФОПУФЙ Ч ЛБЛХА УФПТПОХ ВХДЕФ РТПИПДЙФШ ХУЕЮЕОЙЕ ДМС ПФТЙГБФЕМШОЩИ ЮЙУЕМ ПРТЕДЕМСЕФУС ОБ ТБЪОЩИ НБЫЙОБИ РП ТБЪОПНХ. тЕЪХМШФБФ УЮЙФБЕФУС ОЕПРТЕДЕМЕООЩН, ЕУМЙ ЪОБЮЕОЙЕ ОЕМШЪС РТЕДУФБЧЙФШ Ч ГЕМПЮЙУМЕООПН ФЙРЕ. рТЕПВТБЪПЧБОЙС ГЕМПЮЙУМЕООЩИ ЪОБЮЕОЙК Л ЪОБЮЕОЙСН У РМБЧБАЭЕК ФПЮЛПК НБФЕНБФЙЮЕУЛЙ ЛПТТЕЛФОЩ ОБУФПМШЛП, ОБУЛПМШЛП ЬФП РПЪЧПМСЕФ УЙУФЕНБ ЛПНБОД. нПЦЕФ РТПЙЪПКФЙ РПФЕТС ФПЮОПУФЙ, ЕУМЙ ГЕМПЮЙУМЕООПЕ ЪОБЮЕОЙЕ ОЕМШЪС ФПЮОП РТЕДУФБЧЙФШ ЛБЛ ЪОБЮЕОЙЕ У РМБЧБАЭЕК ФПЮЛПК. R.4.5 бТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС дМС ВПМШЫЙОУФЧБ ПРЕТБГЙК РТЕПВТБЪПЧБОЙС ПРЕТБОДПЧ Й ФЙР ТЕЪХМШФБФБ ПРТЕДЕМСАФУС ПДОЙНЙ Й Й ФЕНЙ ЦЕ РТБЧЙМБНЙ. ьФП РТБЧЙМП НПЦОП ОБЪЧБФШ "ПВЩЮОЩНЙ БТЙЖНЕФЙЮЕУЛЙНЙ РТЕПВТБЪПЧБОЙСНЙ". еУМЙ ПДЙО ЙЪ ПРЕТБОДПЧ ЕУФШ long double, ДТХЗПК ПРЕТБОД РТЕПВТБЪХЕФУС Ч long double. йОБЮЕ, ЕУМЙ ПДЙО ЙЪ ПРЕТБОДПЧ ЕУФШ double, ДТХЗПК ПРЕТБОД РТЕПВТБЪХЕФУС Ч double. йОБЮЕ, ЕУМЙ ПДЙО ЙЪ ПРЕТБОДПЧ ЕУФШ float, ДТХЗПК ПРЕТБОД РТЕПВТБЪХЕФУС Ч float. йОБЮЕ, ЕУМЙ УФБОДБТФОЩЕ ГЕМПЮЙУМЕООЩЕ РТЕПВТБЪПЧБОЙС ($$R.4.1) РТПЙУИПДСФ ОБД ПВПЙНЙ ПРЕТБОДБНЙ. фПЗДБ, ЕУМЙ ПДЙО ЙЪ ПРЕТБОДПЧ ЕУФШ unsigned long, ДТХЗПК ПРЕТБОД РТЕПВТБЪХЕФУС Ч unsigned long. йОБЮЕ, ЕУМЙ ПДЙО ЙЪ ПРЕТБОДПЧ ЕУФШ long int, Б ДТХЗПК - unsigned int, ФП РТЙ ХУМПЧЙЙ, ЮФП long int НПЦЕФ РТЕДУФБЧМСФШ ЧУЕ ЧПЪНПЦОЩЕ ЪОБЮЕОЙС unsigned int, ЪОБЮЕОЙЕ unsigned int РТЕПВТБЪХЕФУС Ч long int, Ч РТПФЙЧОПН УМХЮБЕ ПВБ ПРЕТБОДБ РТЕПВТБЪХАФУС Ч unsigned long int. йОБЮЕ, ЕУМЙ ПДЙО ЙЪ ПРЕТБОДПЧ ЕУФШ long, ДТХЗПК ПРЕТБОД РТЕПВТБЪХЕФУС Ч long. йОБЮЕ, ЕУМЙ ПДЙО ЙЪ ПРЕТБОДПЧ ЕУФШ unsigned, ДТХЗПК ПРЕТБОД РТЕПВТБЪХЕФУС Ч unsigned. йОБЮЕ, ПВБ ПРЕТБОДБ ДПМЦОЩ ВЩФШ int. R.4.6 рТЕПВТБЪПЧБОЙС ХЛБЪБФЕМЕК чУАДХ, ЗДЕ ХЛБЪБФЕМЙ ($$R.8.2.1) РТЙУЧБЙЧБАФУС, ЙОЙГЙБМЙЪЙТХАФУС, УТБЧОЙЧБАФУС ЙМЙ ЙУРПМШЪХАФУС ЙОЩН ПВТБЪПН, НПЗХФ РТПЙУИПДЙФШ УМЕДХАЭЙЕ РТЕПВТБЪПЧБОЙС: лПОУФБОФОПЕ ЧЩТБЦЕОЙЕ ($$R.5.19), ЛПФПТПЕ УЧПДЙФУС Л ОХМА, РТЕПВТБЪХЕФУС Ч ХЛБЪБФЕМШ, ПВЩЮОП ОБЪЩЧБЕНЩК РХУФЩН ХЛБЪБФЕМЕН. зБТБОФЙТХЕФУС, ЮФП ЪОБЮЕОЙЕ ФБЛПЗП ХЛБЪБФЕМС ВХДЕФ ПФМЙЮОП ПФ МАВПЗП ХЛБЪБФЕМС ОБ ПВЯЕЛФ ЙМЙ ЖХОЛГЙА. хЛБЪБФЕМШ ОБ ПВЯЕЛФ МАВПЗП ФЙРБ, ОЕ СЧМСАЭЕЗПУС const ЙМЙ volatile, НПЦОП РТЕПВТБЪПЧБФШ Ч void*. хЛБЪБФЕМШ ОБ ЖХОЛГЙА НПЦОП РТЕПВТБЪПЧБФШ Ч void*, РТЙ ХУМПЧЙЙ, ЮФП ДМС void* ПФЧПДЙФУС ДПУФБФПЮОП РБНСФЙ, ЮФПВЩ ИТБОЙФШ ЬФПФ ХЛБЪБФЕМШ. хЛБЪБФЕМШ ОБ ДБООЩК ЛМБУУ НПЦОП РТЕПВТБЪПЧБФШ Ч ХЛБЪБФЕМШ ОБ ДПУФХРОЩК ВБЪПЧЩК ЛМБУУ ДБООПЗП ЛМБУУБ ($$R.10), ЕУМЙ ФБЛПЕ РТЕПВТБЪПЧБОЙЕ ОЕ УПДЕТЦЙФ ДЧХУНЩУМЕООПУФШ ($$R.10.1). вБЪПЧЩК ЛМБУУ УЮЙФБЕФУС ДПУФХРОЩН, ЕУМЙ ДПУФХРОЩ ЕЗП ПВЭЙЕ ЮМЕОЩ ($$R.11.1). тЕЪХМШФБФПН РТЕПВТБЪПЧБОЙС ВХДЕФ ХЛБЪБФЕМШ ОБ ПВЯЕЛФ ФЙРБ ВБЪПЧПЗП ЛМБУУБ, ЧМПЦЕООЩК Ч ПВЯЕЛФ ФЙРБ РТПЙЪЧПДОПЗП ЛМБУУБ. рХУФПК ХЛБЪБФЕМШ (0) РТЕПВТБЪХЕФУС УБН Ч УЕВС. чЩТБЦЕОЙЕ ФЙРБ "НБУУЙЧ T" НПЦЕФ РТЕПВТБЪПЧЩЧБФШУС Ч ХЛБЪБФЕМШ ОБ ОБЮБМШОЩК ЬМЕНЕОФ НБУУЙЧБ. чЩТБЦЕОЙЕ ФЙРБ "ЖХОЛГЙС, ЧПЪЧТБЭБАЭБС T" РТЕПВТБЪХЕФУС Ч "ХЛБЪБФЕМШ ОБ ЖХОЛГЙА, ЧПЪЧТБЭБАЭХА T", ЪБ ЙУЛМАЮЕОЙЕН ФЕИ УМХЮБЕЧ, ЛПЗДБ ПОП ЙУРПМШЪХЕФУС ЛБЛ ПРЕТБОД БДТЕУОПК ПРЕТБГЙЙ & ЙМЙ ПРЕТБГЙЙ ЧЩЪПЧБ ЖХОЛГЙЙ (). R.4.7 рТЕПВТБЪПЧБОЙС УУЩМПЛ чУАДХ, ЗДЕ УУЩМЛЙ ($$R.8.2.2) ЙОЙГЙБМЙЪЙТХАФУС (ЧЛМАЮБС РЕТЕДБЮХ РБТБНЕФТПЧ ($$R.5.2.2) Й ЧПЪЧТБФ ЪОБЮЕОЙС ЖХОЛГЙЙ ($$R.6.6.3)) ЙМЙ ЙУРПМШЪХАФУС ЙОЩН ПВТБЪПН, ЧПЪНПЦОЩ УМЕДХАЭЙЕ РТЕПВТБЪПЧБОЙС: уУЩМЛБ ОБ ДБООЩК ЛМБУУ НПЦЕФ ВЩФШ РТЕПВТБЪПЧБОБ Ч УУЩМЛХ ОБ ДПУФХРОЩК ВБЪПЧЩК ЛМБУУ ($$R.10, $$R.11.1) ДБООПЗП ЛМБУУБ ($$R.8.4.3), РТЙ ХУМПЧЙЙ, ЮФП ФБЛПЕ РТЕПВТБЪПЧБОЙЕ ОЕ УПДЕТЦЙФ ДЧХУНЩУМЕООПУФЙ ($$R.10.1.1). тЕЪХМШФБФПН РТЕПВТБЪПЧБОЙС ВХДЕФ УУЩМЛБ ОБ ПВЯЕЛФ ВБЪПЧПЗП ЛМБУУБ, ЧМПЦЕООЩК Ч ПВЯЕЛФ РТПЙЪЧПДОПЗП ЛМБУУБ. R.4.8 хЛБЪБФЕМЙ ОБ ЮМЕОЩ чУАДХ, ЗДЕ ХЛБЪБФЕМЙ ОБ ЮМЕОЩ ($$R.8.2.3) ЙОЙГЙБМЙЪЙТХАФУС, РТЙУЧБЙЧБАФУС, УТБЧОЙЧБАФУС ЙМЙ ЙУРПМШЪХАФУС ЙОЩН ПВТБЪПН, НПЗХФ РТПЙУИПДЙФШ УМЕДХАЭЙЕ РТЕПВТБЪПЧБОЙС: лПОУФБОФОПЕ ЧЩТБЦЕОЙЕ ($$R.5.19), ЛПФПТПЕ УЧПДЙФУС Л ОХМА, РТЕПВТБЪХЕФУС Ч ХЛБЪБФЕМШ ОБ ЮМЕО. зБТБОФЙТХЕФУС, ЮФП ЕЗП ЪОБЮЕОЙЕ ВХДЕФ ПФМЙЮОП ПФ МАВЩИ ДТХЗЙИ ХЛБЪБФЕМЕК ОБ ЮМЕОЩ. хЛБЪБФЕМШ ОБ ЮМЕО ДБООПЗП ЛМБУУБ НПЦОП РТЕПВТБЪПЧБФШ Ч ХЛБЪБФЕМШ ОБ ЮМЕО РТПЙЪЧПДОПЗП ПФ ДБООПЗП ЛМБУУБ, РТЙ ХУМПЧЙЙ, ЮФП ДПРХУФЙНП ПВТБФОПЕ РТЕПВТБЪПЧБОЙЕ ПФ ХЛБЪБФЕМС ОБ ЮМЕО РТПЙЪЧПДОПЗП ЛМБУУБ Ч ХЛБЪБФЕМШ ЮМЕО ВБЪПЧПЗП ЛМБУУБ, Й ЮФП ПОП ЧЩРПМОЙНП ПДОПЪОБЮОЩН ПВТБЪПН ($$R.10.1.1). рТБЧЙМП РТЕПВТБЪПЧБОЙС ХЛБЪБФЕМЕК ОБ ЮМЕОЩ (Ф.Е. ПФ ХЛБЪБФЕМС ОБ ЮМЕО ВБЪПЧПЗП ЛМБУУБ Л ХЛБЪБФЕМА ОБ ЮМЕО РТПЙЪЧПДОПЗП ЛМБУУБ) ЧЩЗМСДЙФ РЕТЕЧЕТОХФЩН, ЕУМЙ УТБЧОЙЧБФШ ЕЗП У РТБЧЙМПН ДМС ХЛБЪБФЕМЕК ОБ ПВЯЕЛФЩ (Ф.Е. ПФ ХЛБЪБФЕМС ОБ РТПЙЪЧПДОЩК ПВЯЕЛФ Л ХЛБЪБФЕМА ОБ ВБЪПЧЩК ПВЯЕЛФ) ($$R.4.6, $$R.10). ьФП ОЕПВИПДЙНП ДМС ЗБТБОФЙЙ ОБДЕЦОПУФЙ ФЙРПЧ. пФНЕФЙН, ЮФП ХЛБЪБФЕМШ ОБ ЮМЕО ОЕ СЧМСЕФУС ХЛБЪБФЕМЕН ОБ ПВЯЕЛФ ЙМЙ ХЛБЪБФЕМЕН ОБ ЖХОЛГЙА Й РТБЧЙМБ РТЕПВТБЪПЧБОЙК ФБЛЙИ ХЛБЪБФЕМЕК ОЕ РТЙНЕОЙНЩ ДМС ХЛБЪБФЕМЕК ОБ ЮМЕОЩ. ч ЮБУФОПУФЙ ХЛБЪБФЕМШ ОБ ЮМЕО ОЕМШЪС РТЕПВТБЪПЧБФШ Ч void*. R.5 чЩТБЦЕОЙС ъДЕУШ ПРТЕДЕМСАФУС УЙОФБЛУЙУ, РПТСДПЛ ЧЩЮЙУМЕОЙС Й ОБЪОБЮЕОЙЕ ЧЩТБЦЕОЙК. чЩТБЦЕОЙЕ - ЬФП РПУМЕДПЧБФЕМШОПУФШ ПРЕТБГЙК Й ПРЕТБОДПЧ, ЛПФПТБС ЪБДБЕФ ЧЩЮЙУМЕОЙЕ. чЩЮЙУМЕОЙЕ НПЦЕФ ЧЩДБЧБФШ Ч ЛБЮЕУФЧЕ ТЕЪХМШФБФБ ЪОБЮЕОЙЕ Й НПЦЕФ ЧЩЪЩЧБФШ РПВПЮОЩЕ ЬЖЖЕЛФЩ. пРЕТБГЙЙ НПЗХФ ВЩФШ РЕТЕЗТХЦЕОЩ, Ф.Е. ЙН НПЦЕФ ВЩФШ РТЙРЙУБОП ЪОБЮЕОЙЕ, ЛПЗДБ ПОЙ РТЙНЕОСАФУС Л ЧЩТБЦЕОЙСН ФЙРБ ЛМБУУ ($$R.9). рТЙНЕОЕОЙЕ РЕТЕЗТХЦЕООЩИ ПРЕТБГЙК РТЕПВТБЪХЕФУС Ч ЧЩЪПЧЩ ЖХОЛГЙК Ч УППФЧЕФУФЧЙЙ У ПРЙУБОЙЕН Ч $$R.13.4. рЕТЕЗТХЦЕООЩЕ ПРЕТБГЙЙ РПДЮЙОСАФУС УЙОФБЛУЙЮЕУЛЙН РТБЧЙМБН, ПРТЕДЕМЕООЩН Ч ЬФПН ТБЪДЕМЕ, ОП ФТЕВПЧБОЙС Л ФЙРХ ПРЕТБОДБ, БДТЕУХ Й РПТСДЛХ ЧЩЮЙУМЕОЙС ЪБНЕОСАФУС ОБ РТБЧЙМБ ЧЩЪПЧБ ЖХОЛГЙЙ. уППФОПЫЕОЙС НЕЦДХ ПРЕТБГЙСНЙ, ФЙРБ ++a ПЪОБЮБЕФ a+=1, ОЕ ЗБТБОФЙТХАФУС ДМС РЕТЕЗТХЦЕООЩИ ПРЕТБГЙК ($$R.13.4). ч ЬФПН ТБЪДЕМЕ ПРЙУБОП РТЙНЕОЕОЙЕ ПРЕТБГЙК Л ФЙРБН, ДМС ЛПФПТЩИ ПОЙ ОЕ СЧМСАФУС РЕТЕЗТХЦЕООЩНЙ. рЕТЕЗТХЪЛБ ПРЕТБГЙК ОЕ НПЦЕФ ЙЪНЕОЙФШ РТБЧЙМБ РТЙНЕОЕОЙС ПРЕТБГЙК Л ФЙРБН, ДМС ЛПФПТЩИ ФБЛПЕ РТЙНЕОЕОЙЕ РТЕДХУНПФТЕОП Ч УБНПН СЪЩЛЕ. рПТСДПЛ ЧЩЮЙУМЕОЙС РПДЧЩТБЦЕОЙК ПРТЕДЕМСЕФУС РТЙПТЙФЕФПН Й РПТСДЛПН РТЙНЕОЕОЙС ПРЕТБГЙК. пВЩЮОЩЕ НБФЕНБФЙЮЕУЛЙЕ РТБЧЙМБ БУУПГЙБФЙЧОПУФЙ Й ЛПННХФБФЙЧОПУФЙ ПРЕТБГЙК ДЕКУФЧХАФ ФПМШЛП, ЕУМЙ ПРЕТБГЙЙ ДЕКУФЧЙФЕМШОП БУУПГЙБФЙЧОЩ ЙМЙ ЛПННХФБФЙЧОЩ. ъБ ЙУЛМАЮЕОЙЕН ПЗПЧПТЕООЩИ УМХЮБЕЧ РПТСДПЛ ЧЩЮЙУМЕОЙС ПРЕТБОДПЧ ЛПОЛТЕФОПК ПРЕТБГЙЙ ОЕПРТЕДЕМЕО. ч ЮБУФОПУФЙ, ЕУМЙ Ч ЧЩТБЦЕОЙЙ ЪОБЮЕОЙЕ ЙЪНЕОСЕФУС ДЧБЦДЩ, ТЕЪХМШФБФ ЧЩТБЦЕОЙС ОЕПРТЕДЕМЕО, ЕУМЙ ФПМШЛП РПТСДПЛ ЧЩРПМОЕОЙС ОЕ ПВЕУРЕЮЙЧБЕФУС УБНЙНЙ ПРЕТБГЙСНЙ, ОБРТЙНЕТ: i = v[i++]; // the value of `i' is undefined i=7,i++,i++; // `i' becomes 9 тЕБЛГЙС ОБ РЕТЕРПМОЕОЙЕ Й ДЕМЕОЙЕ ОБ ОХМШ РТЙ ЧЩЮЙУМЕОЙЙ ЧЩТБЦЕОЙС ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ. ч ВПМШЫЙОУФЧЕ УХЭЕУФЧХАЭЙИ ТЕБМЙЪБГЙК у++ ЙЗОПТЙТХЕФУС РЕТЕРПМОЕОЙЕ ГЕМЩИ. тЕБЛГЙС ОБ ДЕМЕОЙЕ ОБ ОХМШ Й ПЫЙВЛЙ ПРЕТБГЙК ОБД ЮЙУМБНЙ У РМБЧБАЭЕК ФПЮЛПК ЧБТШЙТХЕФУС ПФ НБЫЙОЩ Л НБЫЙОЕ Й ПВЩЮОП УЧСЪБОБ У УППФЧЕФУФЧХАЭЙНЙ ВЙВМЙПФЕЮОЩНЙ ЖХОЛГЙСНЙ. лТПНЕ ПЗПЧПТЕООЩИ УМХЮБЕЧ, ПРЕТБОДЩ ФЙРБ const T, volatile T, T&, const T& Й volatile T& НПЦОП ЙУРПМШЪПЧБФШ, ЛБЛ ЕУМЙ ВЩ ПОЙ ЙНЕМЙ ФЙР РТПУФП T. бОБМПЗЙЮОП, ПРЕТБОДЩ ФЙРБ T* const, T*volatile НПЦОП ЙУРПМШЪПЧБФШ, ЛБЛ ЕУМЙ ВЩ ПОЙ ЙНЕМЙ ФЙР РТПУФП T*, ЪБ ЙУЛМАЮЕОЙЕН ПЗПЧПТЕООЩИ УМХЮБЕЧ. бОБМПЗЙЮОП, РТПУФП ФЙР T НПЦОП ЙУРПМШЪПЧБФШ ЧУАДХ, ЗДЕ ФТЕВХЕФУС ФЙР volatile T ЙМЙ const T. ьФЙ РТБЧЙМБ НПЦЕФ РТЙНЕОСФШ Ч ЛПНВЙОБГЙЙ, ФБЛ ЮФП const T* volatile НПЦОП ЙУРПМШЪПЧБФШ ФБН, ЗДЕ ФТЕВХЕФУС T*, ЪБ ЙУЛМАЮЕОЙЕН ПЗПЧПТЕООЩИ УМХЮБЕЧ. рТЙ ТБУУНПФТЕОЙЙ ТБЪТЕЫЕОЙС РЕТЕЗТХЪЛЙ ($$R.13.2) ФБЛПЕ ЙУРПМШЪПЧБОЙЕ ПРЕТБГЙК ОЕ УЮЙФБЕФУС УФБОДБТФОЩН РТЕПВТБЪПЧБОЙЕН ПРЕТБОДПЧ. еУМЙ ЧЩТБЦЕОЙЕ ЙНЕЕФ ФЙР "УУЩМЛБ ОБ T" ($$R.8.2.2, $$R.8.4.3), ЪОБЮЕОЙЕ ЧЩТБЦЕОЙЕ ЕУФШ ПВЯЕЛФ ФЙРБ "T", ОБ ЛПФПТЩК ОБУФТПЕОБ УУЩМЛБ. чЩТБЦЕОЙЕ СЧМСЕФУС БДТЕУПН. уУЩМЛХ НПЦОП РТЕДУФБЧМСФШ ЛБЛ ЙНС ПВЯЕЛФБ. дПРХУФЙНЩ ПРТЕДЕМЕООЩЕ РПМШЪПЧБФЕМЕН РТЕПВТБЪПЧБОЙС ПВЯЕЛФПЧ ЛМБУУБ Ч (Й ПВТБФОП) ПУОПЧОЩЕ ФЙРЩ, ХЛБЪБФЕМЙ Й Ф.Д. ($$R.12.3) еУМЙ ПОЙ ОЕДЧХУНЩУМЕООЩ ($$R.13.2), ФБЛЙЕ РТЕПВТБЪПЧБОЙС НПЗХФ РТЙНЕОСФШУС ФТБОУМСФПТПН ЧУЕЗДБ, ЛПЗДБ РПСЧМСЕФУС ПВЯЕЛФ ФЙРБ ЛМБУУБ Ч ЛБЮЕУФЧЕ ПРЕТБОДБ ПРЕТБГЙЙ, Ч ЛБЮЕУФЧЕ ЙОЙГЙБМЙЪЙТХАЭЕЗП ЧЩТБЦЕОЙС ($$R.8.4), Ч ЛБЮЕУФЧЕ ЧЩТБЦЕОЙС, ЪБДБАЭЕЗП ХУМПЧЙЕ ($$R.6.4), ЙМЙ Ч ЛБЮЕУФЧЕ ЧЩТБЦЕОЙС, ЙУРПМШЪХЕНПЗП Ч ПРЕТБФПТЕ ГЙЛМБ ($$R.6.5), ЙМЙ Ч ЛБЮЕУФЧЕ ЪОБЮЕОЙС, ЧПЪЧТБЭБЕНПЗП ЖХОЛГЙЕК ($$R.6.6.3), ЙМЙ Ч ЛБЮЕУФЧЕ РБТБНЕФТБ ЖХОЛГЙЙ ($$R.5.2.2). R.5.1 рЕТЧЙЮОЩЕ ЧЩТБЦЕОЙС рЕТЧЙЮОЩНЙ ЧЩТБЦЕОЙСНЙ СЧМСАФУС МЙФЕТБМЩ, ЙНЕОБ Й ЙНЕОБ, ПРТЕДЕМЕООЩЕ У РПНПЭША ПРЕТБГЙЙ ТБЪТЕЫЕОЙС ПВМБУФЙ ЧЙДЙНПУФЙ ::. РЕТЧЙЮОПЕ-ЧЩТБЦЕОЙЕ: МЙФЕТБМ this :: ЙДЕОФЙЖЙЛБФПТ :: ЙНС-ЖХОЛГЙЙ-ПРЕТБГЙЙ :: ХФПЮОЕООПЕ-ЙНС ( ЧЩТБЦЕОЙЕ ) ЙНС мЙФЕТБМ СЧМСЕФУС РЕТЧЙЮОЩН ЧЩТБЦЕОЙЕН. еЗП ФЙР ПРТЕДЕМСЕФУС ЕЗП ЧЙДПН ($$R.2.5). ч ФЕМЕ ОЕУФБФЙЮЕУЛПК ЖХОЛГЙЙ-ЮМЕОЕ ($$R.9.3) УМХЦЕВОПЕ УМПЧП this ПВПЪОБЮБЕФ ХЛБЪБФЕМШ ОБ ПВЯЕЛФ, Л ЛПФПТПНХ ПФОПУЙФУС ЧЩЪПЧ ЖХОЛГЙЙ. уМХЦЕВОПЕ УМПЧП this ОЕМШЪС ЙУРПМШЪПЧБФШ ЧОЕ ФЕМБ ЖХОЛГЙЙ-ЮМЕОБ ЛМБУУБ. пРЕТБГЙС :: , ЪБ ЛПФПТПК УМЕДХЕФ ЙДЕОФЙЖЙЛБФПТ ЙМЙ ЙНС-ПРЕТБГЙЙ-ЖХОЛГЙЙ ЙМЙ ХФПЮОЕООПЕ-ЙНС СЧМСАФУС РЕТЧЙЮОЩН ЧЩТБЦЕОЙЕН. еЗП ФЙР ЪБДБЕФУС ПРЙУБОЙЕН ЙДЕОФЙЖЙЛБФПТБ, ЙНЕОЙ ЙМЙ ЙНЕОЙ-ЖХОЛГЙЙ-ПРЕТБГЙЙ. тЕЪХМШФБФПН СЧМСЕФУС ЙДЕОФЙЖЙЛБФПТ, ЙНС ЙМЙ ЙНС-ЖХОЛГЙЙ-ПРЕТБГЙЙ. тЕЪХМШФБФ СЧМСЕФУС БДТЕУПН, ЕУМЙ ЙДЕОФЙЖЙЛБФПТ СЧМСЕФУС БДТЕУПН. йДЕОФЙЖЙЛБФПТ ЙМЙ ЙНС-ЖХОЛГЙЙ-ПРЕТБГЙЙ ДПМЦОЩ ЙНЕФШ ЖБКМПЧХА ПВМБУФШ ЧЙДЙНПУФЙ. у РПНПЭША ПРЕТБГЙЙ :: НПЦОП ПВТБЭБФШУС Л ФЙРХ, ПВЯЕЛФХ, ЖХОЛГЙЙ ЙМЙ ЬМЕНЕОФХ РЕТЕЮЙУМЕОЙС, ДБЦЕ ЕУМЙ ПВПЪОБЮБАЭЙК ЙИ ЙДЕОФЙЖЙЛБФПТ СЧМСЕФУС УЛТЩФЩН ($$R.3.2). чЩТБЦЕОЙЕ Ч УЛПВЛБИ СЧМСЕФУС РЕТЧЙЮОЩН ЧЩТБЦЕОЙЕН, ФЙР Й ЪОБЮЕОЙЕ ЛПФПТПЗП ЙДЕОФЙЮОЩ ЙН ЦЕ Х ЧЩТБЦЕОЙС ВЕЪ УЛПВПЛ. оБМЙЮЙЕ УЛПВПЛ ОЕ ЧМЙСЕФ ОБ ФП, СЧМСЕФУС ЧЩТБЦЕОЙЕ БДТЕУПН ЙМЙ ОЕФ. рПОСФЙЕ ЙНС - ЬФП ПРТЕДЕМЕООПЕ РЕТЧЙЮОПЕ-ЧЩТБЦЕОЙЕ, ЛПФПТПЕ НПЦЕФ РПСЧМСФШУС ФПМШЛП РПУМЕ . Й -> ($$R.5.2.4): ЙНС: ЙДЕОФЙЖЙЛБФПТ ЙНС-ЖХОЛГЙЙ-ПРЕТБГЙЙ ЙНС-ЖХОЛГЙЙ-РТЕПВТБЪПЧБОЙС ~ЙНС-ЛМБУУБ ХФПЮОЕООПЕ-ЙНС йДЕОФЙЖЙЛБФПТ ЕУФШ ЙНС, РТЙ ХУМПЧЙЙ ЮФП ПО ПРЙУБО ОБДМЕЦБЭЙН ПВТБЪПН ($$R.7). рПОСФЙЕ ЙНС-ЖХОЛГЙЙ-ПРЕТБГЙЙ ПРЙУБОП Ч ($$R.13.4), Б РПОСФЙЕ ЙНС-ЖХОЛГЙЙ-РТЕПВТБЪПЧБОЙС Ч ($$R.12.3.2). лПОУФТХЛГЙС ~ЙНС-ЛМБУУБ ПВПЪОБЮБЕФ ДЕУФТХЛФПТ ($$R.12.4). ХФПЮОЕООПЕ-ЙНС: ХФПЮОСАЭЕЕ-ЙНС-ЛМБУУБ :: ЙНС рПОСФЙЕ ХФПЮОСАЭЕЕ-ЙНС-ЛМБУУБ, ЪБ ЛПФПТЩН УМЕДХЕФ :: Й ЙНС ЮМЕОБ ЬФПЗП ЛМБУУБ ($$R.9.2), ЙМЙ ЮМЕОБ ВБЪПЧПЗП РП ПФОПЫЕОЙА Л ДБООПНХ ЛМБУУБ ($$R.10) СЧМСЕФУС ХФПЮОЕООПЕ-ЙНС. еЗП ФЙР ЕУФШ ФЙР ЮМЕОБ, Б ТЕЪХМШФБФ ЧЩТБЦЕОЙС ЕУФШ ЬФПФ ЮМЕО. тЕЪХМШФБФ СЧМСЕФУС БДТЕУПН, ЕУМЙ ФБЛПЧЩН СЧМСЕФУС ЮМЕО. йНС ЛМБУУБ НПЦЕФ ВЩФШ УЛТЩФП ДТХЗЙН ЙНЕОЕН (ОЕ ФЙРБ), Ч ФБЛПН УМХЮБЕ ЧУЕ ТБЧОП ЙНС ЛМБУУБ ДПУФХРОП Й ЕЗП НПЦОП ЙУРПМШЪПЧБФШ. еУМЙ ЙУРПМШЪХЕФУС ЙНС-ЛМБУУБ::ЙНС-ЛМБУУБ ЙМЙ ЙНС-ЛМБУУБ::~ЙНС-ЛМБУУБ, ПВБ РПОСФЙС ЙНС-ЛМБУУБ ДПМЦОЩ ПВПЪОБЮБФШ ПДЙО Й ФПФ ЦЕ ЛМБУУ. у РПНПЭША ФБЛПК ЪБРЙУЙ ПВПЪОБЮБАФУС ЛПОУФТХЛФПТЩ ($$R.12.1) Й ДЕУФТХЛФПТЩ ($$R.12.4) УППФЧЕФУФЧЕООП. нПЦОП ЙУРПМШЪПЧБФШ ХФПЮОСАЭЙЕ ЙНЕОБ ОЕПДОПЛТБФОП, ОБРТЙНЕТ, N1::N2::N3::n, ЮФПВЩ ПВПЪОБЮБФШ ЧМПЦЕООЩЕ ФЙРЩ ($$R.9.7). R.5.2 рПУФЖЙЛУОЩЕ ЧЩТБЦЕОЙС рПУФЖЙЛУОЩЕ ЧЩТБЦЕОЙС РТЙНЕОСАФУС УМЕЧБ ОБРТБЧП. РПУФЖЙЛУОПЕ-ЧЩТБЦЕОЙЕ: РЕТЧЙЮОПЕ-ЧЩТБЦЕОЙЕ РПУФЖЙЛУОПЕ-ЧЩТБЦЕОЙЕ [ ЧЩТБЦЕОЙЕ ] РПУФЖЙЛУОПЕ-ЧЩТБЦЕОЙЕ ( УРЙУПЛ-ЧЩТБЦЕОЙК opt ) ЙНС-РТПУФПЗП-ФЙРБ ( УРЙУПЛ-ЧЩТБЦЕОЙК opt ) РПУФЖЙЛУОПЕ-ЧЩТБЦЕОЙЕ . ЙНС РПУФЖЙЛУОПЕ-ЧЩТБЦЕОЙЕ -> ЙНС РПУФЖЙЛУОПЕ-ЧЩТБЦЕОЙЕ ++ РПУФЖЙЛУОПЕ-ЧЩТБЦЕОЙЕ -- УРЙУПЛ-ЧЩТБЦЕОЙК: ЧЩТБЦЕОЙЕ-РТЙУЧБЙЧБОЙС УРЙУПЛ-ЧЩТБЦЕОЙК , ЧЩТБЦЕОЙЕ-РТЙУЧБЙЧБОЙС R.5.2.1 йОДЕЛУБГЙС рПУФЖЙЛУОПЕ ЧЩТБЦЕОЙЕ, ЪБ ЛПФПТЩН УМЕДХЕФ ЧЩТБЦЕОЙЕ Ч ЛЧБДТБФОЩИ УЛПВЛБИ, СЧМСЕФУС РПУФЖЙЛУОЩН ЧЩТБЦЕОЙЕН. йОФХЙФЙЧОЩК УНЩУМ ЕЗП ЙОДЕЛУЙТПЧБОЙЕ. рЕТЧПЕ ЙЪ ЧЩТБЦЕОЙК ДПМЦОП ЙНЕФШ ФЙР "ХЛБЪБФЕМШ ОБ T", Б ЧФПТПЕ ВЩФШ ГЕМПЮЙУМЕООПЗП ФЙРБ. фЙР ТЕЪХМШФБФБ ЕУФШ "T". чЩТБЦЕОЙЕ E1[E2] УПЧРБДБЕФ (РП ПРТЕДЕМЕОЙА) У ЧЩТБЦЕОЙЕН *((E1) + (E2)). рПДТПВОПУФЙ ПРЕТБГЙК * Й + ДБОЩ Ч $$R.5.3 Й $$R.5.7, Б НБУУЙЧЩ ПВУХЦДБАФУС Ч $$R.8.2.4. R.5.2.2 чЩЪПЧ ЖХОЛГЙЙ чЩЪПЧ ЖХОЛГЙЙ СЧМСЕФУС РПУФЖЙЛУОЩН ЧЩТБЦЕОЙЕН, ЪБ ЛПФПТЩН УМЕДХЕФ, ЧПЪНПЦОП РХУФПК, УРЙУПЛ ЧЩТБЦЕОЙК Ч УЛПВЛБИ, ТБЪДЕМЕООЩИ ЪБРСФПК. ьФЙ ЧЩТБЦЕОЙС ПВТБЪХАФ ЖБЛФЙЮЕУЛЙЕ РБТБНЕФТЩ ЖХОЛГЙЙ. рПУФЖЙЛУОПЕ ЧЩТБЦЕОЙЕ ДПМЦОП ЙНЕФШ ФЙР "ЖХОЛГЙС, ЧПЪЧТБЭБАЭБС T", "ХЛБЪБФЕМШ ОБ ЖХОЛГЙА, ЧПЪЧТБЭБАЭХА T" ЙМЙ "УУЩМЛБ ОБ ЖХОЛГЙА, ЧПЪЧТБЭБАЭХА T", Б ТЕЪХМШФБФ ПРЕТБГЙЙ ЧЩЪПЧБ ЙНЕЕФ ФЙР "T". рТЙ ЧЩЪПЧЕ ЖХОЛГЙЙ РТПЙУИПДЙФ ЙОЙГЙБМЙЪБГЙС ЛБЦДПЗП ЖПТНБМШОПЗП РБТБНЕФТБ ($$R.8.4.3, $$R.12.8, $$r.12.1) ЖБЛФЙЮЕУЛЙН РБТБНЕФТПН. рТПЙЪЧПДСФУС УФБОДБТФОЩЕ ($$R.4) Й ЪБДБООЩЕ РПМШЪПЧБФЕМЕН ($$R.12.3) РТЕПВТБЪПЧБОЙС ФЙРБ. ч ЖХОЛГЙЙ НПЦЕФ ЙЪНЕОСФШУС ЪОБЮЕОЙС ОЕРПУФПСООЩИ ЖПТНБМШОЩИ РБТБНЕФТПЧ, ОП ЬФЙ ЙЪНЕОЕОЙС ОЕ НПЗХФ РПЧМЙСФШ ОБ ЪОБЮЕОЙС ЖБЛФЙЮЕУЛЙИ РБТБНЕФТПЧ, ЛТПНЕ ФПЗП УМХЮБС, ЛПЗДБ ЖПТНБМШОЩК РБТБНЕФТ ЙНЕЕФ ФЙР УУЩМЛЙ ВЕЪ УРЕГЙЖЙЛБГЙЙ const ($$R.8.2.2). еУМЙ ЖПТНБМШОЩК РБТБНЕФТ ЙНЕЕФ ФЙР УУЩМЛЙ РТЙ ОЕПВИПДЙНПУФЙ НПЦЕФ УПЪДБЧБФШУС ЧТЕНЕООБС РЕТЕНЕООБС ($$R.7.1.6, $$R.2.5,$$R.2.5.4,$$R.8.2.4, $$R.12.2). дПВБЧЙН, ЮФП ЧПЪНПЦОП ЙЪНЕОЕОЙЕ ОЕРПУФПСООЩИ ПВЯЕЛФПЧ У РПНПЭША РБТБНЕФТПЧ-ХЛБЪБФЕМЕК. жХОЛГЙА НПЦОП ПРЙУБФШ ФБЛЙН ПВТБЪПН, ЮФП ПОБ УНПЦЕФ ЙУРПМШЪПЧБФШ НЕОШЫЕЕ ЮЙУМП РБТБНЕФТПЧ (ПРТЕДЕМЙЧ РБТБНЕФТЩ РП ХНПМЮБОЙА $$R.8.2.6) ЙМЙ ВПМШЫЕЕ ЮЙУМП РБТБНЕФТПЧ (У РПНПЭША ЬММЙРУЙУБ ... $$R.8.2.5), ЮЕН ВЩМП ХЛБЪБОП РТЙ ПРТЕДЕМЕОЙЙ ЖХОЛГЙЙ ($$R.8.3). жХОЛГЙА НПЦОП ЧЩЪЧБФШ ФПМШЛП, ЕУМЙ ПРЙУБОЙЕ ЕЕ ДПУФХРОП Ч ФПК ПВМБУФЙ ЧЙДЙНПУФЙ, ЗДЕ РТПЙУИПДЙФ ЧЩЪПЧ. пФУАДБ УМЕДХЕФ, ЧУСЛЙК ЖПТНБМШОЩК РБТБНЕФТ, УППФЧЕФУФЧХАЭЙК ОЕЛПФПТПНХ ЖБЛФЙЮЕУЛПНХ РБТБНЕФТХ, ДПМЦЕО ВЩФШ ДПУФХРЕО, ЕУМЙ ОЕ УЮЙФБФШ ЬММЙРУЙУ (...). рЕТЕД ЧЩЪПЧПН ЧУСЛЙК ЖБЛФЙЮЕУЛЙК РБТБНЕФТ ФЙРБ float, ДМС ЛПФПТПЗП ОЕФ ЖПТНБМШОПЗП РБТБНЕФТБ, РТЕПВТБЪХЕФУС Л ФЙРХ double, Б ФЙРБ char, short, РЕТЕЮЙУМЕОЙС ЙМЙ ВЙФПЧПЕ РПМЕ, ДМС ЛПФПТПЗП ОЕФ ЖПТНБМШОПЗП РБТБНЕФТБ, РТЕПВТБЪХЕФУС Л ФЙРХ int ЙМЙ unsigned УПЗМБУОП УФБОДБТФОЩН РТЕПВТБЪПЧБОЙСН ГЕМПЮЙУМЕООЩИ ($$R.4.1). пВЯЕЛФ, СЧМСАЭЙКУС ЛМБУУПН Й ОЕ ЙНЕАЭЙК ПРЙУБОЙС ЖПТНБМШОПЗП РБТБНЕФТБ, РЕТЕДБЕФУС РТЙ ЧЩЪПЧЕ ЛБЛ УФТХЛФХТБ ДБООЩИ. пВЯЕЛФ, СЧМСАЭЙКУС ЛМБУУПН Й ЙНЕАЭЙК ПРЙУБОЙЕ ЖПТНБМШОПЗП РБТБНЕФТБ РЕТЕДБЕФУС У РПНПЭША ЙОЙГЙБМЙЪБГЙЙ ЖПТНБМШОПЗП РБТБНЕФТБ ЖБЛФЙЮЕУЛЙН РБТБНЕФТПН, ЛПФПТБС РТПЙУИПДЙФ РЕТЕД ЧЩРПМОЕОЙЕН ЖХОЛГЙЙ РПУТЕДУФЧПН ЧЩЪПЧБ ЛПОУФТХЛФПТБ ($$R.12.2, $$R.12.8). рПТСДПЛ ЧЩЮЙУМЕОЙК РБТБНЕФТПЧ ОЕПРТЕДЕМЕО Й ХЮФЙФЕ, ЮФП ПО НПЦЕФ ВЩФШ ТБЪМЙЮЕО Х ТБЪОЩИ ФТБОУМСФПТПЧ. чУЕ РПВПЮОЩЕ ЬЖЖЕЛФЩ ЧЩТБЦЕОЙК ЖБЛФЙЮЕУЛЙИ РБТБНЕФТПЧ НПЗХФ РТПЙУИПДЙФШ РЕТЕД ОБЮБМПН ЧЩРПМОЕОЙС ЖХОЛГЙЙ. рПТСДПЛ ЧЩЮЙУМЕОЙС РПУФЖЙЛУОЩИ ЧЩТБЦЕОЙК Й УРЙУЛБ ЧЩТБЦЕОЙК РБТБНЕФТПЧ ОЕПРТЕДЕМЕО. дПРХУФЙНЩ ТЕЛХТУЙЧОЩЕ ЧЩЪПЧЩ. пРЕТБГЙС ЧЩЪПЧБ ЖХОЛГЙЙ РПТПЦДБЕФ БДТЕУ ФПМШЛП, ЕУМЙ ФЙР ТЕЪХМШФБФБ ЕУФШ БДТЕУ. R.5.2.3 сЧОЩЕ РТЕПВТБЪПЧБОЙС ФЙРБ лПОУФТХЛГЙС ЙНС-РТПУФПЗП-ФЙРБ ($$R.7.1.6), ЪБ ЛПФПТПК УМЕДХЕФ УРЙУПЛ-ЧЩТБЦЕОЙК Ч УЛПВЛБИ ПВТБЪХЕФ ЪОБЮЕОЙЕ ХЛБЪБООПЗП ФЙРБ У ХЮЕФПН УРЙУЛБ ЧЩТБЦЕОЙК. еУМЙ УРЙУПЛ ЧЩТБЦЕОЙК УПДЕТЦЙФ ВПМЕЕ ПДОПЗП ЪОБЮЕОЙС, ФЙР ДПМЦЕО ВЩФШ ЛМБУУПН У ЛПОУФТХЛФПТПН, ПРЙУБООЩН УППФЧЕФУФЧХАЭЙН ПВТБЪПН ($$R.8.4, $$R.12.1). лПОУФТХЛГЙС ЙНС-РТПУФПЗП-ФЙРБ ($$R.7.1.6), ЪБ ЛПФПТПК УМЕДХЕФ РБТБ УЛПВПЛ (РХУФБС), ПВТБЪХЕФ ЪОБЮЕОЙЕ ХЛБЪБООПЗП ФЙРБ. еУМЙ ФЙР СЧМСЕФУС ЛМБУУПН У ЛПОУФТХЛФПТПН, ПРЙУБООЩН УППФЧЕФУФЧХАЭЙН ПВТБЪПН, ВХДЕФ ЧЩЪЧБО ЬФПФ ЛПОУФТХЛФПТ, Ч РТПФЙЧОПН УМХЮБЕ ТЕЪХМШФБФПН ВХДЕФ ОЕПРТЕДЕМЕООПЕ ЪОБЮЕОЙЕ ХЛБЪБООПЗП ФЙРБ, УН. ФБЛ ЦЕ ($$R.5.4). R.5.2.4 дПУФХР Л ЮМЕОХ ЛМБУУБ рПУФЖЙЛУОПЕ ЧЩТБЦЕОЙЕ, ЪБ ЛПФПТЩН УМЕДХЕФ ФПЮЛБ (.) Й ЙНС, СЧМСЕФУС РПУФЖЙЛУОЩН ЧЩТБЦЕОЙЕН. рЕТЧПЕ ЧЩТБЦЕОЙЕ ДПМЦОП ВЩФШ ПВЯЕЛФПН ФЙРБ ЛМБУУ, Б ЙНС ДПМЦОП ВЩФШ ЙНЕОЕН ЮМЕОБ ЬФПЗП ЛМБУУБ. тЕЪХМШФБФПН ВХДЕФ РПЙНЕОПЧБООЩК ЮМЕО ПВЯЕЛФБ Й ПО ВХДЕФ БДТЕУПН, ЕУМЙ ЮМЕО СЧМСЕФУС БДТЕУПН. рПУФЖЙЛУОПЕ ЧЩТБЦЕОЙЕ, ЪБ ЛПФПТЩН УМЕДХЕФ УФТЕМЛБ (->) Й ЙНС, СЧМСЕФУС РПУФЖЙЛУОЩН ЧЩТБЦЕОЙЕН. рЕТЧПЕ ЧЩТБЦЕОЙЕ ДПМЦОП ВЩФШ ХЛБЪБФЕМЕН ОБ ПВЯЕЛФ ФЙРБ ЛМБУУ, Б ЙНС ДПМЦОП ВЩФШ ЙНЕОЕН ЮМЕОБ ЬФПЗП ЛМБУУБ. тЕЪХМШФБФПН ВХДЕФ РПЙНЕОПЧБООЩК ЮМЕО ПВЯЕЛФБ, ОБ ЛПФПТЩК ОБУФТПЕО ХЛБЪБФЕМШ Й ПО ВХДЕФ БДТЕУПН, ЕУМЙ ЮМЕО СЧМСЕФУС БДТЕУПН. ъОБЮЙФ ЧЩТБЦЕОЙЕ E1->MOS ФПЦЕ УБНПЕ, ЮФП (*E1).MOS. пВТБФЙФЕ ЧОЙНБОЙЕ, ЮФП "ПВЯЕЛФЩ ФЙРБ ЛМБУУ" НПЗХФ ВЩФШ УФТХЛФХТБНЙ ($$R.9.2) ЙМЙ ПВЯЕДЙОЕОЙСНЙ ($$R.9.5). лМБУУЩ ПВУХЦДБАФУС Ч $$R.9. R.5.2.5 йОЛТЕНЕОФ Й ДЕЛТЕНЕОФ ъОБЮЕОЙЕ, РПМХЮБЕНПЕ Ч ТЕЪХМШФБФЕ РТЙНЕОЕОЙС РПУФЖЙЛУОПК ПРЕТБГЙЙ ++, ЕУФШ ЪОБЮЕОЙЕ ПРЕТБОДБ. пРЕТБОД ДПМЦЕО ВЩФШ ЙЪНЕОСЕНЩН БДТЕУПН. фЙР ПРЕТБОДБ ДПМЦЕО ВЩФШ БТЙЖНЕФЙЮЕУЛЙК ЙМЙ ФЙР ХЛБЪБФЕМС. рПУМЕ ЧЩВПТЛЙ ТЕЪХМШФБФБ (ДМС ДБМШОЕКЫЕЗП ЙУРПМШЪПЧБОЙС) ПВЯЕЛФ ХЧЕМЙЮЙЧБЕФУС ОБ 1. фЙР ТЕЪХМШФБФБ УПЧРБДБЕФ У ФЙРПН ПРЕТБОДБ, ОП ОЕ СЧМСЕФУС БДТЕУПН (УН. ФБЛ ЦЕ $$R.5.7 Й $$R.5.17). рПУФЖЙЛУОБС ПРЕТБГЙС -- УЧПДЙФУС Л ПРЕТБГЙЙ ДЕЛТЕНЕОФБ (ХНЕОШЫЕОЙЕ ОБ 1) Й БОБМПЗЙЮОБ ПРЕТБГЙЙ ++. R.5.3 хОБТОЩЕ ПРЕТБГЙЙ чЩТБЦЕОЙС У ХОБТОЩНЙ ПРЕТБГЙСНЙ ЧЩРПМОСАФУС УРТБЧБ ОБМЕЧП. ХОБТОПЕ-ЧЩТБЦЕОЙЕ: РПУФЖЙЛУОПЕ-ЧЩТБЦЕОЙЕ ++ ХОБТОПЕ ЧЩТБЦЕОЙЕ -- ХОБТОПЕ ЧЩТБЦЕОЙЕ ХОБТОБС-ПРЕТБГЙС ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС sizeof ХОБТОБС-ПРЕТБГЙС sizeof ( ЙНС-ФЙРБ ) ЧЩТБЦЕОЙЕ-ТБЪНЕЭЕОЙС ЧЩТБЦЕОЙЕ-ПУЧПВПЦДЕОЙС ХОБТОБС-ПРЕТБГЙС: ПДЙО ЙЪ * & + - ! ~ хОБТОБС ПРЕТБГЙС * ПЪОБЮБЕФ ЛПУЧЕООПУФШ: ЧЩТБЦЕОЙЕ ДПМЦОП ВЩФШ ХЛБЪБФЕМЕН, Б ТЕЪХМШФБФ СЧМСЕФУС БДТЕУПН, УУЩМБАЭЙНУС ОБ ПВЯЕЛФ, ОБ ЛПФПТЩК ХЛБЪЩЧБЕФ ЧЩТБЦЕОЙЕ. еУМЙ ФЙР ЧЩТБЦЕОЙС ЕУФШ "ХЛБЪБФЕМШ ОБ T", ФП ФЙР ТЕЪХМШФБФБ ВХДЕФ "T". тЕЪХМШФБФПН ХОБТОПК ПРЕТБГЙЙ & ВХДЕФ ХЛБЪБФЕМШ ОБ ЕЕ ПРЕТБОД. пРЕТБОД ДПМЦЕО ВЩФШ ЖХОЛГЙЕК ЙМЙ БДТЕУПН ЙМЙ ЛПОУФТХЛГЙЕК ХФПЮОЕООПЕ-ЙНС. дМС РЕТЧЩИ ДЧХИ УМХЮБЕЧ, ЕУМЙ ФЙР ЧЩТБЦЕОЙС ЕУФШ "T", ФП ФЙР ТЕЪХМШФБФБ ВХДЕФ "ХЛБЪБФЕМШ ОБ T". ч ЮБУФОПУФЙ, БДТЕУ ПВЯЕЛФБ ФЙРБ const T ЙНЕЕФ ФЙР const T*, ФПЦЕ ЧЕТОП ДМС volatile. дМС УМХЮБС ХФПЮОЕООПЕ ЙНС ЕУМЙ ЮМЕО ЛМБУУБ "C" ОЕ СЧМСЕФУС УФБФЙЮЕУЛЙН Й ЙНЕЕФ ФЙР "T", ФП ФЙР ТЕЪХМШФБФБ ПРЕТБГЙЙ ВХДЕФ "ХЛБЪБФЕМШ ОБ ЮМЕО C ФЙРБ T". дМС УФБФЙЮЕУЛЙИ ЮМЕОПЧ ФЙРБ T ТЕЪХМШФБФПН ВХДЕФ ПВЩЮОЩК "ХЛБЪБФЕМШ ОБ T". бДТЕУ РЕТЕЗТХЦЕООПК ЖХОЛГЙЙ ($$R.13) НПЦОП ВТБФШ ФПМШЛП РТЙ ЙОЙГЙБМЙЪБГЙЙ ЙМЙ РТЙУЧБЙЧБОЙЙ, Ч ЛПФПТПН МЕЧБС ЮБУФШ ПДОПЪОБЮОП ПРТЕДЕМСЕФ ЛБЛБС ЧЕТУЙС РЕТЕЗТХЦЕООПК ЖХОЛГЙЙ ЙНЕЕФУС ЧЧЙДХ ($R13.3). пРЕТБОД ХОБТОПК ПРЕТБГЙЙ + ДПМЦЕО ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ ЙМЙ ФЙРБ ХЛБЪБФЕМШ Й ТЕЪХМШФБФПН ВХДЕФ ЪОБЮЕОЙЕ ПРЕТБОДБ. дМС ГЕМПЮЙУМЕООЩИ ПРЕТБОДПЧ РТПЙЪЧПДЙФУС УФБОДБТФОПЕ РТЕПВТБЪПЧБОЙЕ ГЕМПЮЙУМЕООЩИ. фЙР ТЕЪХМШФБФБ ЕУФШ ФЙР РТЕПВТБЪПЧБООПЗП ПРЕТБОДБ. пРЕТБОД ХОБТОПК ПРЕТБГЙЙ - ДПМЦЕО ЙНЕФШ БТЙЖНЕФЙЮЕУЛЙК ФЙР Й ТЕЪХМШФБФПН ВХДЕФ ЙЪНЕОЕОЙЕ ЪОБЛБ ПРЕТБОДБ. дМС ГЕМПЮЙУМЕООЩИ ПРЕТБОДПЧ ЧЩРПМОСЕФУС УФБОДБТФОПЕ РТЕПВТБЪПЧБОЙЕ ГЕМПЮЙУМЕООЩИ. пРЕТБГЙС ДМС ВЕЪЪОБЛПЧЩИ ЧЕМЙЮЙО ЧЩРПМОСЕФУС У РПНПЭША ЧЩЮЙФБОЙС ЪОБЮЕОЙС ПРЕТБОДБ ЙЪ 2**n, ЗДЕ n ЮЙУМП ВЙФПЧ Ч РТЕДУФБЧМЕОЙЙ РТЕПВТБЪПЧБООПЗП ПРЕТБОДБ. фЙР ТЕЪХМШФБФБ ЕУФШ РТЕПВТБЪПЧБООПЗП ПРЕТБОДБ. пРЕТБОД ПРЕТБГЙЙ МПЗЙЮЕУЛПЗП ПФТЙГБОЙС ! ДПМЦЕО ЙНЕФШ БТЙЖНЕФЙЮЕУЛЙК ФЙР ЙМЙ ВЩФШ ХЛБЪБФЕМЕН, ТЕЪХМШФБФ ТБЧЕО 1, ЕУМЙ ЪОБЮЕОЙЕ ПРЕТБОДБ ЕУФШ 0, Й ТБЧЕО 0, ЕУМЙ ПРЕТБОД ОЕ ТБЧЕО 0. фЙР ТЕЪХМШФБФБ ЕУФШ int. пРЕТБОД ПРЕТБГЙЙ ~ ДПМЦЕО ЙНЕФШ ГЕМПЮЙУМЕООЩК ФЙР, ТЕЪХМШФБФПН ВХДЕФ ПВТБЭЕОЙЕ ДЧПЙЮОПЗП РТЕДУФБЧМЕОЙС ПРЕТБОДБ. чЩРПМОСАФУС УФБОДБТФОЩЕ РТЕПВТБЪПЧБОЙС ГЕМПЮЙУМЕООЩИ. фЙР ТЕЪХМШФБФБ ЕУФШ ФЙР РТЕПВТБЪПЧБООПЗП ПРЕТБОДБ. R.5.3.1 йОЛТЕНЕОФ Й ДЕЛТЕНЕОФ пРЕТБОД РТЕЖЙЛУОПК ПРЕТБГЙЙ ++ ХЧЕМЙЮЙЧБЕФУС ОБ 1. пРЕТБОД ДПМЦЕО ВЩФШ ЙЪНЕОСЕНЩН БДТЕУПН. фЙР ПРЕТБОДБ ДПМЦЕО ВЩФШ БТЙЖНЕФЙЮЕУЛЙН ЙМЙ ХЛБЪБФЕМЕН. тЕЪХМШФБФПН СЧМСЕФУС ОПЧПЕ ЪОБЮЕОЙЕ ПРЕТБОДБ, ПОП УЮЙФБЕФУС БДТЕУПН. чЩТБЦЕОЙЕ ++x ЬЛЧЙЧБМЕОФОП x+=1. дМС ХФПЮОЕОЙС РТЕПВТБЪПЧБОЙК НПЦОП ПВТБФЙФШУС Л ПРЙУБОЙА УМПЦЕОЙС ($$R.5.7) Й ПРЕТБГЙК РТЙУЧБЙЧБОЙС ($$R.5.17). рТЕЖЙЛУОБС ПРЕТБГЙС -- УЧПДЙФУС Л ХНЕОШЫЕОЙА ОБ 1 Й ЧЩРПМОСЕФУС БОБМПЗЙЮОП РТЕЖЙЛУОПК ПРЕТБГЙЙ ++. R.5.3.2 пРЕТБГЙС sizeof пРЕТБГЙС sizeof ЧЩЮЙУМСЕФ ТБЪНЕТ УЧПЕЗП ПРЕТБОДБ Ч ВБКФБИ. пРЕТБОД ДПМЦЕО ВЩФШ ЙМЙ ЧЩТБЦЕОЙЕН, ЛПФПТПЕ ОЕ ЧЩЮЙУМСЕФУС, ЙМЙ ЙНЕОЕН ФЙРБ Ч УЛПВЛБИ. пРЕТБГЙА sizeof ОЕМШЪС РТЙНЕОСФШ Л ЖХОЛГЙЙ, ВЙФПЧПНХ РПМА, ОЕПРТЕДЕМЕООПНХ ЛМБУУХ, ФЙРХ void ЙМЙ Л НБУУЙЧХ У ОЕХЛБЪБООЩНЙ ЗТБОЙГБНЙ ЙОДЕЛУПЧ. вБКФ ОЙЛБЛ ОЕ ПРТЕДЕМСЕФУС СЪЩЛПН, ЛТПНЕ ЛБЛ ТЕЪХМШФБФБ ПРЕТБГЙЙ sizeof, ЙНЕООП sizeof(char) ЕУФШ 1. еУМЙ ПРЕТБГЙС РТЙНЕОСЕФУС Л УУЩМЛЕ, ТЕЪХМШФБФПН ВХДЕФ ТБЪНЕТ ПВЯЕЛФБ, ОБ ЛПФПТЩК ОБУФТПЕОБ УУЩМЛБ. еУМЙ ПОБ РТЙНЕОСЕФУС Л ЛМБУУХ, ТЕЪХМШФБФПН ВХДЕФ ТБЪНЕТ ПВЯЕЛФБ ЬФПЗП ЛМБУУБ Ч ВБКФБИ У ХЮЕФПН ЧУЕИ ДПРПМОЙФЕМШОЩИ ВБКФПЧ, ЛПФПТЩЕ РПФТЕВХЕФУС ДМС ТБЪНЕЭЕОЙС ФБЛПЗП ПВЯЕЛФБ Ч НБУУЙЧЕ. тБЪНЕТ МАВПЗП ЛМБУУБ ЙМЙ ПВЯЕЛФБ ЛМБУУБ ВПМШЫЕ ОХМС. ч УМХЮБЕ НБУУЙЧБ ПРЕТБГЙС ЧЩДБЕФ РПМОПЕ ЮЙУМП ВБКФПЧ Ч НБУУЙЧЕ. пФУАДБ УМЕДХЕФ, ЮФП ТБЪНЕТ НБУУЙЧБ ЙЪ n ЬМЕНЕОФПЧ ТБЧЕО ТБЪНЕТХ ЬМЕНЕОФБ, ХНОПЦЕООПНХ ОБ n. пРЕТБГЙС sizeof НПЦЕФ РТЙНЕОСФШУС Л ХЛБЪБФЕМА ОБ ЖХОЛГЙА, ОП ОЕ Л УБНПК ЖХОЛГЙЙ. тЕЪХМШФБФПН ПРЕТБГЙЙ ВХДЕФ ЛПОУФБОФБ ФЙРБ size_t. ьФПФ ФЙР ПРТЕДЕМЕО Ч УФБОДБТФОПН ЪБЗПМПЧПЮОПН ЖБКМЕ <stddef.h> Й СЧМСЕФУС ЪБЧЙУСЭЙН ПФ ТЕБМЙЪБГЙЙ ВЕЪЪОБЛПЧЩН ГЕМПЮЙУМЕООЩН ФЙРПН. R.5.3.3 пРЕТБГЙС new пРЕТБГЙС new РТЕДОБЪОБЮЕОБ ДМС УПЪДБОЙС ПВЯЕЛФБ ФЙРБ ЙНС-ФЙРБ ($$R.8.1). ьФПФ ФЙР ДПМЦЕО ВЩФШ ФЙРПН ПВЯЕЛФБ Й ЖХОЛГЙЙ ОЕМШЪС ТБЪНЕЭБФШ У ЕЕ РПНПЭША, ИПФС ХЛБЪБФЕМЙ ОБ ЖХОЛГЙЙ НПЦОП. ЧЩТБЦЕОЙЕ-ТБЪНЕЭЕОЙС: ::opt new РБТБНЕФТЩ-new opt ЙНС-ФЙРБ-new ЙОЙГЙБМЙЪБФПТ-new ::opt new РБТБНЕФТЩ-new opt ( ЙНС-ФЙРБ ) ЙОЙГЙБМЙЪБФПТ-new РБТБНЕФТЩ-new: ( УРЙУПЛ-ЧЩТБЦЕОЙК ) ЙНС-ФЙРБ-new: УРЙУПЛ-УРЕГЙЖЙЛБГЙК-ФЙРБ ПРЙУБФЕМШ-new opt ПРЙУБФЕМШ-new: * УРЙУПЛ-УРЕГЙЖЙЛБГЙК-cv opt ПРЙУБФЕМШ-new opt ЙНС-ЛМБУУБ :: УРЙУПЛ-УРЕГЙЖЙЛБГЙК-cv opt ПРЙУБФЕМШ-new opt ПРЙУБФЕМШ-new opt [ ЧЩТБЦЕОЙЕ ] ЙОЙГЙБМЙЪБФПТ-new: ( УРЙУПЛ-ЙОЙГЙБМЙЪБФПТПЧ opt ) чТЕНС ЦЙЪОЙ ПВЯЕЛФБ, УПЪДБООПЗП У РПНПЭША new, ОЕ ПЗТБОЙЮЙЧБЕФУС ПВМБУФША ЧЙДЙНПУФЙ, Ч ЛПФПТПК ПО ВЩМ УПЪДБО. пРЕТБГЙС new ЧПЪЧТБЭБЕФ ХЛБЪБФЕМШ ОБ УПЪДБООЩК ПВЯЕЛФ. еУМЙ ПВЯЕЛФ СЧМСЕФУС НБУУЙЧПН, ЧПЪЧТБЭБЕФУС ХЛБЪБФЕМШ ОБ ОБЮБМШОЩК ЬМЕНЕОФ НБУУЙЧБ. оБРТЙНЕТ, ПВЕ ПРЕТБГЙЙ new int Й new int[1] ЧПЪЧТБФСФ int* , Б ФЙРПН new int[i][10] ВХДЕФ int(*)[10]. еУМЙ ПРЙУЩЧБЕФУС ФЙР НБУУЙЧБ ($$R.8.2.4), ЧУЕ ТБЪНЕТОПУФЙ, ЛТПНЕ РЕТЧПК, ДПМЦОЩ ВЩФШ ЧЩТБЦЕОЙСНЙ- ЛПОУФБОФБНЙ ($$R.5.19) У РПМПЦЙФЕМШОЩН ЪОБЮЕОЙЕН. рЕТЧБС ТБЪНЕТОПУФШ НБУУЙЧБ НПЦЕФ ЪБДБЧБФШУС РТПЙЪЧПМШОЩН ЧЩТБЦЕОЙЕН, ДБЦЕ ЕУМЙ ЙУРПМШЪХЕФУС ЙНС-ФЙРБ (ЪДЕУШ ОБТХЫБЕФУС ПВЭЕЕ ФТЕВПЧБОЙЕ, ЮФПВЩ ТБЪНЕТОПУФЙ НБУУЙЧБ Ч ЛПОУФТХЛГЙЙ ЙНС-ФЙРБ ВЩМЙ ЧЩТБЦЕОЙСНЙ-ЛПОУФБОФБНЙ ($$R.5.19)). дПРХУЛБЕФУС, ЮФПВЩ ЧЩЪЩЧБМБУШ ЖХОЛГЙС operator new() У РБТБНЕФТПН ОХМШ. ч ФБЛПН УМХЮБЕ ЧПЪЧТБЭБЕФУС ХЛБЪБФЕМШ ОБ ПВЯЕЛФ. рТЙ РПЧФПТЕОЙЙ ФБЛЙИ ЧЩЪПЧПЧ ВХДХФ ЧПЪЧТБЭБФШУС ХЛБЪБФЕМЙ ОБ ТБЪОЩЕ ПВЯЕЛФЩ. лПОУФТХЛГЙС УРЙУПЛ-УРЕГЙЖЙЛБГЙК-ФЙРБ ОЕ ДПМЦОБ УПДЕТЦБФШ const, volatile, ПРЙУБОЙЕ ЛМБУУБ ЙМЙ РЕТЕЮЙУМЕОЙС. дМС ТЕЪЕТЧЙТПЧБОЙС РБНСФЙ ПРЕТБГЙС new ПВТБЭБЕФУС Л ЖХОЛГЙЙ operator new() ($$R.12.5). рТЙ ТБЪНЕЭЕОЙЙ ПВЯЕЛФБ ФЙРБ T ЕК Ч ЛБЮЕУФЧЕ РЕТЧПЗП РБТБНЕФТБ РЕТЕДБЕФУС sizeof(T). лПОУФТХЛГЙС РБТБНЕФТЩ-new ЙУРПМШЪХЕФУС ДМС РЕТЕДБЮЙ ДПРПМОЙФЕМШОЩИ РБТБНЕФТПЧ. оБРТЙНЕТ, ПРЕТБГЙС new T РТЙЧПДЙФ Л ЧЩЪПЧХ operator new(sizeof(T)), Б ПРЕТБГЙС new(2,f) T РТЙЧПДЙФ Л ЧЩЪПЧХ operator new(sizeof(T),2,f). лПОУФТХЛГЙС РБТБНЕФТЩ-new НПЦЕФ ЙУРПМШЪПЧБФШУС ФПМШЛП, ЕУМЙ ПРЙУБОБ ЖХОЛГЙС operator new() У РБТБНЕФТБНЙ УППФЧЕФУФЧХАЭЙИ ФЙРПЧ. еУМЙ У РПНПЭША ПРЕТБГЙЙ new УПЪДБЕФУС ПВЯЕЛФ ОЕ ФЙРБ ЛМБУУ (Ч ФПН ЮЙУМЕ Й НБУУЙЧ ПВЯЕЛФПЧ ФЙРБ ЛМБУУ), ФП ЧЩЪЩЧБЕФУС ЗМПВБМШОБС ЖХОЛГЙС ::operator new(). еУМЙ У РПНПЭША new УПЪДБЕФУС ПВЯЕЛФ ЛМБУУБ T, ЧЩЪЩЧБЕФУС ЖХОЛГЙС T::operator new(), ЕУМЙ ПОБ УХЭЕУФЧХЕФ (ЙУРПМШЪХС ПВЩЮОЩЕ РТБЧЙМБ РТПУНПФТБ РТЙ РПЙУЛЕ ЮМЕОПЧ ЛМБУУБ Й ЕЗП ВБЪПЧЩИ ЛМБУУПЧ, $$R.10.1.1), ЙОБЮЕ ЧЩЪЩЧБЕФУС ЗМПВБМШОБС ЖХОЛГЙС ::operator new(). йУРПМШЪПЧБОЙЕ ПРЕТБГЙЙ ::new() ЗБТБОФЙТХЕФ, ЮФП ВХДЕФ ЧЩЪЩЧБФШУС ЗМПВБМШОБС ЖХОЛГЙС ::operator new(), ДБЦЕ ЕУМЙ УХЭЕУФЧХЕФ T::operator new(). лПОУФТХЛГЙС ЧЩТБЦЕОЙЕ-ТБЪНЕЭЕОЙС НПЦЕФ УПДЕТЦБФШ ЙОЙГЙБМЙЪБФПТ-new. дМС ПВЯЕЛФПЧ ЛМБУУПЧ У ЛПОУФТХЛФПТБНЙ ($$R.12.1) ЪБДБЧБЕНЩК ЕА УРЙУПЛ РБТБНЕФТПЧ ВХДЕФ ЙУРПМШЪПЧБФШУС РТЙ ЧЩЪПЧЕ ЛПОУФТХЛФПТБ, Ч ДТХЗЙИ УМХЮБСИ ЛПОУФТХЛГЙС ЙОЙГЙБМЙЪБФПТ-new ДПМЦОБ ЙНЕФШ ЧЙД ( ЧЩТБЦЕОЙЕ ) ЙМЙ ( ). еУМЙ ЧЩТБЦЕОЙЕ РТЙУХФУФЧХЕФ, ПОП ЙУРПМШЪХЕФУС ДМС ЙОЙГЙБМЙЪБГЙЙ ПВЯЕЛФБ, ЕУМЙ ЕЗП ОЕФ, ПВЯЕЛФ ОБЮОЕФ УХЭЕУФЧПЧБОЙЕ У ОЕПРТЕДЕМЕООЩН ЪОБЮЕОЙЕН.\ еУМЙ ЛМБУУ ЙНЕЕФ ЛПОУФТХЛФПТ, ПВЯЕЛФ ЬФПЗП ЛМБУУБ НПЦОП УПЪДБФШ У РПНПЭША new ФПМШЛП РТЙ ХУМПЧЙЙ, ЮФП ЪБДБОЩ РПДИПДСЭЙЕ РБТБНЕФТЩ, ЙМЙ, ЮФП ЛМБУУ ЙНЕЕФ УФБОДБТФОЩК ЛПОУФТХЛФПТ ($$R.12.1). пФЧПДЙФ МЙ РБНСФШ РТЙ УПЪДБОЙЙ ПВЯЕЛФБ ФЙРБ ЛМБУУ УБНБ ЖХОЛГЙС operator new, ЙМЙ ПУФБЧМСЕФ ЬФП ОБ ЛПОУФТХЛФПТ, ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ. лБЛ ДМС ЛПОУФТХЛФПТБ, ФБЛ Й ДМС ЖХОЛГЙЙ operator new() РТПЧПДЙФУС РТПЧЕТЛБ ЧПЪНПЦОПУФЙ ДПУФХРБ Й ПДОПЪОБЮОПУФЙ ($$R.12). дМС НБУУЙЧПЧ ОЕМШЪС ЪБДБЧБФШ ЙОЙГЙБМЙЪБФПТЩ. нБУУЙЧЩ ПВЯЕЛФПЧ ФЙРБ ЛМБУУБ У ЛПОУФТХЛФПТПН НПЦОП УПЪДБЧБФШ У РПНПЭША ПРЕТБГЙЙ new ФПМШЛП, ЕУМЙ ЛПОУФТХЛФПТ ЛМБУУБ СЧМСЕФУС УФБОДБТФОЩН ($$R.12.1). ч ЬФПН УМХЮБЕ УФБОДБТФОЩК ЛПОУФТХЛФПТ ВХДЕФ ЧЩЪЩЧБФШУС ДМС ЛБЦДПЗП ЬМЕНЕОФБ НБУУЙЧБ. йОЙГЙБМЙЪБГЙС РТПЙЪЧПДЙФУС ФПМШЛП Ч ФПН УМХЮБЕ, ЛПЗДБ ЖХОЛГЙС operator new() ЧПЪЧТБЭБЕФ ОЕОХМШ. еУМЙ ПОБ ЧПЪЧТБЭБЕФ 0 (РХУФПК ХЛБЪБФЕМШ), ЪОБЮЕОЙЕ ЧЩТБЦЕОЙС ЕУФШ 0. рПТСДПЛ ЧЩЮЙУМЕОЙС ЧЩТБЦЕОЙС ЧЩЪПЧБ operator new() ДМС РПМХЮЕОЙС РБНСФЙ Й РПТСДПЛ ЧЩЮЙУМЕОЙС РБТБНЕФТПЧ ЛПОУФТХЛФПТБ ОЕПРТЕДЕМЕО. фБЛ ЦЕ ОЕПРТЕДЕМЕОП ЧЩЮЙУМСАФУС МЙ РБТБНЕФТЩ ЛПОУФТХЛФПТБ, ЕУМЙ ЖХОЛГЙС operator new() ЧПЪЧТБФЙМБ 0. ч ЛПОУФТХЛГЙЙ ЙНС-ФЙРБ-new УЛПВЛЙ ЙУРПМШЪПЧБФШ ОЕПВСЪБФЕМШОП. фПЗДБ ПВТБЭЕОЙЕ new int (*[10])(); // error НПЦЕФ РТЙЧЕУФЙ Л ПЫЙВЛЕ, Ф.Л. ПРЕТБГЙЙ РТЙНЕОСАФУС Ч ФБЛПН РПТСДЛЕ (new int) (*[10])(); // error пВЯЕЛФЩ УМПЦОПЗП ФЙРБ НПЦОП ЪБДБФШ Ч ПРЕТБГЙЙ new У РПНПЭША СЧОП ХЛБЪБООЩИ УЛПВПЛ, ОБРТЙНЕТ, ПВТБЭЕОЙЕ new (int (*[10])()); ТБЪНЕЭБЕФ НБУУЙЧ ЙЪ 10 ХЛБЪБФЕМЕК ОБ ЖХОЛГЙЙ (ОЕ ЙНЕАЭЙЕ РБТБНЕФТПЧ Й ЧПЪЧТБЭБАЭЙЕ int). лПОУФТХЛГЙЙ ЙНС-ФЙРБ-new Ч ЧЩТБЦЕОЙЕ-ТБЪНЕЭЕОЙС ДПМЦОБ ВЩФШ УБНПК ДМЙООПК ЙЪ ЧПЪНПЦОЩИ РПУМЕДПЧБФЕМШОПУФЕК ЛПОУФТХЛГЙК ПРЙУБФЕМШ-new. ьФП РТЕДПФЧТБЭБЕФ ЛПММЙЪЙЙ НЕЦДХ ПРЕТБГЙСНЙ ЙЪ ПРЙУБФЕМЕК &, *, [] Й ЙИ ДЧПКОЙЛБНЙ ЙЪ ЧЩТБЦЕОЙС, ОБРТЙНЕТ, new int* i; // syntax error: parsed as `(new int*) i' // not s `(new int)*i' уЙНЧПМ * ЙУРПМШЪХЕФУС Ч ПРЙУБФЕМЕ ХЛБЪБФЕМС, Б ОЕ Ч ЛБЮЕУФЧЕ ПРЕТБГЙЙ ХНОПЦЕОЙС. R.5.3.4 пРЕТБГЙС delete пРЕТБГЙС delete ХОЙЮФПЦБЕФ ПВЯЕЛФ, УПЪДБООЩК У РПНПЭША new. ЧЩТБЦЕОЙЕ-ПУЧПВПЦДЕОЙС: ::opt delete ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС ::opt delete [] ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС тЕЪХМШФБФ ЙНЕЕФ ФЙР void. пРЕТБОДПН delete ДПМЦЕО ВЩФШ ХЛБЪБФЕМШ, ЛПФПТЩК ЧПЪЧТБЭБЕФ new. ьЖЖЕЛФ РТЙНЕОЕОЙС ПРЕТБГЙЙ delete Л ХЛБЪБФЕМА, ЛПФПТЩК ОЕ РПМХЮЕО Ч ТЕЪХМШФБФЕ ПРЕТБГЙЙ new ВЕЪ ЪБДБОЙС РБТБНЕФТЩ-new, УЮЙФБЕФУС ОЕПРТЕДЕМЕООЩН Й ПВЩЮОП РТЙЧПДЙФ Л ПРБУОЩН РПУМЕДУФЧЙСН. пДОБЛП ЗБТБОФЙТХЕФУС, ЮФП ХДБМЕОЙЕ РП ХЛБЪБФЕМА У ОХМЕЧЩН ЪОБЮЕОЙЕН ВЕЪПРБУОП. тЕЪХМШФБФ РПРЩФЛЙ ДПУФХРБ Л ХДБМЕООПНХ ПВЯЕЛФХ ОЕПРТЕДЕМЕО, Б ХДБМЕОЙЕ ПВЯЕЛФБ НПЦЕФ ЙЪНЕОЙФШ ЕЗП ЪОБЮЕОЙЕ. вПМЕЕ ФПЗП, ЕУМЙ ЧЩТБЦЕОЙЕ, ЪБДБАЭЕЕ ПВЯЕЛФ, СЧМСЕФУС ЙЪНЕОСЕНЩН БДТЕУПН, ЕЗП ЪОБЮЕОЙЕ РПУМЕ ХДБМЕОЙС ОЕПРТЕДЕМЕОП. оЕМШЪС ХДБМСФШ ХЛБЪБФЕМШ ОБ ЛПОУФБОФХ. пРЕТБГЙС delete ЧЩЪЩЧБЕФ ДЕУФТХЛФПТ (ЕУМЙ ПО ЕУФШ $$12.4) ДМС ПВЯЕЛФБ, ОБ ЛПФПТЩК ОБУФТПЕО ЕЕ ПРЕТБОД. дМС ПУЧПВПЦДЕОЙС РБНСФЙ, ПФЧЕДЕООПК РПД ХЛБЪЩЧБЕНЩК ПВЯЕЛФ, ПРЕТБГЙС delete ЧЩЪЩЧБЕФ ЖХОЛГЙА operator delete ($$R.12.5). дМС ПВЯЕЛФПЧ, ОЕ ЙНЕАЭЙИ ФЙР ЛМБУУ (Ч ФПН ЮЙУМЕ Й ДМС НБУУЙЧПЧ ЛМБУУПЧ), ЙУРПМШЪХЕФУС ЗМПВБМШОБС ЖХОЛГЙС ::operator delete(). дМС ПВЯЕЛФБ ФЙРБ ЛМБУУ T ЧЩЪЩЧБЕФУС ЖХОЛГЙС T::operator delete(), ЕУМЙ ПОБ ЕУФШ (ЙУРПМШЪХС ПВЩЮОЩЕ РТБЧЙМБ РТПУНПФТБ РТЙ РПЙУЛЕ ЮМЕОПЧ ЛМБУУБ Й РТПЙЪЧПДОЩИ ПФ ОЕЗП ЛМБУУПЧ, $$R.10.1.1), Ч РТПФЙЧОПН УМХЮБЕ ЧЩЪЩЧБЕФУС ЗМПВБМШОБС ЖХОЛГЙС ::operator delete(). пВТБЭЕОЙЕ ::delete ЗБТБОФЙТХЕФ, ЮФП ВХДЕФ ЧЩЪЩЧБФШУС ЗМПВБМШОБС ЖХОЛГЙС ::operator delete(), ДБЦЕ ЕУМЙ УХЭЕУФЧХЕФ T::operator delete(). дМС ХДБМЕОЙС НБУУЙЧПЧ ЙУРПМШЪХЕФУС ПВТБЭЕОЙЕ ЧЙДБ delete [ ] ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС ъДЕУШ ЧЩТБЦЕОЙЕ ДПМЦОП ХЛБЪЩЧБФШ ОБ НБУУЙЧ. еУМЙ ЕУФШ ДЕУФТХЛФПТЩ, ПОЙ ВХДХФ ЧЩЪЩЧБФШУС ДМС ХДБМЕОЙС ХЛБЪБООЩИ ПВЯЕЛФПЧ. тЕЪХМШФБФ ХДБМЕОЙС НБУУЙЧБ У РПНПЭША РТПУФПЗП ПВТБЭЕОЙС delete ОЕПРТЕДЕМЕО, ФБЛ ЦЕ ЛБЛ Й ХДБМЕОЙЕ ПДЙОПЮОПЗП ПВЯЕЛФБ У РПНПЭША delete []. R.5.4 сЧОПЕ РТЕПВТБЪПЧБОЙЕ ФЙРБ сЧОПЕ РТЕПВТБЪПЧБОЙЕ ФЙРБ НПЦОП ЪБДБФШ У РПНПЭША ЖХОЛГЙПОБМШОПК ЪБРЙУЙ ($$R.5.2.3) ЙМЙ У РПНПЭША ПРЕТБГЙЙ РТЙЧЕДЕОЙС. ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС: ХОБТОПЕ-ЧЩТБЦЕОЙЕ ( ЙНС-ФЙРБ ) ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС ъБДБОЙЕ У РПНПЭША ПРЕТБГЙЙ РТЙЧЕДЕОЙС ЙУРПМШЪХЕФУС ДМС ПВПЪОБЮЕОЙС РТЕПВТБЪПЧБОЙС Л ФЙРХ, ЛПФПТЩК ОЕ СЧМСЕФУС ЛПОУФТХЛГЙЕК ЙНС-РТПУФПЗП-ФЙРБ. ч ПРЕТБГЙЙ РТЙЧЕДЕОЙС ОЕМШЪС ПРТЕДЕМСФШ ФЙРЩ. чУСЛПЕ РТЕПВТБЪПЧБОЙЕ ФЙРБ, ОЕ ХРПНСОХФПЕ ЪДЕУШ Й ОЕ СЧМСАЭЕЕУС РТЕПВТБЪПЧБОЙЕН СЧОП ПРТЕДЕМЕООЩН РПМШЪПЧБФЕМЕН ($$R.12.3), УЮЙФБЕФУС ПЫЙВЛПК. мАВПК ФЙР, ЛПФПТЩК НПЦОП РТЕПВТБЪПЧБФШ Ч ДТХЗПК У РПНПЭША УФБОДБТФОПЗП РТЕПВТБЪПЧБОЙС ($$R.4), НПЦОП ФБЛЦЕ РТЕПВТБЪПЧБФШ У РПНПЭША СЧОПЗП РТЕПВТБЪПЧБОЙС (РТЙЧЕДЕОЙС) Й УНЩУМ РТЕПВТБЪПЧБОЙС ВХДЕФ ФПФ ЦЕ. хЛБЪБФЕМШ НПЦОП РТЕПВТБЪПЧБФШ Л МАВПНХ ГЕМПЮЙУМЕООПНХ ФЙРХ, ДПУФБФПЮОП ВПМШЫПНХ, ЮФПВЩ ЧНЕУФЙФШ ЪОБЮЕОЙЕ ХЛБЪБФЕМС. бМЗПТЙФН РТЕПВТБЪПЧБОЙС ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ, ОП РТЕДРПМБЗБЕФУС, ЮФП ПО ВХДЕФ ЕУФЕУФЧЕООЩН ДМС ФПЗП, ЛФП ЪОБЕФ УЙУФЕНХ БДТЕУБГЙЙ, ЙУРПМШЪХЕНПК НБЫЙОЩ. ъОБЮЕОЙЕ ГЕМПЮЙУМЕООПЗП ФЙРБ НПЦЕФ ВЩФШ СЧОП РТЕПВТБЪПЧБОП Ч ХЛБЪБФЕМШ. хЛБЪБФЕМШ, РТЕПВТБЪПЧБООЩК Ч ГЕМПЕ ДПУФБФПЮОПЗП ТБЪНЕТБ (ЕУМЙ ФБЛЙЕ ЕУФШ Ч ТЕБМЙЪБГЙЙ), Й РТЕПВТБЪПЧБООЩК ПВТБФОП Л ФЙРХ ХЛБЪБФЕМС, ДПМЦЕО ЙНЕФШ УЧПЕ РЕТЧПОБЮБМШОПЕ ЪОБЮЕОЙЕ. чУЕ ДТХЗЙЕ ДЕФБМЙ РЕТЕЧПДБ ХЛБЪБФЕМС Ч ГЕМПЕ Й ПВТБФОП ЪБЧЙУСФ ПФ ТЕБМЙЪБГЙЙ. хЛБЪБФЕМШ ОБ ПВЯЕЛФ ПДОПЗП ФЙРБ НПЦЕФ ВЩФШ РТЕПВТБЪПЧБО Ч ХЛБЪБФЕМШ ОБ ПВЯЕЛФ ДТХЗПЗП ФЙРБ (У УПВМАДЕОЙЕН ПЗТБОЙЮЕОЙК, ХЛБЪБООЩИ ЪДЕУШ). йУРПМШЪПЧБОЙЕ РПМХЮЙЧЫЕЗПУС ХЛБЪБФЕМС НПЦЕФ ЧЩЪЧБФШ ПУПВХА БДТЕУОХА УЙФХБГЙА ("ОЕЧЕТОЩК БДТЕУ"), ЕУМЙ РТЕПВТБЪХЕНЩК ХЛБЪБФЕМШ ОЕ ОБУФТПЕО ОБ ПВЯЕЛФ, РТБЧЙМШОЩН ПВТБЪПН ЧЩТБЧОЕООЩК Ч РБНСФЙ. зБТБОФЙТХЕФУС, ЮФП ХЛБЪБФЕМШ ОБ ПВЯЕЛФ ДБООПЗП ТБЪНЕТБ НПЦОП РТЕПВТБЪПЧБФШ Ч ХЛБЪБФЕМШ ОБ ПВЯЕЛФ ТБЧОПЗП ЙМЙ НЕОШЫЕЗП ТБЪНЕТБ Й РТПЧЕУФЙ ПВТБФОПЕ РТЕПВТБЪПЧБОЙЕ ВЕЪ ЙЪНЕОЕОЙС ЪОБЮЕОЙС ХЛБЪБФЕМС. оБ ТБЪМЙЮОЩИ НБЫЙОБИ ДЧПЙЮОПЕ РТЕДУФБЧМЕОЙЕ ХЛБЪБФЕМЕК НПЦЕФ ВЩФШ ТБЪМЙЮОП ЛБЛ Й ФТЕВПЧБОЙС ОБ ЧЩТБЧОЙЧБОЙС ПВЯЕЛФПЧ. уПУФБЧОЩЕ ПВЯЕЛФЩ ЧЩТБЧОЙЧБАФУС РП УБНПК УФТПЗПК ЗТБОЙГЕ, ФТЕВХЕНПК ЙИ УПУФБЧМСАЭЙНЙ. хЛБЪБФЕМШ ФЙРБ void* УЮЙФБЕФУС УПЧНЕУФЙНЩН У ХЛБЪБФЕМЕН ОБ ПВЯЕЛФ МАВПЗП ФЙРБ. хЛБЪБФЕМШ ОБ ЛМБУУ B НПЦОП РТЕПВТБЪПЧБФШ Ч ХЛБЪБФЕМШ ОБ ЛМБУУ D, ДМС ЛПФПТПЗП ЛМБУУ B СЧМСЕФУС РТСНП ЙМЙ ПРПУТЕДПЧБООП ВБЪПЧЩН ЛМБУУПН, ЕУМЙ УХЭЕУФЧХЕФ ПДОПЪОБЮОПЕ РТЕПВТБЪПЧБОЙЕ ЙЪ D Ч B ($$R.4.6, $$.R10.1.1) Й ЕУМЙ B СЧМСЕФУС ЧЙТФХБМШОЩН ВБЪПЧЩН ЛМБУУПН ($$R.10.1). фБЛПЕ РТЙЧЕДЕОЙЕ ПФ ВБЪПЧПЗП ЛМБУУБ Л РТПЙЪЧПДОПНХ ЛМБУУХ РТЕДРПМБЗБЕФ, ЮФП ПВЯЕЛФ ВБЪПЧПЗП ЛМБУУБ СЧМСЕФУС ЧМПЦЕООЩН РП ПФОПЫЕОЙА Л ПВЯЕЛФХ РТПЙЪЧПДОПЗП ЛМБУУБ. ч ТЕЪХМШФБФЕ РПМХЮЙФУС ХЛБЪБФЕМШ, ОБУФТПЕООЩК ОБ ПВЯЕНМАЭЙК ПВЯЕЛФ РТПЙЪЧПДОПЗП ЛМБУУБ. еУМЙ ПВЯЕЛФ ВБЪПЧПЗП ЛМБУУБ ОЕ УПДЕТЦЙФУС ОЙ Ч ЛБЛПН ПВЯЕЛФЕ РТПЙЪЧПДОПЗП ЛМБУУБ, ФБЛБС ПРЕТБГЙС РТЙЧЕДЕОЙС НПЦЕФ ЧЩЪЧБФШ ПУПВХА УЙФХБГЙА. рХУФПК ХЛБЪБФЕМШ (0) РТЕПВТБЪХЕФУС УБН Ч УЕВС. рПЛБ ЕЭЕ ОЕПРТЕДЕМЕООЩК ЛМБУУ НПЦОП ЙУРПМШЪПЧБФШ Ч ПРЕТБГЙЙ РТЙЧЕДЕОЙС ХЛБЪБФЕМС, Ч ЬФПН УМХЮБЕ ОЙЛБЛЙИ ДПРХЭЕОЙК П УФТХЛФХТЕ ЛМБУУБ ОЕ ДЕМБЕФУС ($$R.10.1). мАВПК ПВЯЕЛФ НПЦОП СЧОП РТЕПВТБЪПЧБФШ Л ФЙРХ УУЩМЛЙ X&, ЕУМЙ ХЛБЪБФЕМШ ОБ ЬФПФ ПВЯЕЛФ НПЦОП СЧОП РТЕПВТБЪПЧБФШ Ч ФЙР X*. ч ТЕЪХМШФБФЕ РТЙЧЕДЕОЙС Л УУЩМЛЕ ОЕ РТПЙУИПДЙФ ЧЩЪПЧПЧ ЛПОУФТХЛФПТПЧ ЙМЙ ЖХОЛГЙК РТЕПВТБЪПЧБОЙК. рТЕПВТБЪПЧБОЙЕ УУЩМЛЙ ОБ ВБЪПЧЩК ЛМБУУ Ч УУЩМЛХ ОБ РТПЙЪЧПДОЩК ЛМБУУ ТБУУНБФТЙЧБЕФУС БОБМПЗЙЮОП РТЕПВТБЪПЧБОЙА ХЛБЪБФЕМС ОБ ВБЪПЧЩК ЛМБУУ Ч ХЛБЪБФЕМШ ОБ РТПЙЪЧПДОЩК ЛМБУУ, ХЮЙФЩЧБС ЧПРТПУЩ ПДОПЪОБЮОПУФЙ, ЧЙТФХБМШОЩИ ЛМБУУПЧ Й Ф.Д. тЕЪХМШФБФПН РТЙЧЕДЕОЙС Л УУЩМЛЕ СЧМСЕФУС БДТЕУ, Ч ПФМЙЮЙЕ ПФ ЧУЕИ ПУФБМШОЩИ РТЙЧЕДЕОЙК. тЕЪХМШФБФ РТЙЧЕДЕОЙС ХЛБЪБФЕМС ЙМЙ УУЩМЛЙ ОБУФТПЕО ОБ ФПФ ЦЕ ПВЯЕЛФ, ЮФП Й ЙУИПДОПЕ ЧЩТБЦЕОЙЕ ВЕЪ ПРЕТБГЙЙ РТЙЧЕДЕОЙС. хЛБЪБФЕМШ ОБ ЖХОЛГЙА НПЦОП СЧОП РТЕПВТБЪПЧБФШ Ч ХЛБЪБФЕМШ ОБ ОЕЛПФПТЩК ПВЯЕЛФ РТЙ ХУМПЧЙЙ, ЮФП ФЙР ХЛБЪБФЕМС ОБ ЬФПФ ПВЯЕЛФ ДПУФБФПЮОП ЧЕМЙЛ, ЮФПВЩ ИТБОЙФШ ХЛБЪБФЕМШ ОБ ЖХОЛГЙА. хЛБЪБФЕМШ ОБ ОЕЛПФПТЩК ПВЯЕЛФ НПЦОП СЧОП РТЕПВТБЪПЧБФШ Ч ХЛБЪБФЕМШ ОБ ЖХОЛГЙА РТЙ ХУМПЧЙЙ, ЮФП ФЙР ХЛБЪБФЕМС ОБ ЖХОЛГЙА ДПУФБФПЮОП ЧЕМЙЛ, ЮФПВЩ ИТБОЙФШ ХЛБЪБФЕМШ ОБ ЬФПФ ПВЯЕЛФ. ч ПВПЙИ УМХЮБСИ, ЙУРПМШЪПЧБОЙЕ ХЛБЪБФЕМС, РПМХЮЙЧЫЕЗПУС Ч ТЕЪХМШФБФЕ РТЕПВТБЪПЧБОЙС, НПЦЕФ ЧЩЪЧБФШ ПУПВХА БДТЕУОХА УЙФХБГЙА, ЙМЙ ЮФП-ОЙВХДШ РПИХЦЕ, ЕУМЙ ЙУИПДОЩК ХЛБЪБФЕМШ ОЕ ОБУФТПЕО ОБ УППФЧЕФУФЧХАЭЙК ПВЯЕЛФ. хЛБЪБФЕМШ ОБ ЖХОЛГЙА ПДОПЗП ФЙРБ НПЦОП СЧОП РТЕПВТБЪПЧБФШ Ч ХЛБЪБФЕМШ ОБ ЖХОЛГЙА ДТХЗПЗП ФЙРБ. тЕЪХМШФБФ ЧЩЪПЧБ ЖХОЛГЙЙ У РПНПЭША ХЛБЪБФЕМС ОБ ЖХОЛГЙА, ФЙР ЛПФПТПК ПФМЙЮЕО ПФ ФЙРБ, ЙУРПМШЪПЧБООПЗП РТЙ ПРТЕДЕМЕОЙЙ РЕТЧПК ЖХОЛГЙЙ, ОЕПРТЕДЕМЕО (УН. ФБЛ ЦЕ $$R.4.6). пВЯЕЛФ ЙМЙ ЪОБЮЕОЙЕ НПЦОП РТЕПВТБЪПЧБФШ Ч ПВЯЕЛФ ФЙРБ ЛМБУУ ФПМШЛП РТЙ ХУМПЧЙЙ, ЮФП ПРТЕДЕМЕО РПДИПДСЭЙК ЛПОУФТХЛФПТ ЙМЙ ПРЕТБГЙС РТЕПВТБЪПЧБОЙС ($$R.12.3). хЛБЪБФЕМШ ОБ ЮМЕО НПЦОП СЧОП РТЕПВТБЪПЧБФШ Ч ХЛБЪБФЕМШ ОБ ДТХЗПК ЮМЕО, ЕУМЙ ПВБ ХЮБУФЧХАЭЙИ ФЙРБ СЧМСАФУС ФЙРБНЙ ХЛБЪБФЕМЕК ОБ ЮМЕОЩ ПДОПЗП ЛМБУУБ, ЙМЙ, ЕУМЙ ПВБ ФЙРБ СЧМСАФУС ХЛБЪБФЕМСНЙ ОБ ЖХОЛГЙА-ЮМЕО ЛМБУУПЧ, ПДЙО ЙЪ ЛПФПТЩИ РПМХЮБЕФУС ЛБЛ ПДОПЪОБЮОПЕ РТПЙЪЧПДОПЕ ПФ ДТХЗПЗП ($$R.4.8). хЛБЪБФЕМШ ОБ ПВЯЕЛФ У ФЙРПН, ЙНЕАЭЙН УРЕГЙЖЙЛБГЙА const, НПЦОП РТЙЧЕУФЙ Л ХЛБЪБФЕМА У ФЙРПН ВЕЪ УРЕГЙЖЙЛБГЙЙ const. рПМХЮЙЧЫЙКУС Ч ТЕЪХМШФБФЕ ХЛБЪБФЕМШ ВХДЕФ ОБУФТПЕО ОБ ЙУИПДОЩК ПВЯЕЛФ. пВЯЕЛФ У ФЙРПН, ЙНЕАЭЙН УРЕГЙЖЙЛБГЙА const, ЙМЙ УУЩМЛХ ОБ ПВЯЕЛФ ФБЛПЗП ФЙРБ НПЦОП РТЙЧЕУФЙ Ч УУЩМЛХ ОБ ПВЯЕЛФ У ФЙРПН ВЕЪ const. рПМХЮЙЧЫБСУС Ч ТЕЪХМШФБФЕ УУЩМЛБ ВХДЕФ ОБУФТПЕОБ ОБ ЙУИПДОЩК ПВЯЕЛФ. ч ТЕЪХМШФБФЕ РПРЩФЛЙ ЙЪНЕОЙФШ ЬФПФ ПВЯЕЛФ У РПНПЭША ФБЛПК УУЩМЛЙ ЙМЙ ХЛБЪБФЕМС НПЦЕФ ЧПЪОЙЛОХФШ ПУПВБС УЙФХБГЙС ЙМЙ ПО ВХДЕФ ФБЛЙН ЦЕ, ЛБЛ РТЙ ПВТБЭЕОЙЙ У РПНПЭША ЙУИПДОПК УУЩМЛЙ ЙМЙ ХЛБЪБФЕМС Л ПВЯЕЛФХ, ФЙР ЛПФПТПЗП ОЕ УПДЕТЦЙФ const. чПЪОЙЛОЕФ МЙ ПУПВБС БДТЕУОБС УЙФХБГЙС ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ. хЛБЪБФЕМШ ОБ ПВЯЕЛФ ФЙРБ УП УРЕГЙЖЙЛБГЙЕК volatile НПЦОП РТЙЧЕУФЙ Л ХЛБЪБФЕМА ОБ ПВЯЕЛФ ФЙРБ ВЕЪ volatile. ч ТЕЪХМШФБФЕ РПМХЮЙФУС ХЛБЪБФЕМШ, ОБУФТПЕООЩК ОБ ЙУИПДОЩК ПВЯЕЛФ. пВЯЕЛФ ФЙРБ У volatile ЙМЙ УУЩМЛХ ОБ ФБЛПК ПВЯЕЛФ НПЦОП РТЙЧЕУФЙ Л УУЩМЛЕ ОБ ПВЯЕЛФ У ФЙРПН ВЕЪ volatile. R.5.5 пРЕТБГЙЙ ХЛБЪБФЕМШ-ОБ-ЮМЕО пРЕТБГЙЙ ХЛБЪБФЕМШ-ОБ-ЮМЕО РТЙНЕОСАФУС УМЕЧБ ОБРТБЧП. ЧЩТБЦЕОЙЕ-pm: ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС ЧЩТБЦЕОЙЕ-pm .* ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС ЧЩТБЦЕОЙЕ-pm ->* ЧЩТБЦЕОЙЕ-РТЙЧЕДЕОЙС вЙОБТОБС ПРЕТБГЙС .* УЧСЪЩЧБЕФ УЧПК ЧФПТПК ПРЕТБОД, ЛПФПТЩК ДПМЦЕО ЙНЕФШ ФЙР "ХЛБЪБФЕМШ ОБ ЮМЕО ЛМБУУБ T", У РЕТЧЩН ПРЕТБОДПН, ЙНЕАЭЙН ФЙР ЛМБУУ T ЙМЙ ФБЛПК ЛМБУУ, ДМС ЛПФПТПЗП T СЧМСЕФУС ПДОПЪОБЮОП ПРТЕДЕМЕООЩН Й ДПУФЙЦЙНЩН ВБЪПЧЩН ЛМБУУПН. тЕЪХМШФБФПН ВХДЕФ ПВЯЕЛФ ЙМЙ ЖХОЛГЙС У ФЙРПН, ЪБДБЧБЕНЩН ЧФПТЩН ПРЕТБОДПН. вЙОБТОБС ПРЕТБГЙС ->* УЧСЪЩЧБЕФ УЧПК ЧФПТПК ПРЕТБОД, ЛПФПТЩК ДПМЦЕО ЙНЕФШ ФЙР "ХЛБЪБФЕМШ ОБ ЮМЕО ЛМБУУБ T", У РЕТЧЩН ПРЕТБОДПН, ЙНЕАЭЙН ФЙР "ХЛБЪБФЕМШ ОБ T" ЙМЙ ФЙР "ХЛБЪБФЕМШ ОБ ЛМБУУ, ДМС ЛПФПТПЗП T СЧМСЕФУС ПДОПЪОБЮОП ПРТЕДЕМЕООЩН Й ДПУФЙЦЙНЩН ВБЪПЧЩН ЛМБУУПН". тЕЪХМШФБФПН ВХДЕФ ПВЯЕЛФ ЙМЙ ЖХОЛГЙС У ФЙРПН, ЪБДБЧБЕНЩН ЧФПТЩН ПРЕТБОДПН. еУМЙ ТЕЪХМШФБФ .* ЙМЙ ->* ЕУФШ ЖХОЛГЙС, ФП ЕЗП НПЦОП ЙУРПМШЪПЧБФШ ФПМШЛП Ч ЛБЮЕУФЧЕ ПРЕТБОДБ ПРЕТБГЙЙ ЧЩЪПЧБ ЖХОЛГЙЙ (), ОБРТЙНЕТ, ПРЕТБГЙС (ptr_to_obj->*ptr_to_mfct)(10); РТЙЧПДЙФ Л ЧЩЪПЧХ ЖХОЛГЙЙ-ЮМЕОБ, ПВПЪОБЮЕООПК ptr_to_mfct, ДМС ПВЯЕЛФБ, ОБ ЛПФПТЩК ОБУФТПЕО ХЛБЪБФЕМШ ptr_to_obj. тЕЪХМШФБФ ПРЕТБГЙЙ .* ЙМЙ ->* СЧМСЕФУС БДТЕУПН, ЕУМЙ ЧФПТПК ПРЕТБОД ЕУФШ БДТЕУ. R.5.6 нХМШФЙРМЙЛБФЙЧОЩЕ ПРЕТБГЙЙ нХМШФЙРМЙЛБФЙЧОЩЕ ПРЕТБГЙЙ *, /, Й % ЧЩРПМОСАФУС УМЕЧБ ОБРТБЧП. нХМШФЙРМЙЛБФЙЧОПЕ-ЧЩТБЦЕОЙЕ: ЧЩТБЦЕОЙЕ-pm НХМШФЙРМЙЛБФЙЧОПЕ-ЧЩТБЦЕОЙЕ * ЧЩТБЦЕОЙЕ-pm НХМШФЙРМЙЛБФЙЧОПЕ-ЧЩТБЦЕОЙЕ / ЧЩТБЦЕОЙЕ-pm НХМШФЙРМЙЛБФЙЧОПЕ-ЧЩТБЦЕОЙЕ % ЧЩТБЦЕОЙЕ-pm пРЕТБОДЩ ПРЕТБГЙК * Й / ДПМЦОЩ ЙНЕФШ БТЙЖНЕФЙЮЕУЛЙК ФЙР, ПРЕТБОДЩ ДМС % ДПМЦОЩ ВЩФШ ГЕМПЮЙУМЕООПЗП ФЙРБ. пВЩЮОЩЕ БТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС ($$R.4.5) РТПЙЪЧПДСФУС ОБД ПРЕТБОДБНЙ Й ПРТЕДЕМСАФ ФЙР ТЕЪХМШФБФБ. вЙОБТОБС ПРЕТБГЙС * ПВПЪОБЮБЕФ ХНОПЦЕОЙЕ. вЙОБТОБС ПРЕТБГЙС / ЧЩЮЙУМСЕФ ЮБУФОПЕ, Б ВЙОБТОБС ПРЕТБГЙС % ЧЩЮЙУМСЕФ ПУФБФПЛ ПФ ДЕМЕОЙС РЕТЧПЗП ЧЩТБЦЕОЙС ОБ ЧФПТПЕ. еУМЙ ЧФПТПК ПРЕТБОД Х / ЙМЙ % ЕУФШ 0, ТЕЪХМШФБФ ОЕПРТЕДЕМЕО, ЙОБЮЕ (a/b)*b + a%b ДПМЦОП ТБЧОСФШУС a. еУМЙ ПВБ ПРЕТБОДБ ОЕПФТЙГБФЕМШОЩ, ФП ФБЛЙН ЦЕ ВХДЕФ Й ТЕЪХМШФБФ, Ч РТПФЙЧОПН УМХЮБЕ ЪОБЛ ТЕЪХМШФБФБ ПРТЕДЕМСЕФУС ТЕБМЙЪБГЙЕК. R.5.7 бДДЙФЙЧОЩЕ ПРЕТБГЙЙ бДДЙФЙЧОЩЕ ПРЕТБГЙЙ + Й - ЧЩРПМОСАФУС УМЕЧБ ОБРТБЧП, РТЙ ЬФПН РТПЙУИПДСФ ПВЩЮОЩЕ БТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС ($$R.4.5) ПРЕТБОДПЧ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ. БДДЙФЙЧОПЕ-ЧЩТБЦЕОЙЕ: НХМШФЙРМЙЛБФЙЧОПЕ-ЧЩТБЦЕОЙЕ БДДЙФЙЧОПЕ ЧЩТБЦЕОЙЕ + НХМШФЙРМЙЛБФЙЧОПЕ-ЧЩТБЦЕОЙЕ БДДЙФЙЧОПЕ-ЧЩТБЦЕОЙЕ - НХМШФЙРМЙЛБФЙЧОПЕ-ЧЩТБЦЕОЙЕ пРЕТБОДЩ ДПМЦОЩ ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ ЙМЙ ФЙРБ ХЛБЪБФЕМС. тЕЪХМШФБФПН ПРЕТБГЙЙ + СЧМСЕФУС УХННБ ПРЕТБОДПЧ. нПЦОП УЛМБДЩЧБФШ ХЛБЪБФЕМШ ОБ ПВЯЕЛФ Ч НБУУЙЧЕ Й ЪОБЮЕОЙЕ МАВПЗП ГЕМПЮЙУМЕООПЗП ФЙРБ. тЕЪХМШФБФПН ВХДЕФ ХЛБЪБФЕМШ ФПЗП ЦЕ ФЙРБ, ЮФП Й ЙУИПДОЩК ХЛБЪБФЕМШ, ОП ПО ВХДЕФ ОБУФТПЕО ОБ ДТХЗПК ПВЯЕЛФ НБУУЙЧБ У ЪБДБООЩН УНЕЭЕОЙЕН ПФ ЙУИПДОПЗП ПВЯЕЛФБ. фБЛ, ЕУМЙ P ЕУФШ ХЛБЪБФЕМШ ОБ ПВЯЕЛФ НБУУЙЧБ, ЧЩТБЦЕОЙЕ P+1 СЧМСЕФУС ХЛБЪБФЕМЕН ОБ УМЕДХАЭЙК ПВЯЕЛФ НБУУЙЧБ. еУМЙ ЦЕ РПМХЮЙЧЫЙКУС Ч ТЕЪХМШФБФЕ УМПЦЕОЙС ХЛБЪБФЕМШ ЧЩЫЕМ ЪБ ЗТБОЙГЩ НБУУЙЧБ, ТЕЪХМШФБФ ВХДЕФ ОЕПРТЕДЕМЕООЩН, ЛТПНЕ УМХЮБС, ЛПЗДБ ХЛБЪБФЕМШ ОБУФТПЕО ОБ РЕТЧЩК БДТЕУ ВПМШЫЙК ЧЕТИОЕК ЗТБОЙГЩ НБУУЙЧБ. тЕЪХМШФБФПН ПРЕТБГЙЙ - ВХДЕФ ТБЪОПУФШ ПРЕТБОДПЧ. ъОБЮЕОЙЕ МАВПЗП ГЕМПЮЙУМЕООПЗП ФЙРБ НПЦОП ЧЩЮЙФБФШ ЙЪ ХЛБЪБФЕМС, РТЙ ЬФПН РТЙНЕОСАФУС ФЕ ЦЕ РТЕПВТБЪПЧБОЙС, ЮФП Й ДМС ПРЕТБГЙЙ +. оЙЛБЛЙЕ ДТХЗЙЕ УПЮЕФБОЙС ФЙРПЧ ДМС ХЛБЪБФЕМЕК ОЕ ДПРХУФЙНЩ. еУМЙ ЧЩЮЙФБАФУС ДЧБ ХЛБЪБФЕМС ОБ ПВЯЕЛФЩ ПДОПЗП ФЙРБ, ТЕЪХМШФБФПН ВХДЕФ ГЕМПЮЙУМЕООПЕ ЪОБЮЕОЙЕ УП ЪОБЛПН, ЛПФПТПЕ РПЛБЪЩЧБЕФ ОБ УЛПМШЛП ПВЯЕЛФПЧ ЬФПЗП ФЙРБ ПФУФПСФ ДТХЗ ПФ ДТХЗБ ХЛБЪХЕНЩЕ ПВЯЕЛФЩ. хЛБЪБФЕМЙ ОБ УПУЕДОЙЕ ЬМЕНЕОФЩ НБУУЙЧБ ПФУФПСФ ОБ 1. фЙР ТЕЪХМШФБФБ ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ, ОП ПО ДПМЦЕО ВЩФШ ПРТЕДЕМЕО ЛБЛ ptrdiff_t Ч УФБОДБТФОПН ЪБЗПМПЧПЮОПН ЖБКМЕ <stddef.h>. тЕЪХМШФБФ ОЕ ПРТЕДЕМЕО, ЕУМЙ ХЛБЪБФЕМЙ ОЕ ОБУФТПЕОЩ ОБ ЬМЕНЕОФЩ ПДОПЗП НБУУЙЧБ. еУМЙ P ЕУФШ ХЛБЪБФЕМШ ОБ РПУМЕДОЙК ЬМЕНЕОФ НБУУЙЧБ, ФП (P+1) - 1 ЕУФШ P. R.5.8 пРЕТБГЙЙ УДЧЙЗБ пРЕТБГЙЙ УДЧЙЗПЧ << Й >> ЧЩРПМОСАФУС УМЕЧБ ОБРТБЧП. УДЧЙЗПЧПЕ-ЧЩТБЦЕОЙЕ: БДДЙФЙЧОПЕ-ЧЩТБЦЕОЙЕ УДЧЙЗПЧПЕ-ЧЩТБЦЕОЙЕ << БДДЙФЙЧОПЕ ЧЩТБЦЕОЙЕ УДЧЙЗПЧПЕ-ЧЩТБЦЕОЙЕ >> БДДЙФЙЧОПЕ ЧЩТБЦЕОЙЕ пРЕТБОДЩ ДПМЦОЩ ВЩФШ ГЕМПЮЙУМЕООПЗП ФЙРБ, Й ОБД ОЙНЙ РТПЙЪЧПДСФУС УФБОДБТФОЩЕ ГЕМПЮЙУМЕООЩЕ РТЕПВТБЪПЧБОЙС. фЙР ТЕЪХМШФБФБ УПЧРБДБЕФ У ФЙРПН РТЕПВТБЪПЧБООПЗП МЕЧПЗП ПРЕТБОДБ. тЕЪХМШФБФ ОЕ ПРТЕДЕМЕО, ЕУМЙ РТБЧЩК ПРЕТБОД ПФТЙГБФЕМЕО ЙМЙ ВПМШЫЕ ЙМЙ ТБЧЕО ЮЙУМХ ТБЪТСДПЧ Ч ДЧПЙЮОПН РТЕДУФБЧМЕОЙЙ РТЕПВТБЪПЧБООПЗП МЕЧПЗП ПРЕТБОДБ. ъОБЮЕОЙЕН ЧЩТБЦЕОЙС E1<<E2 ВХДЕФ E1 (ТБУУНБФТЙЧБЕНПЕ ЛБЛ ОБВПТ ТБЪТСДПЧ), УДЧЙОХФПЕ ЧМЕЧП ОБ E2 ТБЪТСДПЧ, РТЙЮЕН ПУЧПВПДЙЧЫЙЕУС ТБЪТСДЩ ЪБРПМОСАФУС ОХМСНЙ. ъОБЮЕОЙЕН ЧЩТБЦЕОЙС E1>>E2 ВХДЕФ E1, УДЧЙОХФПЕ ЧРТБЧП ОБ E2 ТБЪТСДПЧ. еУМЙ E1 ВЕЪЪОБЛПЧПЗП ФЙРБ ЙМЙ ЙНЕЕФ ОЕПФТЙГБФЕМШОПЕ ЪОБЮЕОЙЕ, ЗБТБОФЙТХЕФУС, ЮФП УДЧЙЗ ЧРТБЧП - МПЗЙЮЕУЛЙК (ЪБРПМОЕОЙЕ ОХМСНЙ), ЙОБЮЕ ТЕЪХМШФБФ ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ. R.5.9 пРЕТБГЙЙ ПФОПЫЕОЙС пРЕТБГЙЙ ПФОПЫЕОЙС ЧЩРПМОСАФУС УМЕЧБ ОБРТБЧП, ОП ЬФПФ ЖБЛФ НБМП ЮФП ДБЕФ, ЙВП ЧЩТБЦЕОЙЕ a<b<c ПЪОБЮБЕФ (a<b)<c, Б ЧПЧУЕ ОЕ (a<b)&&(b<c). ЧЩТБЦЕОЙЕ-ПФОПЫЕОЙС: УДЧЙЗПЧПЕ-ЧЩТБЦЕОЙЕ ЧЩТБЦЕОЙЕ-ПФОПЫЕОЙС < УДЧЙЗПЧПЕ-ЧЩТБЦЕОЙЕ ЧЩТБЦЕОЙЕ-ПФОПЫЕОЙС > УДЧЙЗПЧПЕ-ЧЩТБЦЕОЙЕ ЧЩТБЦЕОЙЕ-ПФОПЫЕОЙС <= УДЧЙЗПЧПЕ-ЧЩТБЦЕОЙЕ ЧЩТБЦЕОЙЕ-ПФОПЫЕОЙС >= УДЧЙЗПЧПЕ-ЧЩТБЦЕОЙЕ пРЕТБОДЩ ДПМЦОЩ ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ ЙМЙ ФЙРБ ХЛБЪБФЕМЕК. пРЕТБГЙЙ < (НЕОШЫЕ ЮЕН), > (ВПМШЫЕ ЮЕН), <= (НЕОШЫЕ ЙМЙ ТБЧОП) Й >= (ВПМШЫЕ ЙМЙ ТБЧОП) ДБАФ ТЕЪХМШФБФ 0, ЕУМЙ ХЛБЪБООПЕ ПФОПЫЕОЙЕ ОЕ ЧЩРПМОСЕФУС, Й 1, ЕУМЙ ПОП ЧЩРПМОСЕФУС. фЙР ТЕЪХМШФБФБ int. оБД БТЙЖНЕФЙЮЕУЛЙНЙ ПРЕТБОДБНЙ ЧЩРПМОСАФУС ПВЩЮОЩЕ БТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС. оБД ХЛБЪБФЕМСНЙ ЧЩРПМОСАФУС ПВЩЮОЩЕ РТЕПВТБЪПЧБОЙС ХЛБЪБФЕМЕК. рТЕДРПМБЗБЕФУС, ЮФП МАВПК ХЛБЪБФЕМШ НПЦОП УТБЧОЙФШ У ЧЩТБЦЕОЙЕН, ЙНЕАЭЙН ТЕЪХМШФБФ 0, Й МАВПК ХЛБЪБФЕМШ НПЦОП УТБЧОЙФШ У ХЛБЪБФЕМЕН, ЙНЕАЭЙН ФЙР void* (Ч ЬФПН УМХЮБЕ ХЛБЪБФЕМШ УОБЮБМБ РТЕПВТБЪХЕФУС Л ФЙРХ void*). хЛБЪБФЕМЙ ОБ ПВЯЕЛФЩ ЙМЙ ЖХОЛГЙЙ ПДОПЗП ФЙРБ (РПУМЕ РТЕПВТБЪПЧБОЙС ХЛБЪБФЕМЕК) НПЦОП УТБЧОЙЧБФШ, ТЕЪХМШФБФ ЪБЧЙУЙФ ПФ ЧЪБЙНОПЗП ТБУРПМПЦЕОЙС Ч РБНСФЙ ПВЯЕЛФПЧ ЙМЙ ЖХОЛГЙК. дЧБ ХЛБЪБФЕМС ОБ ПДЙО Й ФПФ ЦЕ ПВЯЕЛФ УЮЙФБАФУС ТБЧОЩНЙ. еУМЙ ДЧБ ХЛБЪБФЕМС ОБУФТПЕОЩ ОБ ОЕУФБФЙЮЕУЛЙЕ ЮМЕОЩ ПДОПЗП ПВЯЕЛФБ, ФП ХЛБЪБФЕМШ, ОБУФТПЕООЩК ОБ ЮМЕО, ПРЙУБООЩК РПЪДОЕЕ, УЮЙФБЕФУС ВПМШЫЙН, РТЙ ХУМПЧЙЙ, ЮФП ЮМЕОЩ ОЕ ЙНЕАФ ТБЪОЩИ УРЕГЙЖЙЛБГЙК ХЛБЪБФЕМШ-ДПУФХРБ ($$R.11.1), Б ЛМБУУ ОЕ СЧМСЕФУС ПВЯЕДЙОЕОЙЕН. еУМЙ ДЧБ ХЛБЪБФЕМС ОБУФТПЕОЩ ОБ ОЕУФБФЙЮЕУЛЙЕ ЮМЕОЩ ПДОПЗП ПВЯЕЛФБ Й УРЕГЙЖЙЛБГЙЙ ХЛБЪБФЕМЕК-ДПУФХРБ ($$R.11.1) ЬФЙИ ЮМЕОПЧ ТБЪМЙЮОЩ, ТЕЪХМШФБФ ВХДЕФ ОЕ ПРТЕДЕМЕО. еУМЙ ДЧБ ХЛБЪБФЕМС ОБУФТПЕОЩ ОБ ЮМЕОЩ (ДБООЩЕ) ПДОПЗП Й ФПЗП ЦЕ ПВЯЕДЙОЕОЙС, ПОЙ УЮЙФБАФУС ТБЧОЩНЙ. еУМЙ ДЧБ ХЛБЪБФЕМС ОБУФТПЕОЩ ОБ ЬМЕНЕОФЩ ПДОПЗП НБУУЙЧБ ЙМЙ УНПФТСФ ЪБ ЗТБОЙГХ НБУУЙЧБ, ФП ХЛБЪБФЕМШ, ОБУФТПЕООЩК ОБ ЬМЕНЕОФ У ВПМШЫЙН ЙОДЕЛУПН, ВХДЕФ ВПМШЫЙН. чУЕ ДТХЗЙЕ УТБЧОЕОЙС ХЛБЪБФЕМЕК ПРТЕДЕМСАФУС ТЕБМЙЪБГЙЕК. R.5.10 пРЕТБГЙЙ УТБЧОЕОЙС ОБ ТБЧЕОУФЧП ЧЩТБЦЕОЙЕ-ТБЧЕОУФЧБ: ЧЩТБЦЕОЙЕ-ПФОПЫЕОЙС ЧЩТБЦЕОЙЕ-ТБЧЕОУФЧБ == ЧЩТБЦЕОЙЕ-ПФОПЫЕОЙС ЧЩТБЦЕОЙЕ-ТБЧЕОУФЧБ != ЧЩТБЦЕОЙЕ-ПФОПЫЕОЙС пРЕТБГЙЙ == (ТБЧОП) Й != (ОЕ ТБЧОП) БОБМПЗЙЮОЩ ПРЕТБГЙСН ПФОПЫЕОЙС, ЪБ ЙУЛМАЮЕОЙЕН ФПЗП, ЮФП ЙИ РТЙПТЙФЕФ ОЙЦЕ. (фБЛЙН ПВТБЪПН, ПРЕТБГЙС a<b == c<d ДБЕФ ТЕЪХМШФБФ 1, ЕУМЙ ЧЩТБЦЕОЙС a<b Й c<d ЙНЕАФ ПДОП Й ФП ЦЕ ЪОБЮЕОЙЕ.) лТПНЕ ЬФПЗП, НПЦОП УТБЧОЙЧБФШ ХЛБЪБФЕМЙ ОБ ЮМЕОЩ ПДОПЗП ФЙРБ. рТПЙЪЧПДСФУС РТЕПВТБЪПЧБОЙС ХЛБЪБФЕМС ОБ ЮМЕО ($$R.4.8). хЛБЪБФЕМШ ОБ ЮМЕО НПЦОП УТБЧОЙФШ У ЧЩТБЦЕОЙЕН-ЛПОУФБОФПК, ЛПФПТПЕ ДБЕФ ТЕЪХМШФБФ 0. R.5.11 рПТБЪТСДОБС ПРЕТБГЙС й ЧЩТБЦЕОЙЕ-й: ЧЩТБЦЕОЙЕ-ТБЧЕОУФЧБ ЧЩТБЦЕОЙЕ-й & ЧЩТБЦЕОЙЕ-ТБЧЕОУФЧБ чЩРПМОСАФУС ПВЩЮОЩЕ БТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС, ТЕЪХМШФБФ - РПТБЪТСДОБС ЖХОЛГЙС й ПФ ПРЕТБОДПЧ. пРЕТБГЙС РТЙНЕОЙНБ ФПМШЛП Л ГЕМПЮЙУМЕООЩН ПРЕТБОДБН. R.5.12 рПТБЪТСДОБС (ЙУЛМАЮБАЭБС) ПРЕТБГЙС ймй ЧЩТБЦЕОЙЕ-ЙУЛМАЮБАЭЕЗП-ймй: ЧЩТБЦЕОЙЕ-й ЧЩТБЦЕОЙЕ-ЙУЛМАЮБАЭЕЗП-ймй ^ ЧЩТБЦЕОЙЕ-й чЩРПМОСАФУС ПВЩЮОЩЕ БТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС, ТЕЪХМШФБФ - РПТБЪТСДОБС ЙУЛМАЮБАЭБС ЖХОЛГЙС ймй ПФ ПРЕТБОДПЧ. пРЕТБГЙС РТЙНЕОЙНБ ФПМШЛП Л ГЕМПЮЙУМЕООЩН ПРЕТБОДБН. R.5.13 рПТБЪТСДОБС (ЧЛМАЮБАЭБС) ПРЕТБГЙС ймй ЧЩТБЦЕОЙЕ-ймй: ЧЩТБЦЕОЙЕ-ЙУЛМАЮБАЭЕЗП-ймй ЧЩТБЦЕОЙЕ-ймй | ЧЩТБЦЕОЙЕ-ЙУЛМАЮБАЭЕЗП-ймй чЩРПМОСАФУС ПВЩЮОЩЕ БТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС, ТЕЪХМШФБФ - РПТБЪТСДОБС ЖХОЛГЙС ймй ПФ ПРЕТБОДПЧ. пРЕТБГЙС РТЙНЕОЙНБ ФПМШЛП Л ГЕМПЮЙУМЕООЩН ФЙРБН. R.5.14 мПЗЙЮЕУЛБС ПРЕТБГЙС й МПЗЙЮЕУЛПЕ-ЧЩТБЦЕОЙЕ-й: ЧЩТБЦЕОЙЕ-ймй МПЗЙЮЕУЛПЕ-ЧЩТБЦЕОЙЕ-й && ЧЩТБЦЕОЙЕ-ймй пРЕТБГЙЙ && ЧЩРПМОСАФУС УМЕЧБ ОБРТБЧП. фБЛБС ПРЕТБГЙС ДБЕФ ТЕЪХМШФБФ 1, ЕУМЙ ПВБ ПРЕТБОДБ ЕЕ ПФМЙЮОЩ ПФ ОХМС, ЙОБЮЕ ТЕЪХМШФБФ - 0. ч ПФМЙЮЙЕ ПФ & РТЙ ПРЕТБГЙЙ && ЗБТБОФЙТХЕФУС ЧЩЮЙУМЕОЙЕ УМЕЧБ ОБРТБЧП, ВПМЕЕ ФПЗП, ЧФПТПК ПРЕТБОД ОЕ ЧЩЮЙУМСЕФУС, ЕУМЙ РЕТЧЩК ПРЕТБОД ТБЧЕО 0. пРЕТБОДЩ ОЕ ПВСЪБФЕМШОП ЙНЕАФ ПДЙОБЛПЧЩК ФЙР, ОП ЛБЦДЩК ДПМЦЕО ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ ЙМЙ ФЙРБ ХЛБЪБФЕМС. фЙР ТЕЪХМШФБФБ int. чУЕ РПВПЮОЩЕ ЬЖЖЕЛФЩ ЧЩЮЙУМЕОЙС РЕТЧПЗП ЧЩТБЦЕОЙС НПЗХФ ЧПЪОЙЛБФШ ДП ЧЩЮЙУМЕОЙС ЧФПТПЗП ЧЩТБЦЕОЙС. R.5.15 мПЗЙЮЕУЛБС ПРЕТБГЙС ймй МПЗЙЮЕУЛПЕ-ЧЩТБЦЕОЙЕ-ймй: МПЗЙЮЕУЛПЕ-ЧЩТБЦЕОЙЕ-й МПЗЙЮЕУЛПЕ-ЧЩТБЦЕОЙЕ-ймй || МПЗЙЮЕУЛПЕ-ЧЩТБЦЕОЙЕ-й пРЕТБГЙЙ || ЧЩРПМОСАФУС УМЕЧБ ОБРТБЧП. тЕЪХМШФБФ ПРЕТБГЙЙ 1, ЕУМЙ ПДЙО ЙЪ ЕЕ ПРЕТБОДПЧ ПФМЙЮЕО ПФ ОХМС, ЙОБЮЕ ТЕЪХМШФБФ - 0. ч ПФМЙЮЙЕ ПФ | РТЙ ПРЕТБГЙЙ || ЗБТБОФЙТХЕФУС ЧЩЮЙУМЕОЙЕ УМЕЧБ ОБРТБЧП, ВПМЕЕ ФПЗП, ЧФПТПК ПРЕТБОД ОЕ ЧЩЮЙУМСЕФУС, ЕУМЙ ЪОБЮЕОЙЕ РЕТЧПЗП ПРЕТБОДБ ПФМЙЮОП ПФ ОХМС. пРЕТБОДЩ ОЕ ПВСЪБФЕМШОП ЙНЕАФ ПДЙОБЛПЧЩК ФЙР, ОП ЛБЦДЩК ДПМЦЕО ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ ЙМЙ ФЙРБ ХЛБЪБФЕМС. фЙР ТЕЪХМШФБФБ int. чУЕ РПВПЮОЩЕ ЬЖЖЕЛФЩ ЧЩЮЙУМЕОЙС РЕТЧПЗП ЧЩТБЦЕОЙС НПЗХФ ЧПЪОЙЛБФШ ДП ЧЩЮЙУМЕОЙС ЧФПТПЗП ЧЩТБЦЕОЙС. R.5.16 пРЕТБГЙС ХУМПЧЙС ЧЩТБЦЕОЙЕ-ХУМПЧЙС: МПЗЙЮЕУЛПЕ-ЧЩТБЦЕОЙЕ-ймй МПЗЙЮЕУЛПЕ-ЧЩТБЦЕОЙЕ-ймй ? ЧЩТБЦЕОЙЕ : ЧЩТБЦЕОЙЕ-ХУМПЧЙС хУМПЧОЩЕ ЧЩТБЦЕОЙС ЧЩРПМОСАФУС УМЕЧБ ОБРТБЧП. рЕТЧПЕ ЧЩТБЦЕОЙЕ ДПМЦОП ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ ЙМЙ ФЙРБ ХЛБЪБФЕМС. пОП ЧЩЮЙУМСЕФУС, Й, ЕУМЙ ТЕЪХМШФБФ ЕЗП ПФМЙЮЕО ПФ ОХМС, ФП ТЕЪХМШФБФПН ХУМПЧОПЗП ЧЩТБЦЕОЙС ВХДЕФ ЪОБЮЕОЙЕ ЧФПТПЗП ЧЩТБЦЕОЙС, ЙОБЮЕ ТЕЪХМШФБФ - ЪОБЮЕОЙЕ ФТЕФШЕЗП ЧЩТБЦЕОЙС. чУЕ РПВПЮОЩЕ ЬЖЖЕЛФЩ ЧЩЮЙУМЕОЙС РЕТЧПЗП ЧЩТБЦЕОЙС НПЗХФ ЧПЪОЙЛБФШ ДП ЧЩЮЙУМЕОЙС ЧФПТПЗП ЙМЙ ФТЕФШЕЗП ЧЩТБЦЕОЙС. еУМЙ ЧФПТПЕ Й ФТЕФШЕ ЧЩТБЦЕОЙЕ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ, Й ФЙРЩ ЙИ УПЧРБДБАФ, ФП ФБЛЙН ЦЕ ВХДЕФ Й ФЙР ТЕЪХМШФБФБ, ЕУМЙ ПОЙ ТБЪМЙЮБАФУС, ФП ЧЩРПМОСАФУС ПВЩЮОЩЕ БТЙЖНЕФЙЮЕУЛЙЕ РТЕПВТБЪПЧБОЙС, ЮФПВЩ РТЙЧЕУФЙ ЙИ Л ПВЭЕНХ ФЙРХ. еУМЙ ЧФПТПЕ Й ФТЕФШЕ ЧЩТБЦЕОЙЕ СЧМСАФУС ХЛБЪБФЕМСНЙ ЙМЙ ЧЩТБЦЕОЙЕН-ЛПОУФБОФПК, ДБАЭЙН ТЕЪХМШФБФ 0, ЧЩРПМОСАФУС РТЕПВТБЪПЧБОЙС ХЛБЪБФЕМЕК, ЮФПВЩ РТЙЧЕУФЙ ТЕЪХМШФБФЩ ЧЩТБЦЕОЙК Л ПВЭЕНХ ФЙРХ. еУМЙ ЧФПТПЕ Й ФТЕФШЕ ЧЩТБЦЕОЙЕ СЧМСАФУС УУЩМЛБНЙ, ЧЩРПМОСЕФУС РТЕПВТБЪПЧБОЙЕ УУЩМПЛ, ЮФПВЩ РТЙЧЕУФЙ ЙИ Л ПВЭЕНХ ФЙРХ. еУМЙ ЧФПТПЕ Й ФТЕФШЕ ЧЩТБЦЕОЙЕ ЙНЕАФ ФЙР void, ПВЭЙК ФЙР ВХДЕФ void. еУМЙ ЧФПТПЕ Й ФТЕФШЕ ЧЩТБЦЕОЙЕ ЙНЕАФ ПДЙО ФЙР ЛМБУУ T, ПВЭЙН ФЙРПН ВХДЕФ T. йОБЮЕ, ЧЩТБЦЕОЙЕ УЮЙФБЕФУС ОЕДПРХУФЙНЩН. фЙР ТЕЪХМШФБФБ ЕУФШ ПВЭЙК ФЙР. чЩЮЙУМСЕФУС ФПМШЛП ЧФПТПЕ ЙМЙ ФТЕФШЕ ЧЩТБЦЕОЙЕ (ОП ОЕ ПВБ). тЕЪХМШФБФ ВХДЕФ БДТЕУПН, ЕУМЙ ЧФПТПК Й ФТЕФЙК ПРЕТБОД ПДОПЗП ФЙРБ Й СЧМСАФУС БДТЕУБНЙ. R.5.17 пРЕТБГЙЙ РТЙУЧБЙЧБОЙС уХЭЕУФЧХЕФ ОЕУЛПМШЛП ПРЕТБГЙК РТЙУЧБЙЧБОЙС, ЧУЕ ПОЙ ЧЩРПМОСАФУС УРТБЧБ ОБМЕЧП. дМС ЧУЕИ ОЙИ ФТЕВХЕФУС, ЮФПВЩ МЕЧЩН ПРЕТБОДПН ВЩМ ЙЪНЕОСЕНЩК БДТЕУ. фЙР ЧЩТБЦЕОЙС РТЙУЧБЙЧБОЙС УПЧРБДБЕФ У ФЙРПН МЕЧПЗП ПРЕТБОДБ. тЕЪХМШФБФ ПРЕТБГЙЙ РТЙУЧБЙЧБОЙЕ - ЪОБЮЕОЙЕ, ИТБОСЭЕЕУС Ч МЕЧПН ПРЕТБОДЕ РПУМЕ ФПЗП ЛБЛ РТПЙЪПЫМП РТЙУЧБЙЧБОЙЕ. тЕЪХМШФБФ СЧМСЕФУС БДТЕУПН. ЧЩТБЦЕОЙЕ-РТЙУЧБЙЧБОЙС: ЧЩТБЦЕОЙЕ-ХУМПЧЙС ХОБТОПЕ-ЧЩТБЦЕОЙЕ ПРЕТБГЙС-РТЙУЧБЙЧБОЙС ЧЩТБЦЕОЙЕ-РТЙУЧБЙЧБОЙС ПРЕТБГЙС-РТЙУЧБЙЧБОЙС: ПДЙО ЙЪ = *= /= %= += -= >>= <<= &= ^= |= рТЙ РТПУФПН РТЙУЧБЙЧБОЙЙ (=) ЪОБЮЕОЙЕ ЧЩТБЦЕОЙС ЪБНЕОСЕФ УПВПК ЪОБЮЕОЙЕ ПВЯЕЛФБ, У ЛПФПТЩН УПРПУФБЧМСЕФУС МЕЧЩК ПРЕТБОД. еУМЙ ПВБ ПРЕТБОДБ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ, РТБЧЩК ПРЕТБОД, РТЕЦДЕ ЮЕН РТПЙЪПКДЕФ РТЙУЧБЙЧБОЙЕ, РТЕПВТБЪХЕФУС Л ФЙРХ МЕЧПЗП ПРЕТБОДБ. оЕСЧОЩЕ РТЕПВТБЪПЧБОЙС Л ФЙРХ РЕТЕЮЙУМЕОЙС ($$R.7.2) ОЕ РТПЙЪЧПДСФУС, РПЬФПНХ ЕУМЙ МЕЧЩК ПРЕТБОД ЙНЕЕФ ФЙР РЕТЕЮЙУМЕОЙС, РТБЧЩК ПРЕТБОД ДПМЦЕО ВЩФШ ФБЛЙН ЦЕ. еУМЙ МЕЧЩК ПРЕТБОД ЙНЕЕФ ФЙР ХЛБЪБФЕМС, РТБЧЩК ПРЕТБОД ДПМЦЕО ВЩФШ ФЙРБ ХЛБЪБФЕМС ЙМЙ ЧЩТБЦЕОЙЕН-ЛПОУФБОФПК, ДБАЭЙН ТЕЪХМШФБФ 0. рТБЧЩК ПРЕТБОД РТЕПВТБЪХЕФУС Л ФЙРХ МЕЧПЗП ПРЕТБОДБ, РТЕЦДЕ ЧЩРПМОЕОЙС РТЙУЧБЙЧБОЙС. хЛБЪБФЕМШ ФЙРБ T* const НПЦОП РТЙУЧБЙЧБФШ ХЛБЪБФЕМА ФЙРБ T*, ОП ПВТБФОПЕ РТЙУЧБЙЧБОЙЕ УЮЙФБЕФУС ОЕЪБЛПООЩН ($$R.7.1.6). пВЯЕЛФЩ ФЙРБ const T ЙМЙ volatile T НПЦОП РТЙУЧБЙЧБФШ РП БДТЕУХ ФЙРБ T ЙМЙ volatile T (УН. ФБЛ ЦЕ $$R.8.4). еУМЙ МЕЧЩК ПРЕТБОД ЙНЕЕФ ФЙР ХЛБЪБФЕМС ОБ ЮМЕО, РТБЧЩК ПРЕТБОД ДПМЦЕО ВЩФШ ФЙРБ ХЛБЪБФЕМШ ОБ ЮМЕО ЙМЙ ЧЩТБЦЕОЙЕН-ЛПОУФБОФПК, ДБАЭЙН ТЕЪХМШФБФ 0; РЕТЕД РТЙУЧБЙЧБОЙЕН РТБЧЩК ПРЕТБОД РТЕПВТБЪХЕФУС Л ФЙРХ МЕЧПЗП ПРЕТБОДБ. рТЙУЧБЙЧБОЙЕ ПВЯЕЛФБН ЛМБУУБ X ($$R.9) ЪБДБЕФУС ЖХОЛГЙЕК X::operator=() ($$R.13.4.3). еУМЙ РПМШЪПЧБФЕМШ ОЕ ПРТЕДЕМЙМ УЧПА ЖХОЛГЙА X::operator=(), ДМС РТЙУЧБЙЧБОЙС ЙУРПМШЪХЕФУС УФБОДБТФОЩК ЧБТЙБОФ ($$R.12.8). пФУАДБ УМЕДХЕФ, ЮФП ПВЯЕЛФ ЛМБУУБ, ЛПФПТЩК СЧМСЕФУС РТСНЩН ЙМЙ ОЕРТСНЩН РТПЙЪЧПДОЩН ПФ X, Й ПДОПЪОБЮОП ПРЙУБО ЛБЛ РТПЙЪЧПДОЩК Ч ЮБУФЙ public ($$R.4.6), НПЦОП РТЙУЧПЙФШ ПВЯЕЛФХ X. хЛБЪБФЕМШ ОБ ЮМЕО ЛМБУУБ B НПЦОП РТЙУЧБЙЧБФШ ХЛБЪБФЕМА ОБ ЮМЕО ФПЗП ЦЕ ФЙРБ ЛМБУУБ D РТЙ ХУМПЧЙЙ, ЮФП D СЧМСЕФУС РТСНЩН ЙМЙ ОЕРТСНЩН РТПЙЪЧПДОЩН ЛМБУУБ B, Й ПДОПЪОБЮОП ПРЙУБО ЛБЛ РТПЙЪЧПДОЩК Ч ЮБУФЙ public ($$R.10.1.1). рТЙУЧБЙЧБОЙЕ ПВЯЕЛФХ ФЙРБ "УУЩМЛБ ОБ T" УЧПДЙФУС Л РТЙУЧБЙЧБОЙА ПВЯЕЛФХ ФЙРБ T, ЛПФПТЩК ПВПЪОБЮБЕФУС УУЩМЛПК. чЩРПМОЕОЙЕ ЧЩТБЦЕОЙЕ ЧЙДБ E1 op= E2 ЬЛЧЙЧБМЕОФОП ЧЩРПМОЕОЙА E1 = E1 op (E2), ПДОБЛП E1 ЧЩЮЙУМСЕФУС МЙЫШ ПДЙО ТБЪ. ч ПРЕТБГЙСИ += Й -= МЕЧЩК ПРЕТБОД НПЦЕФ ВЩФШ ХЛБЪБФЕМЕН, Ч ЬФПН УМХЮБЕ РТБЧЩК (ГЕМПЮЙУМЕООЩК) ПРЕТБОД РТЕПВТБЪХЕФУС ФБЛ, ЛБЛ ПВЯСУОСМПУШ Ч $$R.5.7. чУЕ РТБЧЩЕ ПРЕТБОДЩ Й ЧУЕ МЕЧЩЕ ПРЕТБОДЩ, ОЕ СЧМСАЭЙЕУС УУЩМЛБНЙ, ДПМЦОЩ ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ. дМС ПВЯЕЛФПЧ ЛМБУУБ РТЙУЧБЙЧБОЙЕ Ч ПВЭЕН УМХЮБЕ ОЕ УПЧРБДБЕФ У ЙОЙГЙБМЙЪБГЙЕК ($$R.8.4, $$R.12.1, $$R.12.6, $$R.12.8). R.5.18 пРЕТБГЙС ЪБРСФБС пРЕТБГЙЙ ЪБРСФБС ЧЩРПМОСАФУС УМЕЧБ ОБРТБЧП. ЧЩТБЦЕОЙЕ: ЧЩТБЦЕОЙЕ-РТЙУЧБЙЧБОЙС ЧЩТБЦЕОЙЕ, ЧЩТБЦЕОЙЕ-РТЙУЧБЙЧБОЙС рБТБ ЧЩТБЦЕОЙК, ТБЪДЕМЕООЩИ ЪБРСФПК, ЧЩЮЙУМСЕФУС УМЕЧБ ОБРТБЧП Й ЪОБЮЕОЙЕ МЕЧПЗП ЧЩТБЦЕОЙС ХОЙЮФПЦБЕФУС. чУЕ РПВПЮОЩЕ ЬЖЖЕЛФЩ ЧЩЮЙУМЕОЙС МЕЧПЗП ЧЩТБЦЕОЙС НПЗХФ ЧПЪОЙЛБФШ ДП ЧЩЮЙУМЕОЙС РТБЧПЗП ЧЩТБЦЕОЙС. фЙР Й ЪОБЮЕОЙЕ ТЕЪХМШФБФБ УПЧРБДБАФ У ФЙРПН Й ЪОБЮЕОЙЕН РТБЧПЗП ЧЩТБЦЕОЙС. тЕЪХМШФБФ СЧМСЕФУС БДТЕУПН, ЕУМЙ ФБЛПЧЩН СЧМСЕФУС РТБЧПЕ ЧЩТБЦЕОЙЕ. ч ЛПОФЕЛУФБИ, ЗДЕ ЪБРСФБС ЙНЕЕФ УРЕГЙБМШОПЕ ЪОБЮЕОЙЕ, УЛБЦЕН Ч УРЙУЛЕ ЖБЛФЙЮЕУЛЙИ РБТБНЕФТПЧ ЖХОЛГЙЙ ($$R.5.2.2) ЙМЙ Ч УРЙУЛЕ ЙОЙГЙБМЙЪБФПТПЧ ($$R.8.4), ПРЙУБООБС ЪДЕУШ ПРЕТБГЙС ЪБРСФБС НПЦЕФ РПСЧМСФШУС ФПМШЛП Ч УЛПВЛБИ, ОБРТЙНЕТ, ЧЩЪПЧ ЖХОЛГЙЙ f(a, (t=3,t+2), c); УПДЕТЦЙФ ФТЙ РБТБНЕФТБ, РТЙЮЕН ЧФПТПК ЙНЕЕФ ЪОБЮЕОЙЕ 5. R.5.19 чЩТБЦЕОЙС-ЛПОУФБОФЩ ч ОЕУЛПМШЛЙИ НЕУФБИ ПРЙУБОЙС у++ ФТЕВХАФУС ЧЩТБЦЕОЙС, ЛПФПТЩЕ ДБАФ Ч ТЕЪХМШФБФЕ ГЕМПЮЙУМЕООХА ЛПОУФБОФХ, ОБРТЙНЕТ: Ч ЪБДБОЙЙ ЗТБОЙГ НБУУЙЧБ ($$R.8.2.4), Ч ЧЩТБЦЕОЙСИ case ($$R.6.4.2), ДМС ЪБДБОЙС ДМЙОЩ ВЙФПЧПЗП РПМС ($$R.9.6) Й ЛБЛ ЙОЙГЙБМЙЪЙТХАЭЕЕ ЪОБЮЕОЙЕ ЬМЕНЕОФБ РЕТЕЮЙУМЕОЙС ($$R.7.2). ЧЩТБЦЕОЙЕ-ЛПОУФБОФБ: ЧЩТБЦЕОЙЕ-ХУМПЧЙС ч ЛПОУФТХЛГЙЙ ЧЩТБЦЕОЙЕ-ЛПОУФБОФБ НПЗХФ ХЮБУФЧПЧБФШ: МЙФЕТБМЩ ($$R.2.5), ЬМЕНЕОФЩ РЕТЕЮЙУМЕОЙС, ЪОБЮЕОЙС ГЕМПЮЙУМЕООПЗП ФЙРБ УП УРЕГЙЖЙЛБГЙЕК const, ЙОЙГЙБМЙЪЙТПЧБООЩЕ ЧЩТБЦЕОЙЕН-ЛПОУФБОФПК ($$R.8.4) Й ЧЩТБЦЕОЙС sizeof. лПОУФБОФЩ У РМБЧБАЭЕК ФПЮЛПК ($$R.2.5.3) ДПМЦОЩ ВЩФШ РТЙЧЕДЕОЩ Л ГЕМПЮЙУМЕООПНХ ФЙРХ. дПРХУФЙНЩ ФПМШЛП РТЕПВТБЪПЧБОЙС ФЙРБ Л ГЕМПЮЙУМЕООПНХ ФЙРХ. ч ЮБУФОПУФЙ ОЕ ДПРХУФЙНЩ ЖХОЛГЙЙ, ПВЯЕЛФЩ ЛМБУУПЧ, ХЛБЪБФЕМЙ Й УУЩМЛЙ, ЕУМЙ ОЕ УЮЙФБФШ ЙИ ЙУРПМШЪПЧБОЙС Ч sizeof. пРЕТБГЙС ЪБРСФБС Й ПРЕТБГЙС РТЙУЧБЙЧБОЙС ОЕ ДПРХУФЙНЩ Ч ЧЩТБЦЕОЙЙ-ЛПОУФБОФЕ. R.6 пРЕТБФПТЩ чУЕ ПРЕТБФПТЩ, ЪБ ЙУЛМАЮЕОЙЕН ПЗПЧПТЕООЩИ УМХЮБЕЧ, ЧЩРПМОСАФУС ПДЙО ЪБ ДТХЗЙН. ПРЕТБФПТ: РПНЕЮЕООЩК-ПРЕТБФПТ ПРЕТБФПТ-ЧЩТБЦЕОЙЕ УПУФБЧОПК-ПРЕТБФПТ ЧЩВЙТБАЭЙК-ПРЕТБФПТ ПРЕТБФПТ-ГЙЛМБ ПРЕТБФПТ-РЕТЕИПДБ ПРЕТБФПТ-ПРЙУБОЙС R.6.1 рПНЕЮЕООЩК ПРЕТБФПТ пРЕТБФПТ НПЦОП УОБВДЙФШ НЕФЛПК. РПНЕЮЕООЩК-ПРЕТБФПТ: ЙДЕОФЙЖЙЛБФПТ : ПРЕТБФПТ case ЧЩТБЦЕОЙЕ-ЛПОУФБОФБ : ПРЕТБФПТ default : ПРЕТБФПТ йУРПМШЪПЧБОЙЕ ЙДЕОФЙЖЙЛБФПТБ Ч ЛБЮЕУФЧЕ НЕФЛЙ СЧМСЕФУС ЕЕ ПРТЕДЕМЕОЙЕН. йДЕОФЙЖЙЛБФПТ НЕФЛЙ НПЦЕФ ЙУРПМШЪПЧБФШУС РПНЙНП ЬФПЗП ФПМШЛП Ч ЛБЮЕУФЧЕ ХЛБЪБОЙС РЕТЕИПДБ Ч ПРЕТБФПТЕ goto. пВМБУФША ЧЙДЙНПУФЙ НЕФЛЙ СЧМСЕФУС ЖХОЛГЙС, Ч ЛПФПТПК ПОБ РПСЧЙМБУШ. нЕФЛЙ ОЕМШЪС РПЧФПТОП ПРЙУЩЧБФШ Ч РТЕДЕМБИ ПДОПК ЖХОЛГЙЙ. оЕМШЪС ЙУРПМШЪПЧБФШ НЕФЛХ Ч ПРЕТБФПТЕ goto ДП ЕЕ ПРТЕДЕМЕОЙС. нЕФЛЙ ЙНЕАФ УЧПЕ РТПУФТБОУФЧП ЙНЕОПЧБОЙС Й ПОЙ ОЕ ЧУФХРБАФ Ч ЛПММЙЪЙА У ДТХЗЙНЙ ЙДЕОФЙЖЙЛБФПТБНЙ. нЕФЛЙ Ч case ЙМЙ default НПЗХФ ЧУФТЕЮБФШУС ФПМШЛП Ч ПРЕТБФПТЕ РЕТЕЛМАЮБФЕМС. R.6.2 пРЕТБФПТ-ЧЩТБЦЕОЙЕ юБЭЕ ЧУЕЗП ПРЕТБФПТБНЙ ВЩЧБАФ ЧЩТБЦЕОЙС; Ч ЬФПН УМХЮБЕ ПРЕТБФПТ ЙНЕЕФ ФБЛПК ЧЙД: ПРЕТБФПТ-ЧЩТБЦЕОЙЕ: ЧЩТБЦЕОЙЕ opt ; пВЩЮОП ПРЕТБФПТЩ-ЧЩТБЦЕОЙС СЧМСАФУС РТЙУЧБЙЧБОЙСНЙ ЙМЙ ЧЩЪПЧБНЙ ЖХОЛГЙК. чУЕ РПВПЮОЩЕ ЬЖЖЕЛФЩ ЧЩРПМОЕОЙС ПРЕТБФПТБ-ЧЩТБЦЕОЙС РТПЙУИПДСФ ДП ЧЩРПМОЕОЙС УМЕДХАЭЕЗП ПРЕТБФПТБ. пРЕТБФПТ-ЧЩТБЦЕОЙЕ У ПФУХФУФЧХАЭЙН ЧЩТБЦЕОЙЕН ОБЪЩЧБЕФУС РХУФЩН ПРЕТБФПТПН. пО НПЦЕФ РТЙЗПДЙФШУС, ЕУМЙ ОЕПВИПДЙНП РПУФБЧЙФШ НЕФЛХ РЕТЕД УБНЩН ЛПОГПН УПУФБЧОПЗП ПРЕТБФПТБ ({) ЙМЙ ДМС ЪБДБОЙС РХУФПЗП ФЕМБ ПРЕТБФПТБ ГЙЛМБ while ($$R.6.5.1). R.6.3 уПУФБЧОПК ПРЕТБФПТ ЙМЙ ВМПЛ дМС ФЕИ УМХЮБЕЧ, ЛПЗДБ ЧНЕУФП ПДОПЗП ПРЕТБФПТБ ОХЦОП ЙУРПМШЪПЧБФШ ОЕУЛПМШЛП, РТЕДХУНПФТЕО УПУФБЧОПК ПРЕТБФПТ (ЙОПЗДБ ЕЗП ОБЪЩЧБАФ "ВМПЛ"). УПУФБЧОПК-ПРЕТБФПТ: { УРЙУПЛ-ПРЕТБФПТПЧ opt } УРЙУПЛ-ПРЕТБФПТПЧ: ПРЕТБФПТ УРЙУПЛ-ПРЕТБФПТПЧ ПРЕТБФПТ пФНЕФЙН, ЮФП ПРЙУБОЙЕ УЮЙФБЕФУС ПРЕТБФПТПН ($$R.6.7). R.6.4 чЩВЙТБАЭЙК ПРЕТБФПТ чЩВЙТБАЭЙЕ ПРЕТБФПТЩ ЧЩВЙТБАФ ПДОХ ЙЪ ОЕУЛПМШЛЙИ УФТХЛФХТ ХРТБЧМЕОЙС. ЧЩВЙТБАЭЙК-ПРЕТБФПТ: if ( ЧЩТБЦЕОЙЕ ) ПРЕТБФПТ if ( ЧЩТБЦЕОЙЕ ) ПРЕТБФПТ else ПРЕТБФПТ switch ( ЧЩТБЦЕОЙЕ ) ПРЕТБФПТ пРЕТБФПТ Ч ЧЩВЙТБАЭЕН-ПРЕТБФПТЕ ОЕ НПЦЕФ ВЩФШ ПРЙУБОЙЕН. R.6.4.1 пРЕТБФПТ if чЩТБЦЕОЙЕ ДПМЦОП ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ, ЙМЙ ФЙРБ ХЛБЪБФЕМС, ЙМЙ ФЙРБ ЛМБУУ, ДМС ЛПФПТПЗП УХЭЕУФЧХЕФ ПДОПЪОБЮОПЕ РТЕПВТБЪПЧБОЙЕ Ч БТЙЖНЕФЙЮЕУЛЙК ФЙР ЙМЙ ФЙР ХЛБЪБФЕМС ($$R.12.3). чЩЮЙУМСЕФУС ЧЩТБЦЕОЙЕ, Й ЕУМЙ ПОП ЙНЕЕФ ПФМЙЮОЩК ПФ ОХМС ТЕЪХМШФБФ, ЧЩРПМОСЕФУС РЕТЧЩК ЧМПЦЕООЩК ПРЕТБФПТ. еУМЙ ЙУРПМШЪПЧБОБ ЛПОУФТХЛГЙС else Й ЧЩТБЦЕОЙЕ ДБЕФ ТЕЪХМШФБФ 0, ЧЩРПМОСЕФУС ЧФПТПК ЧМПЦЕООЩК ПРЕТБФПТ. оЕПДОПЪОБЮОПУФШ Ч УМХЮБЕ ОЕУЛПМШЛЙИ ЛПОУФТХЛГЙСНЙ else ТБЪТЕЫБЕФУС РХФЕН ПФОЕУЕОЙС else Л РПУМЕДОЕНХ ЧУФТЕФЙЧЫЕНХУС if, ДМС ЛПФПТПЗП ОЕ ВЩМП else. R.6.4.2 пРЕТБФПТ РЕТЕЛМАЮБФЕМС пРЕТБФПТ РЕТЕЛМАЮБФЕМС ЧЩЪЩЧБЕФ РЕТЕДБЮХ ХРТБЧМЕОЙС ОБ ПДЙО ЙЪ ОЕУЛПМШЛЙИ ПРЕТБФПТПЧ Ч ЪБЧЙУЙНПУФЙ ПФ ЪОБЮЕОЙС ЧЩТБЦЕОЙС. чЩТБЦЕОЙЕ ДПМЦОП ВЩФШ ГЕМПЮЙУМЕООПЗП ФЙРБ ЙМЙ ФЙРБ ЛМБУУБ, ДМС ЛПФПТПЗП УХЭЕУФЧХЕФ ПДОПЪОБЮОПЕ РТЕПВТБЪПЧБОЙЕ Л ГЕМПЮЙУМЕООПНХ ФЙРХ ($$R.12.3). чЩРПМОСАФУС УФБОДБТФОЩЕ ГЕМПЮЙУМЕООЩЕ РТЕПВТБЪПЧБОЙС. мАВПК ЙЪ ПРЕТБФПТПЧ РЕТЕЛМАЮБФЕМС НПЦОП РПНЕФЙФШ ПДОЙН ЙМЙ ОЕУЛПМШЛЙНЙ РТЕЖЙЛУБНЙ, ЙНЕАЭЙНЙ ЧЙД: case ЧЩТБЦЕОЙЕ-ЛПОУФБОФБ : ъДЕУШ ЧЩТБЦЕОЙЕ-ЛПОУФБОФБ ($$R.5.19) РТЙЧПДЙФУС Л РТЕПВТБЪПЧБООПНХ ФЙРХ ЧЩТБЦЕОЙС РЕТЕЛМАЮБФЕМС. оЙЛБЛЙЕ ДЧЕ ЛПОУФБОФЩ ЙЪ case ПДОПЗП РЕТЕЛМАЮБФЕМС ОЕ ДПМЦОЩ ЙНЕФШ ПДЙОБЛПЧПЕ ЪОБЮЕОЙЕ. ч РЕТЕЛМАЮБФЕМЕ НПЦЕФ ВЩФШ ФПМШЛП ПДЙО РТЕЖЙЛУ ЧЙДБ default: пРЕТБФПТЩ РЕТЕЛМАЮБФЕМС НПЗХФ ВЩФШ ЧМПЦЕООЩНЙ, ФПЗДБ НЕФЛЙ ЙЪ case ЙМЙ default ПФОПУСФУС Л УБНПНХ РЕТЧПНХ РЕТЕЛМАЮБФЕМА, ПВЯЕНМАЭЕНХ ЙИ. рТЙ ЧЩРПМОЕОЙЙ ПРЕТБФПТБ РЕТЕЛМАЮБФЕМС ЧЩЮЙУМСЕФУС ЧЩТБЦЕОЙЕ, Й ЕЗП ЪОБЮЕОЙЕ УТБЧОЙЧБЕФУС У ЛБЦДПК ЙЪ ЛПОУФБОФ ЧБТЙБОФПЧ (case). еУМЙ ПДОБ ЙЪ ЬФЙИ ЛПОУФБОФ ТБЧОБ ЪОБЮЕОЙА ЧЩТБЦЕОЙС, ФП ХРТБЧМЕОЙЕ РЕТЕДБЕФУС Ч ПРЕТБФПТ, ЙДХЭЙК ЪБ ЬФПК ЛПОУФБОФПК. еУМЙ ОЙ ПДОБ ЙЪ ЛПОУФБОФ ОЕ УПЧРБМБ УП ЪОБЮЕОЙЕН ЧЩТБЦЕОЙС, ОП ЕУФШ РТЕЖЙЛУ default, ФП ХРТБЧМЕОЙЕ РЕТЕДБЕФУС ОБ ПРЕТБФПТ У ЬФЙН РТЕЖЙЛУПН. еУМЙ РТЕЖЙЛУБ default ОЕФ, Й УПЧРБДЕОЙС ОЕ ВЩМП, ФП ОЕ ЧЩРПМОСЕФУС ОЙ ПДЙО ЙЪ ПРЕТБФПТПЧ РЕТЕЛМАЮБФЕМС. еУМЙ ПРЕТБФПТЩ, ЧЩРПМОСЕНЩЕ Ч ТЕЪХМШФБФЕ ЧЩВПТБ, ОЕ РТЙЧПДСФ Л ЛБЛЙН-МЙВП РЕТЕДБЮБН ХРТБЧМЕОЙС, ФП РТПЗТБННБ РТПДПМЦБЕФ ЧЩРПМОСФШУС "РП НЕФЛБН case Й default" ВЕУРТЕРСФУФЧЕООП. чЩИПД ЙЪ РЕТЕЛМАЮБФЕМС ЧПЪНПЦЕО У РПНПЭША ПРЕТБФПТБ break (УН. $$R.6.6.1). пВЩЮОП ПРЕТБФПТ, У ЛПФПТЩН ЙНЕЕФ ДЕМП РЕТЕЛМАЮБФЕМШ, ВЩЧБЕФ УПУФБЧОЩН. пРЙУБОЙС НПЗХФ РПСЧЙФШУС Ч ПРЕТБФПТБИ РЕТЕЛМАЮБФЕМС. пДОБЛП РЕТЕИПД ОЙЦЕ ПРЙУБОЙС, Ч ЛПФПТПН ВЩМБ СЧОБС ЙМЙ ОЕСЧОБС ЙОЙГЙБМЙЪБГЙС, УЮЙФБЕФУС ОЕЪБЛПООЩН, ЕУМЙ ФПМШЛП ПРЙУБОЙЕ ОЕ ОБИПДЙФУС ЧП ЧОХФТЕООЕН ВМПЛЕ, ЛПФПТЩК ПВИПДЙФУС (Ф.Е. РПМОПУФША ПВИПДЙФУС РТЙ РЕТЕДБЮЕ ХРТБЧМЕОЙС, $$R.6.7). пФУАДБ УМЕДХЕФ, ЮФП ПРЙУБОЙЕ У СЧОПК ЙМЙ ОЕСЧОПК ЙОЙГЙБМЙЪБГЙЕК ДПМЦОП УПДЕТЦБФШУС ЧП ЧОХФТЕООЕН ВМПЛЕ. R.6.5 пРЕТБФПТЩ ГЙЛМБ ьФЙ ПРЕТБФПТЩ ЪБДБАФ ЧЙДЩ ГЙЛМБ. ПРЕТБФПТ-ГЙЛМБ: while ( ЧЩТБЦЕОЙЕ ) ПРЕТБФПТ do ПРЕТБФПТ while (ЧЩТБЦЕОЙЕ) for ( ПРЕТБФПТ-ЙОЙГ ЧЩТБЦЕОЙЕ opt ; ЧЩТБЦЕОЙЕ opt ) ПРЕТБФПТ ПРЕТБФПТ-ЙОЙГ: ПРЕТБФПТ-ЧЩТБЦЕОЙЕ ПРЕТБФПТ-ПРЙУБОЙЕ пВТБФЙФЕ ЧОЙНБОЙЕ, ЮФП ЛПОУФТХЛГЙС ПРЕТБФПТ-ЙОЙГ ЛПОЮБЕФУС ФПЮЛПК У ЪБРСФПК. пРЕТБФПТ Ч ПРЕТБФПТЕ-ГЙЛМБ ОЕ ДПМЦЕО ВЩФШ ПРЙУБОЙЕН. R.6.5.1 пРЕТБФПТ while ч ПРЕТБФПТЕ while ЧМПЦЕООЩК ПРЕТБФПТ ЧЩРПМОСЕФУС ДП ФЕИ РПТ, РПЛБ ЪОБЮЕОЙЕ ЧЩТБЦЕОЙС ОЕ УФБОЕФ ТБЧОЩН ОХМА. рТПЧЕТЛБ РТПЙУИПДЙФ РЕТЕД ЛБЦДЩН ЧЩРПМОЕОЙЕН ПРЕТБФПТБ. чЩТБЦЕОЙЕ ДПМЦОП ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ, ЙМЙ ФЙРБ ХЛБЪБФЕМС, ЙМЙ ФЙРБ ЛМБУУ, ДМС ЛПФПТПЗП УХЭЕУФЧХЕФ ПДОПЪОБЮОПЕ РТЕПВТБЪПЧБОЙЕ Ч БТЙЖНЕФЙЮЕУЛЙК ФЙР ЙМЙ ФЙР ХЛБЪБФЕМС ($$R.12.3). R.6.5.2 пРЕТБФПТ do ч ПРЕТБФПТЕ do ЧМПЦЕООЩК ПРЕТБФПТ ЧЩРПМОСЕФУС ДП ФЕИ РПТ, РПЛБ ЪОБЮЕОЙЕ ЧЩТБЦЕОЙС ОЕ УФБОЕФ ТБЧОЩН ОХМА. рТПЧЕТЛБ РТПЙУИПДЙФ РПУМЕ ЛБЦДПЗП ЧЩРПМОЕОЙС ПРЕТБФПТБ. чЩТБЦЕОЙЕ ДПМЦОП ВЩФШ БТЙЖНЕФЙЮЕУЛПЗП ФЙРБ, ЙМЙ ФЙРБ ХЛБЪБФЕМС, ЙМЙ ФЙРБ ЛМБУУ, ДМС ЛПФПТПЗП УХЭЕУФЧХЕФ ПДОПЪОБЮОПЕ РТЕПВТБЪПЧБОЙЕ Ч БТЙЖНЕФЙЮЕУЛЙК ФЙР ЙМЙ ФЙР ХЛБЪБФЕМС ($$R.12.3). R.6.5.3 пРЕТБФПТ for пРЕТБФПТ for for (ПРЕТБФПТ-ЙОЙГ ЧЩТБЦЕОЙЕ-1 opt ; ЧЩТБЦЕОЙЕ-2 opt ) ПРЕТБФПТ ЬЛЧЙЧБМЕОФЕО ЛПОУФТХЛГЙЙ ПРЕТБФПТ-ЙОЙГ while (ЧЩТБЦЕОЙЕ-1) { ПРЕТБФПТ ЧЩТБЦЕОЙЕ-2 ; } ЪБ ЙУЛМАЮЕОЙЕН ФПЗП ЖБЛФБ, ЮФП ПРЕТБФПТ continue Ч ПРЕТБФПТЕ for ЧЩЪПЧЕФ ЧЩРПМОЕОЙЕ ЧЩТБЦЕОЙЕ-2 РЕТЕД ФЕН& ЛБЛ ОБЮБФШ РПЧФПТОПЕ ЧЩЮЙУМЕОЙЕ ЧЩТБЦЕОЙС-1. фБЛЙН ПВТБЪПН, РЕТЧЩК ПРЕТБФПТ ЪБДБЕФ ЙОЙГЙБМЙЪБГЙА ДМС ГЙЛМБ, РЕТЧПЕ ЧЩТБЦЕОЙЕ РТПЙЪЧПДЙФ РТПЧЕТЛХ, ЧЩРПМОСЕНХА РЕТЕД ЛБЦДЩН ЫБЗПН ГЙЛМБ, ФБЛ ЮФП ГЙЛМ ЪБЧЕТЫБЕФУС, ЛПЗДБ ЧЩТБЦЕОЙЕ УФБОПЧЙФУС ОХМЕН, Б ЧФПТПЕ ЧЩТБЦЕОЙЕ ПВЩЮОП ЪБДБЕФ РТЙТБЭЕОЙЕ, Й ПОП ДПВБЧМСЕФУС РПУМЕ ЛБЦДПЗП ЫБЗБ ГЙЛМБ. рЕТЧПЕ ЧЩТБЦЕОЙЕ ДПМЦОП ЙНЕФШ БТЙЖНЕФЙЮЕУЛЙК ФЙР, ЙМЙ ФЙР ХЛБЪБФЕМС, ЙМЙ ФЙР ЛМБУУБ, ДМС ЛПФПТПЗП УХЭЕУФЧХЕФ ПДОПЪОБЮОПЕ РТЕПВТБЪПЧБОЙЕ Л БТЙЖНЕФЙЮЕУЛПНХ ФЙРХ ЙМЙ ФЙРХ ХЛБЪБФЕМС ($$R.12.3). нПЗХФ ВЩФШ ПРХЭЕОЩ ПДОП ЙМЙ ПВБ ЧЩТБЦЕОЙС. еУМЙ ПФУХФУФЧХЕФ ЧЩТБЦЕОЙЕ-1, ФП ЬЛЧЙЧБМЕОФОЩК ГЙЛМ У while ЙНЕЕФ ХУМПЧЙЕ while (1). еУМЙ ПРЕТБФПТ-ЙОЙГ СЧМСЕФУС ПРЙУБОЙЕН, ПВМБУФШ ЧЙДЙНПУФЙ ЙНЕО, ПРЙУБООЩИ Ч ОЕН, РТПУФЙТБЕФУС ДП ЛПОГБ ВМПЛБ, ЪБЛТЩЧБАЭЕЗП ПРЕТБФПТ for. R.6.6 пРЕТБФПТЩ РЕТЕИПДБ пРЕТБФПТЩ РЕТЕИПДБ ДЕМБАФ ВЕЪХУМПЧОХА РЕТЕДБЮХ ХРТБЧМЕОЙС. ПРЕТБФПТ-РЕТЕИПДБ: break ; continue ; return ЧЩТБЦЕОЙЕ opt ; goto ЙДЕОФЙЖЙЛБФПТ ; рП ЧЩИПДЕ ЙЪ ПВМБУФЙ ЧЙДЙНПУФЙ (ЛБЛЙН ВЩ ПВТБЪПН ЬФП ОЕ РТПЙЪПЫМП) ЧЩЪЩЧБАФУС ДЕУФТХЛФПТЩ ($$R.12.4) ДМС ЧУЕИ ПВЯЕЛФПЧ ЛМБУУПЧ, РПУФТПЕООЩИ Ч ЬФПК ПВМБУФЙ, ЛПФПТЩЕ ЕЭЕ ОЕ ВЩМЙ ХОЙЮФПЦЕОЩ. ьФП ПФОПУЙФУС ЛБЛ Л СЧОП ПРЙУБООЩН ПВЯЕЛФБН, ФБЛ Й ЛП ЧТЕНЕООЩН ПВЯЕЛФБН ($$R.12.2). R.6.6.1 пРЕТБФПТ break пРЕТБФПТ break НПЦЕФ ЧУФТЕФЙФШУС ФПМШЛП Ч ПРЕТБФПТЕ ГЙЛМБ ЙМЙ РЕТЕЛМАЮБФЕМЕ, ПО РТЙЧПДЙФ Л ПЛПОЮБОЙА ВМЙЦБКЫЕЗП ЙЪ ПВЯЕНМАЭЙИ ЕЗП ПРЕТБФПТПЧ ГЙЛМБ ЙМЙ РЕТЕЛМАЮБФЕМЕК. хРТБЧМЕОЙЕ РЕТЕДБЕФУС ОБ ПРЕТБФПТ, УМЕДХАЭЙК ОЕРПУТЕДУФЧЕООП ЪБ ЪБЛБОЮЙЧБЕНЩН, ЕУМЙ ФБЛПК ЕУФШ. R.6.6.2 пРЕТБФПТ continue пРЕТБФПТ continue НПЦЕФ ЧУФТЕФЙФШУС ФПМШЛП Ч ПРЕТБФПТЕ ГЙЛМБ Й РТЙЧПДЙФ Л РЕТЕДБЮЕ ХРТБЧМЕОЙС Ч ЪБЗПМПЧПЛ ВМЙЦБКЫЕЗП ЙЪ ПВЯЕНМАЭЙИ ПРЕТБФПТПЧ ГЙЛМБ, Ф.Е. Ч ЛПОЕГ ГЙЛМБ. вПМЕЕ ФПЮОП НПЦОП УЛБЪБФШ, ЮФП Ч ЛБЦДПН ЙЪ ПРЕТБФПТПЧ: while (foo) { do { for (;;) { // ... // ... // ... contin: ; contin: ; contin: ; } } while (foo); } ПРЕТБФПТ continue, ОЕ ПФОПУСЭЙКУС ЛП ЧОЕЫОЙН ПРЕТБФПТБН ГЙЛМБ, ЬЛЧЙЧБМЕОФЕО ПРЕТБФПТХ goto contin. R.6.6.3 пРЕТБФПТ return чПЪЧТБФ ЙЪ ЖХОЛГЙЙ Ч ПВТБФЙЧЫХАУС Л ОЕК ЖХОЛГЙА РТПЙУИПДЙФ У РПНПЭША ПРЕТБФПТБ return. пРЕТБФПТ return ВЕЪ ЧЩТБЦЕОЙС НПЦОП ЙУРПМШЪПЧБФШ ФПМШЛП Ч ЖХОЛГЙСИ, ЛПФПТЩЕ ОЕ ЧПЪЧТБЭБАФ ЪОБЮЕОЙЕ, Ф.Е. Ч ЖХОЛГЙСИ, ЧПЪЧТБЭБАЭЙИ ЪОБЮЕОЙЕ ФЙРБ void, ЙМЙ Ч ЛПОУФТХЛФПТБИ ($$R.12.1) Й ДЕУФТХЛФПТБИ ($$R.12.4). пРЕТБФПТ return У ЧЩТБЦЕОЙЕН НПЦОП ЙУРПМШЪПЧБФШ ФПМШЛП Ч ЖХОЛГЙСИ, ЛПФПТЩЕ ЧПЪЧТБЭБАФ ЪОБЮЕОЙЕ. ъОБЮЕОЙЕ ЧЩТБЦЕОЙС РЕТЕДБЕФУС Ч ФХ ЖХОЛГЙА,ЛПФПТБС ЧЩЪЧБМБ ДБООХА ЖХОЛГЙА. еУМЙ ОХЦОП, ЪОБЮЕОЙЕ РТЕПВТБЪХЕФУС Л ФЙРХ ЖХОЛГЙЙ, Ч ЛПФПТПК ЧЩРПМОСЕФУС return, РП ФЕН ЦЕ РТБЧЙМБН ЛБЛ РТЙ ЙОЙГЙБМЙЪБГЙЙ. ьФП НПЦЕФ РТЙЧЕУФЙ Л ЧЩЪПЧХ ЛПОУФТХЛФПТБ ЙМЙ ЛПРЙТПЧБОЙА ЧТЕНЕООЩИ ПВЯЕЛФПЧ ($$R.12.2). чЩИПД ЙЪ ЖХОЛГЙЙ РП ЛПОГХ ЬЛЧЙЧБМЕОФЕО ЧПЪЧТБФХ ВЕЪ ЧЩДБЧБЕНПЗП ЪОБЮЕОЙС, ЮФП СЧМСЕФУС ОЕЪБЛПООЩН ДМС ЖХОЛГЙЙ, ЧПЪЧТБЭБАЭЕК ЪОБЮЕОЙЕ. R.6.6.4 пРЕТБФПТ goto пРЕТБФПТ goto ВЕЪХУМПЧОП РЕТЕДБЕФ ХРТБЧМЕОЙЕ ОБ ПРЕТБФПТ, РПНЕЮЕООЩК ЙДЕОФЙЖЙЛБФПТПН. йДЕОФЙЖЙЛБФПТ ДПМЦЕО ВЩФШ НЕФЛПК ($$R.6.1), ОБИПДСЭЕКУС Ч ФЕЛХЭЕК ЖХОЛГЙЙ. R.6.7 пРЕТБФПТ ПРЙУБОЙС пРЕТБФПТ ПРЙУБОЙС ЪБЧПДЙФ Ч ВМПЛЕ ОПЧЩК ЙДЕОФЙЖЙЛБФПТ Й ЙНЕЕФ ЧЙД: ПРЕТБФПТ-ПРЙУБОЙС: ПРЙУБОЙЕ еУМЙ ЙДЕОФЙЖЙЛБФПТ, ЧЧЕДЕООЩК У РПНПЭША ПРЙУБОЙС, ХЦЕ ВЩМ ТБОЕЕ ПРЙУБО ЧП ЧОЕЫОЕН ВМПЛЕ, ЧОЕЫОЕЕ ПРЙУБОЙЕ УФБОПЧЙФУС УЛТЩФЩН ДП ЛПОГБ ВМПЛБ, РПУМЕ ЮЕЗП ПОП ПРСФШ ЧУФХРБЕФ Ч УЙМХ. чУЕ ЙОЙГЙБМЙЪБГЙЙ БЧФПНБФЙЮЕУЛЙИ (auto) Й ТЕЗЙУФТПЧЩИ (register) РЕТЕНЕООЩИ РТПЙЪЧПДСФУС ЛБЦДЩК ТБЪ, ЛПЗДБ ЧЩРПМОСЕФУС ПРЕТБФПТ-ПРЙУБОЙЕ. хОЙЮФПЦЕОЙЕ МПЛБМШОЩИ РЕТЕНЕООЩИ, ПРЙУБООЩИ Ч ВМПЛЕ, РТПЙУИПДЙФ РТЙ ЧЩИПДЕ ЙЪ ВМПЛБ ($$R.6.6). хОЙЮФПЦЕОЙЕ БЧФПНБФЙЮЕУЛЙИ РЕТЕНЕООЩИ, ПРТЕДЕМЕООЩИ Ч ГЙЛМЕ, РТПЙУИПДЙФ ОБ ЛБЦДПН ЫБЗЕ ГЙЛМБ. оБРТЙНЕТ, РЕТЕНЕООБС Index j УПЪДБЕФУС Й ХОЙЮФПЦБЕФУС ЛБЦДЩК ТБЪ Ч ФЕЮЕОЙЕ ГЙЛМБ РП i: for (int i = 0; i<100; i++) for (Index j = 0; j<100; j++) { // ... } чЩИПД ЙЪ ГЙЛМБ ЙМЙ ЙЪ ВМПЛБ ЙМЙ РЕТЕИПД, НЙОХС ЙОЙГЙБМЙЪБГЙА БЧФПНБФЙЮЕУЛЙИ РЕТЕНЕООЩИ, РТЙЧПДЙФ Л ХОЙЮФПЦЕОЙА БЧФПНБФЙЮЕУЛЙИ РЕТЕНЕООЩИ, ПРЙУБООЩИ Ч ФПЮЛЕ, ПФЛХДБ РТПЙУИПДЙФ РЕТЕИПД, ОП ОЕ Ч ФПЮЛЕ, ЛХДБ РТПЙУИПДЙФ РЕТЕИПД. рЕТЕИПД Ч ВМПЛ ЧПЪНПЦЕО РТЙ ХУМПЧЙЙ, ЮФП ПО ОЕ РТЙЧПДЙФ Л РТПРХУЛХ ЙОЙГЙБМЙЪБГЙЙ. уЮЙФБЕФУС ОЕЪБЛПООЩН РЕТЕИПД, ПВИПДСЭЙК ПРЙУБОЙЕ У СЧОПК ЙМЙ ОЕСЧОПК ЙОЙГЙБМЙЪБГЙЕК, ЛТПНЕ УМХЮБЕЧ, ЛПЗДБ ПОП ОБИПДЙФУС ЧП ЧОХФТЕООЕН ВМПЛЕ, ЛПФПТЩК РТПРХУЛБЕФУС (Ф.Е. Ч ОЕЗП ОЙЛПЗДБ ОЕ РПРБДБЕФ ХРТБЧМЕОЙЕ) ЙМЙ РЕТЕИПД РТПЙУИПДЙФ ЙЪ ФПК ФПЮЛЙ, ЗДЕ ХЦЕ ВЩМБ ЙОЙГЙБМЙЪБГЙС РЕТЕНЕООПК. оБРТЙНЕТ, void f() { // ... goto lx; //ПЫЙВЛБ: РЕТЕИПД, НЙОХС ЙОЙГЙБМЙЪБГЙА // ... ly: X a = 1; // ... lx: goto ly; // ОПТНБМШОП, ЪБ РЕТЕИПДПН ВХДЕФ ЧЩЪПЧ // ДЕУФТХЛФПТБ ДМС `a' } бЧФПНБФЙЮЕУЛБС РЕТЕНЕООБС, ЛПФПТБС ВЩМБ УПЪДБОБ РТЙ ОЕЛПФПТПН ХУМПЧЙЙ, ХОЙЮФПЦБЕФУС РТЙ ЧЩРПМОЕОЙЙ ЬФПЗП ХУМПЧЙС, Й ОЕ НПЦЕФ ВЩФШ ДПУФХРОБ ЧОЕ РТПЧЕТЛЙ ЬФПЗП ХУМПЧЙС. оБРТЙНЕТ, if (i) for (int j = 0; j<100; j++) { // ... } if (j!=100) // ПЫЙВЛБ: ПВТБЭЕОЙЕ ЧОЕ ХУМПЧЙС // ... ; йОЙГЙБМЙЪБГЙС МПЛБМШОПЗП ПВЯЕЛФБ У ЛМБУУПН РБНСФЙ static ($$R.7.1.1) РТПЙЪЧПДЙФУС РТЕЦДЕ, ЮЕН ХРТБЧМЕОЙЕ РТПКДЕФ ЮЕТЕЪ ПВМБУФШ ЕЗП ПРЙУБОЙС. еУМЙ УФБФЙЮЕУЛБС РЕТЕНЕООБС ЙОЙГЙБМЙЪЙТХЕФУС ЧЩТБЦЕОЙЕН, ЛПФПТПЕ ОЕ СЧМСЕФУС ЧЩТБЦЕОЙЕН-ЛПОУФБОФПК, ФП РЕТЕД РЕТЧЩН ЧИПДПН Ч ВМПЛ РТПЙУИПДЙФ УФБОДБТФОБС ЙОЙГЙБМЙЪБГЙС ОХМЕН, РТЙЧЕДЕООЩН Л ОХЦОПНХ ФЙРХ ($$R.8.4). дЕУФТХЛФПТ ДМС МПЛБМШОПЗП УФБФЙЮЕУЛПЗП ПВЯЕЛФБ ВХДЕФ ЧЩЪЩЧБФШУС Ч ФПН Й ФПМШЛП Ч ФПН УМХЮБЕ, ЕУМЙ РЕТЕНЕООБС ВЩМБ УПЪДБОБ У РПНПЭША ЛПОУФТХЛФПТБ. дЕУФТХЛФПТ ДПМЦЕО ЧЩЪЩЧБФШУС УТБЪХ РЕТЕД ЧЩЪПЧПН ЙМЙ ЛБЛ УПУФБЧОБС ЮБУФШ ЧЩЪПЧБ ЖХОЛГЙК, ЪБДБООЩИ Ч atexit() ($$R.3.4). R.6.8 тБЪТЕЫЕОЙЕ ОЕПДОПЪОБЮОПУФЙ уХЭЕУФЧХЕФ ОЕПДОПЪОБЮОПУФШ Ч ЗТБННБФЙЛЕ СЪЩЛБ, ЛБУБАЭБСУС ПРЕТБФПТБ-ЧЩТБЦЕОЙС Й ПРЙУБОЙС, Б ЙНЕООП, ПРЕТБФПТ-ЧЩТБЦЕОЙЕ, УПДЕТЦБЭЙК ЛБЛ УБНПЕ МЕЧПЕ РПДЧЩТБЦЕОЙЕ СЧОПЕ РТЕПВТБЪПЧБОЙЕ ФЙРБ, ЪБДБООПЕ Ч ЖХОЛГЙПОБМШОПН УФЙМЕ ($$R.5.2.3), НПЦЕФ ВЩФШ ОЕ ПФМЙЮЙН ПФ ПРЙУБОЙС, Ч ЛПФПТПН РЕТЧЩК ПРЙУБФЕМШ ОБЮЙОБЕФУС УП (. ч ФБЛЙИ УМХЮБСИ ПРЕТБФПТ УЮЙФБЕФУС ПРЙУБОЙЕН. дМС ТБЪТЕЫЕОЙС ОЕПДОПЪОБЮОПУФЙ УМЕДХЕФ ЙУУМЕДПЧБФШ ЧЕУШ ПРЕТБФПТ, ЮФПВЩ ПРТЕДЕМЙФШ СЧМСЕФУС ПО ПРЕТБФПТПН-ЧЩТБЦЕОЙЕН ЙМЙ ПРЙУБОЙЕН. фБЛ ХУФТБОСЕФУС ОЕПДОПЪОБЮОПУФШ ЧП НОПЗЙИ УМХЮБСИ. оБРТЙНЕТ, РХУФШ T - ЙНС-РТПУФПЗП-ФЙРБ ($$R.7.1.6), ФПЗДБ ЙНЕЕН T(a)->m = 7; // ПРЕТБФПТ-ЧЩТБЦЕОЙЕ T(a)++; // ПРЕТБФПТ-ЧЩТБЦЕОЙЕ T(a,5)<<c; // ПРЕТБФПТ-ЧЩТБЦЕОЙЕ T(*e)(int); // ПРЙУБОЙЕ T(f)[]; // ПРЙУБОЙЕ T(g) = {1, 2 }; // ПРЙУБОЙЕ T(*d)(double(3)); // ПРЙУБОЙЕ пУФБМШОЩЕ УМХЮБЙ РТЕДУФБЧМСАФ ПРЙУБОЙС. оБРТЙНЕТ, T(a); // ПРЙУБОЙЕ T(*b)(); // ПРЙУБОЙЕ T(c)=7; // ПРЙУБОЙЕ T(d),e,f=3; // ПРЙУБОЙЕ T(g)(h,2); // ПРЙУБОЙЕ оЕПДОПЪОБЮОПУФШ ЪДЕУШ ЮЙУФП УЙОФБЛУЙЮЕУЛБС, Ф.Е. ОБ ЕЕ ТБЪТЕЫЕОЙЕ ОЕ ЧМЙСЕФ ФПФ ЖБЛФ, СЧМСЕФУС МЙ ЙНС ЙНЕОЕН-ФЙРБ ЙМЙ ОЕФ. еУФШ ДТХЗПК ЧЙД ЛПММЙЪЙЙ НЕЦДХ ПРЕТБФПТПН-ЧЩТБЦЕОЙЕН Й ПРЙУБОЙЕН, ЛПФПТЩК ТБЪТЕЫБЕФУС ФТЕВПЧБОЙЕН, ЮФПВЩ ПРЙУБОЙЕ ЖХОЛГЙЙ Ч ВМПЛЕ ($$R.6.3) УПРТПЧПЦДБМПУШ ЙНЕОЕН-ФЙРБ, ОБРТЙНЕТ: void g() { int f(); // ПРЙУБОЙЕ int a; // ПРЙУБОЙЕ f(); // ПРЕТБФПТ-ЧЩТБЦЕОЙЕ a; // ПРЕТБФПТ-ЧЩТБЦЕОЙЕ } R.7 пРЙУБОЙС пРЙУБОЙС ЙУРПМШЪХАФУС ДМС ЙОФЕТРТЕФБГЙЙ ЛБЦДПЗП ЙЪ ЙДЕОФЙЖЙЛБФПТПЧ; ОЕПВСЪБФЕМШОП, ЮФПВЩ ПОЙ УПРТПЧПЦДБМЙУШ ЧЩДЕМЕОЙЕН РБНСФЙ, УПРПУФБЧМСЕНПК У ЙДЕОФЙЖЙЛБФПТПН. пРЙУБОЙС ЙНЕАФ ЧЙД ПРЙУБОЙС: УРЕГЙЖЙЛБГЙЙ-ПРЙУБОЙС opt УРЙУПЛ-ПРЙУБФЕМЕК opt ; ПРЙУБОЙЕ-asm ПРТЕДЕМЕОЙЕ-ЖХОЛГЙЙ УРЕГЙЖЙЛБГЙС-УЧСЪЙ пРЙУБФЕМЙ Ч УРЙУЛЕ-ПРЙУБФЕМЕК ($$R.8) УПДЕТЦБФ ПРЙУЩЧБЕНЩЕ ЙДЕОФЙЖЙЛБФПТЩ. лПОУФТХЛГЙС УРЕГЙЖЙЛБГЙЙ-ПРЙУБОЙС НПЦЕФ ПФУХФУФЧПЧБФШ ФПМШЛП Ч ПРТЕДЕМЕОЙЙ ЖХОЛГЙК ($$R.8.3) ЙМЙ Ч ПРЙУБОЙЙ ЖХОЛГЙК. уРЙУПЛ-ПРЙУБФЕМЕК НПЦЕФ ВЩФШ РХУФЩН, ФПМШЛП РТЙ ПРЙУБОЙЙ ЛМБУУБ ($$R.9) ЙМЙ РЕТЕЮЙУМЕОЙС ($$R.7.2), Ф.Е. ЛПЗДБ УРЕГЙЖЙЛБГЙС-ПРЙУБОЙС ЕУФШ УРЕГЙЖЙЛБГЙС-ЛМБУУБ ЙМЙ УРЕГЙЖЙЛБГЙС-РЕТЕЮЙУМЕОЙС. лПОУФТХЛГЙС ПРЙУБОЙЕ-asm ПВЯСУОСЕФУС Ч $$R.7.3, Б УРЕГЙЖЙЛБГЙС-УЧСЪЙ Ч $$R.7.4. пРЙУБОЙЕ РТПЙУИПДЙФ Ч ПРТЕДЕМЕООПК ПВМБУФЙ ЧЙДЙНПУФЙ ($$R.3.2), РТБЧЙМБ ПВМБУФЙ ЧЙДЙНПУФЙ РТЙЧПДСФУС Ч $$R.10.4. R.7.1 уРЕГЙЖЙЛБГЙЙ ч ПРЙУБОЙЙ НПЦОП ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ УРЕГЙЖЙЛБГЙЙ: УРЕГЙЖЙЛБГЙС-ПРЙУБОЙС: УРЕГЙЖЙЛБГЙС-ЛМБУУБ-РБНСФЙ УРЕГЙЖЙЛБГЙС-ФЙРБ УРЕГЙЖЙЛБГЙС-fct УРЕГЙЖЙЛБГЙС-ЫБВМПОБ-ФЙРБ friend typedef УРЕГЙЖЙЛБГЙЙ-ПРЙУБОЙС: УРЕГЙЖЙЛБГЙЙ-ПРЙУБОЙС opt УРЕГЙЖЙЛБГЙС-ПРЙУБОЙС уБНБС ДМЙООБС РПУМЕДПЧБФЕМШОПУФШ ЛПОУФТХЛГЙК УРЕГЙЖЙЛБГЙС-ПРЙУБОЙС, ЛПФПТБС, ЧПЪНПЦОП, СЧМСЕФУС ЙНЕОЕН ФЙРБ, ПВТБЪХЕФ Ч ПРЙУБОЙЙ ЛПОУФТХЛГЙА УРЕГЙЖЙЛБГЙЙ-ПРЙУБОЙС. рПУМЕДПЧБФЕМШОПУФШ ДПМЦОБ ВЩФШ УПЗМБУПЧБООПК, ЮФП ПВЯСУОСЕФУС ОЙЦЕ. оБРТЙНЕТ, typedef char* Pc; static Pc; // ПЫЙВЛБ: ОЕФ ЙНЕОЙ ъДЕУШ ПРЙУБОЙЕ static Pc СЧМСЕФУС ОЕЪБЛПООЩН, РПУЛПМШЛХ ОЕ ХЛБЪБОП ОЙЛБЛПЗП ЙНЕОЙ УФБФЙЮЕУЛПК РЕТЕНЕООПК ФЙРБ Pc. юФПВЩ ЙНЕФШ РЕТЕНЕООХА ФЙРБ int У ЙНЕОЕН Pc, ОЕПВИПДЙНП ЪБДБФШ УРЕГЙЖЙЛБГЙА-ФЙРБ int, ЮФПВЩ РПЛБЪБФШ, ЮФП (РЕТЕ)ПРТЕДЕМСЕФУС ЙНС Pc ЙЪ typedef, Б ОЕ РТПУФП Pc СЧМСЕФУС ПДОЙН ЙЪ ЬМЕНЕОФПЧ РПУМЕДПЧБФЕМШОПУФЙ ЛПОУФТХЛГЙК УРЕГЙЖЙЛБГЙС-ПРЙУБОЙС, ОБРТЙНЕТ, void f(const Pc); // void f(char* const) void g(const int Pc); // void g(const int) хЛБЦЕН, ЮФП РПУЛПМШЛХ signed, unsigned, long Й short РП ХНПМЮБОЙА ФТБЛФХАФУС ЛБЛ int, ЛПОУФТХЛГЙС ЙНС-typedef, ЛПФПТБС РПСЧМСЕФУС РПУМЕ ПДОПК ЙЪ РЕТЕЮЙУМЕООЩИ УРЕГЙЖЙЛБГЙК ФЙРБ, ДПМЦОБ ЪБДБЧБФШ (РЕТЕ)ПРТЕДЕМСЕНПЕ ЙНС, ОБРТЙНЕТ, void h(unsigned Pc); // void h(unsigned int) void k(unsigned int Pc); // void k(unsigned int) R.7.1.1 уРЕГЙЖЙЛБГЙЙ ЛМБУУБ РБНСФЙ уРЕГЙЖЙЛБГЙЙ ЛМБУУБ РБНСФЙ НПЗХФ ВЩФШ ФБЛЙЕ: УРЕГЙЖЙЛБГЙС-ЛМБУУБ-РБНСФЙ: auto register static extern уРЕГЙЖЙЛБГЙЙ auto Й register НПЗХФ РТЙНЕОСФШУС ФПМШЛП ДМС ЙНЕО ПВЯЕЛФПЧ, ЛПФПТЩЕ ПРЙУБОЩ Ч ВМПЛЕ ($$R.6.3), ЙМЙ ДМС ЖПТНБМШОЩИ РБТБНЕФТПЧ ($$R.8.3). рПЮФЙ ЧУЕЗДБ УРЕГЙЖЙЛБГЙС auto ЙЪВЩФПЮОБ Й ЙУРПМШЪХЕФУС ОЕ ЮБУФП, ФБЛ, auto ЙУРПМШЪХЕФУС, ЮФПВЩ СЧОП ПФДЕМЙФШ ПРЕТБФПТ-ПРЙУБОЙЕ ПФ ПРЕТБФПТБ-ЧЩТБЦЕОЙС ($$R.6.2). пРЙУБОЙЕ register СЧМСЕФУС ПРЙУБОЙЕН auto, ЛПФПТПЕ РПДУЛБЪЩЧБЕФ ФТБОУМСФПТХ, ЮФП ПРЙУЩЧБЕНЩЕ РЕТЕНЕООЩЕ ВХДХФ ЙУРПМШЪПЧБФШУС ДПУФБФПЮОП ЙОФЕОУЙЧОП. рПДУЛБЪЛБ НПЦЕФ ВЩФШ РТПЙЗОПТЙТПЧБОБ, Й ЧП НОПЗЙИ ТЕБМЙЪБГЙСИ ПОБ ЙЗОПТЙТХЕФУС Ч ФПН УМХЮБЕ, ЛПЗДБ ВЕТЕФУС БДТЕУ РЕТЕНЕООПК. пРЙУБОЙЕ ПВЯЕЛФБ УЮЙФБЕФУС ПРТЕДЕМЕОЙЕН, ЕУМЙ ФПМШЛП ПОП ОЕ УПДЕТЦЙФ УРЕГЙЖЙЛБГЙЙ extern Й ЙОЙГЙБМЙЪБГЙЙ ($$R.3.1). пРТЕДЕМЕОЙЕ РТЙЧПДЙФ Л ЧЩДЕМЕОЙА РБНСФЙ УППФЧЕФУФЧХАЭЕЗП ТБЪНЕТБ Й ЧЩРПМО