.

Turbo C++ Programer`s guide

Язык: русский
Формат: реферат
Тип документа: Word Doc
66 15028
Скачать документ

TURBO C++

Version 1.0

Programmer’s Guide

.
– 2 –

?F« c«Y?Y

‚cY¤Y?Y……………………………………………
‘®¤Ya¦ ?Y ¤ ®F® aa?®c®¤aac ……………………….
?« c  1 ‘a ¤ aa i§e?  Turbo C++……………….
‘?a ?a?a ? aYa¬?®«®F?i…………………………….
?a ¬¬ a?cYa??Y ?a c?«  aaaa?aaae aea § ? «Y?a??? i§e? …..
˜a®!Y«ieY a?¬c®«e………………………………….
“‘?«Y?c ?Y” aaa®? a?¬c®«®¬ \………………………
?®¬¬Ya a??………………………………………..
?®¬¬Ya a?? C…………………………………….
‚«®¦YeY ?®¬¬Ya a??……………………………..
?®¬¬Ya a?? C++…………………………………..
˜ §¤Y«?aY«? ?®¬¬Ya a?Yc ? ?a®!Y«e………………….
‹Y?aY¬e……………………………………………
?«icYceY a«®c ……………………………………
?¤Ya?ae?? a®ae……………………………………
?®aa ae………………………………………..
?®aa ae ? ?a caaaYYY ?aY¤aa c«Y?Y……………..
???a ?Y ®?Ya ae?©…………………………………..
“ aeY ®?Ya ae?? ………………………………..
˜? aeY ®?Ya ae??…………………………………
˜a?aa a®ae ……………………………………
?!eic«Y?i…………………………………………
?!eY?ae ……………………………………….
?¬Yaie?Y cea ¦Y?i (Lvalues) ……………………
’??e ? ?« aae ? ¬ia? ……………………………
?®aY?aa ………………………………………
‚?¤?¬®aai………………………………………..
˜a®¤®«¦?aY«i®aai…………………………………
…¤??aee aa a«iae?? ……………………………….
?®¬?®®c?  ………………………………………
‘?a ?a?a ®!eic«Y?i………………………………..
˜aY¤c a?aY«ieY ®?aY¤Y«Y?i ……………………..
‚®§¬®¦eY ®!eic«Y?i ……………………………
‚Ye?Y ®!eic«Y?i ? ®?aY¤Y«Y?i …………………
‘?Yae?ae?? a®ae a??  ……………………………….
’ ?a®®¬?i a??  ………………………………..
”a¤ ¬Ya «ieY a??e ……………………………
??ae? «?§ ae?i…………………………………….
˜a®aaeY ®!eic«Y?i………………………………..
‘?Yae?ae?? a®ae ?« aa  ? ¬ia?………………………..
?®¤?ae?? a®ae……………………………………..
‘«®¦eY ®!eic«Y?i ? ¤Y?« a a®ae……………………
“? § aY«?………………………………………….
“? § aY«? ®!eY?a®c………………………………..
“? § aY«? aea?ae?©…………………………………
?!eic«Y?i a? § aY«Y© …………………………..
“? § aY«? ? ?®aa ae …………………………..
?a?ae¬Ya?cYa??Y ®?Ya ae?? a a? § aY«i¬? …………….
˜aY®!a §®c ?i a? § aY«Y©………………………….
?!eic«Y?i aae«®? c ‘++ …………………………
? aa?ce …………………………………………
”a?ae??……………………………………………
?!eic«Y?i ? ®?aY¤Y«Y?i ………………………..
?!eic«Y?i ? ?a®a®a??e ………………………….
?!eic«Y?i ………………………………………
?!eic«Y?i ae®a¬ «iea ? a ¬Yaa®c …………………
‚e§®ce aea?ae?© ? ?aY®!a §®c ?i  aFa¬Ya®c ………….
‘aaa?aaae………………………………………….
‘aaa?aaae !Y§ aYF®c ? ®?aY¤Y«Y?i a??®c (typedef)…….
?!eic«Y?i ?®¬?®Ya®c aaaa?aaae …………………
‘aaa?aaae ? aea?ae?? …………………………….
„®aaa? ? ?®¬?®Yaa aaaa?aaae ……………………

– 3 –
‚ea c?c ?Y ?® Fa ?aeY a«®c  ……………………
˜a®aaa aac® ?¬Y aaaa?aaa ………………………..
˜Y?®«eY ®!eic«Y?i …………………………….
˜?a®ceY ?®«i …………………………………..
?!eY¤?Y?i………………………………………..
?!eic«Y?i ®!eY¤?Y?© …………………………..
˜YaYc?a«?¬eY ¤ eY…………………………………
‚ea ¦Y?i………………………………………….
‚ea ¦Y?i ? Turbo C++ …………………………..
˜®a«Y¤®c aY«i®aai cec?a«Y?© ……………………
?e?!?? ? ?YaY?®«Y?i …………………………..
‘Y¬ a??  ®?Ya ae?©………………………………….
˜®aaae??aeY ? ?aYae??aeY ®?Ya ae??…………………..
??Ya ae?? ??aY¬Ya  ? ¤Y?aY¬Ya  …………………
“ aeY ®?Ya ae?? ……………………………….
??Ya ae?i sizeof ……………………………….
??Ya ae?? a??  a¬®¦Y?i …………………………
??Ya ae?? a??  a«®¦Y?i ………………………….
??Ya ae?? ?®a §ai¤®F® a¤c?F  …………………….
??Ya ae?? ®a®eY?i ……………………………….
??Ya ae?? a??  a cYaac  …………………………
??Ya ae?i ?®a §ai¤®F® ? & ………………………..
??Ya ae?i ?®a §ai¤®F® ?a?«ic ieYF® ?‹? ^……………
??Ya ae?i ?®a §ai¤®F® c?«ic ieYF® ?‹? \!……………
??Ya ae?i «®F?cYa?®F® ? &&…………………………
??Ya ae?i «®F?cYa?®F® ?‹? \!\!……………………..
“a«®c i ®?Ya ae?i ?:………………………………
??Ya ae?? ?a?ac®Y?i …………………………….
??Ya ae?i a § ?ia®©………………………………..
??Ya a®ae………………………………………….
˜«®?? …………………………………………
??Ya a®ae-a-¬Ya? ¬? …………………………….
??Ya a®ae-cea ¦Y?i …………………………….
??Ya a®ae ce!®a  ……………………………….
??Ya a®ae ?aYa ae?? ……………………………….
??Ya a®ae ?YaYa®¤  ……………………………….
‘++……………………………………………….
‘ae«?? ………………………………………..
??Ya ae?i ¤®aaa?  ? ?®aY?aaa …………………….
??Ya ae?? new ? delete …………………………..
?« aae ………………………………………..
‚?aaa «ieY ! §®ceY ?« aae ………………………..
“„aa§ii” ?« aa®c (friend)………………………….
?®aaaa?a®ae ? ¤Yaaaa?a®ae ………………………..
?®aaaa?a®ae …………………………………..
„Yaaaa?a®ae ……………………………………
˜YaYFaa¦YeY ®?Ya ae?? ………………………….
??Ya ae??-aea?ae?? ………………………………..
‚?aaa «ieY aea?ae??……………………………….
?!aaa ?aeY ?« aae ……………………………….
?®aY?aa ‘++ …………………………………..
„?aY?a?ce ?aY?a®aeYaa®a  Turbo C++…………………….
˜aaa i ¤?aY?a?c  # ……………………………….
„?aY?a?ce #define ? #undef ………………………..
‚?«icY?Y ae ©«®c ¤?aY?a?c®© #include ……………..
“a«®c i ?®¬??«iae?i …………………………….
„?aY?a?c  a?a c«Y?i a¬Ya ae?Y© aaa®? #line ……….
„?aY?a?c  #error ……………………………….
„?aY?a?c  #pragma…………………………………
˜aY¤®?aY¤Y«YeY ¬ ?a®ae ………………………..
?« c  2. ˜YaY?aYaaeY aae«?? ?® !?!«?®aY?Y ?a?®«iieY©
a?aaY¬e……………………………………………
‡ cY¬ a¦Y ¤®aaa? ? ?aa®¤e¬ ?®¤ ¬ !?!«?®aY?? ?a?®«iieY©
a?aaY¬e…………………………………………..
” ©«e § F®«®c?  Turbo C++……………………………
? aYF®a?? !?!«?®aYcea ?®¤?a®Fa ¬¬……………………
?« c  3 ˜®a®?? ‘++…………………………….

– 4 –
˜®ceY ?®a®?? c¬Yaa® aa aea…………………………..
?a?®«i§®c ?Y ?®a®?®c 2.0……………………………
—a® a ?®Y ?®a®?? ………………………………..
˜?!«?®aY?  iostream ………………………………
—YaeaY aa ¤ aaea ?®a®?  ………………………..
‚ec®¤ …………………………………………
‚c®¤…………………………………………….
??ae? «?§ ae?i ?®a®?®c ……………………………
˜a®aa®© cc®¤/cec®¤ c ae ©« ………………………..
‘®aa®i?i ®e?!?? ?®a®?  cc®¤ /cec®¤ ………………..
?a?®«i§®c ?Y ?®a®?®c ?a®e«ea cYaa?©………………….
˜Y?®¬Y¤ ae?? ?® ?YaYa®¤a ? ?®a®? ¬ cYaa?? 2.0………….
?« c  4 ?®¤Y«? ? ¬ia?, ®?Ya ae?? a ?« c ieY© a®c?®© ?
®cYa«Y?……………………………………………
?®¤Y«? ? ¬ia?………………………………………
˜YF?aaae 8086…………………………………….
‘YF¬Ya ae?i ? ¬ia?………………………………..
“? § aY«?………………………………………..
?Yaai ¬®¤Y«Y© ? ¬ia?………………………………
˜a®Fa ¬¬?a®c ?Y a ?a?®«i§®c ?Y¬ a §«?cea ¬®¤Y«Y© ? ¬ia?
 ¤aYaeY ¬®¤?ae?? a®ae……………………………..
?!eic«Y?Y !«?¦?a ?«? ¤ «i?a aea?ae?© …………….
?!eic«Y?Y a? § aY«Y© near, far ?«? huge…………….
?a?®«i§®c ?Y !?!«?®aYcea ae ©«®c…………………..
?®¬?®®c?  a¬Ye ea ¬®¤a«Y© ……………………..
??ae?? a??  c?aY« a ?« c ieY© a®c?®©…………………..
˜¬a«?a®c ?Y ?« ae 80a87…………………………..
˜®«acY?Y ?®¤  a®«i?® ¤«i ¬ e? a 80a87 ……………
˜®«acY?Y ?®¤  !Y§ ®?Ya ae?© a ?« c ieY© a®c?®© ……..
??ae?i !eaaaea cec?a«Y?© a ?« c ieY© a®c?®© ………..
˜YaY¬Y i ®?Ya ae?®®© aaY¤e 87……………………
˜YF?aaae ? 80a87 ………………………………..
? aY¬ a?cYa??Y ®?Ya ae?? a ?®¬?«Y?ae¬? c?a« ¬?…………
?a?®«i§®c ?Y ¤c®?c®-¤Yaia?c®© (BCD) ¬ aY¬ a???…….
?a?®«i§®c ?Y ®?Ya a?c®© ? ¬ia? Turbo C++…………….
?cYa«Y? (VROOMM)……………………………………
˜ !®a  ?a®Fa ¬¬ a ®cYa«Yi¬?………………………..
’aY!®c ?i……………………………………….
?a?®«i§®c ?Y ®cYa«YYc ……………………………
˜ §a !®a?  ?a®Fa ¬¬ a ?YaY?aea?i¬?………………….
‘c®??F ………………………………………..
„®?®«?aY«i i ? ¬iai (EMS)………………………..
˜ ae?aY i ? ¬iai (Ext)…………………………..
?« c  5 ‚?¤Y® aea?ae??…………………..
˜Ya?®«i?® a«®c ® c?¤Y® aY¦?¬ a……………………….
˜Ya?®«i?® a«®c ® aY?aa®cea ? Fa ae?cYa??a ®? a…………
—a® a ?®Y ®?® ? ……………………………….
—a® a ?®Y Fa ae?cYa?®Y ®?® ? ……………………..
?®®a¤? ae……………………………………….
˜a®Fa ¬¬?a®c ?Y c aY?aa®c®¬ aY¦?¬Y…………………..
”a?ae?? ?®a®«i®F® cc®¤ /cec®¤  …………………..
’Y?aa®ceY ®? ……………………………………
’?? text_mode…………………………………….
–cYa  aY?aa  ……………………………………
‚ea®?®a?®a®aa®© cec®¤: ?YaY¬Y i directvideo ………
˜a®Fa ¬¬?a®c ?Y c Fa ae?cYa?®¬ aY¦?¬Y…………………
”a?ae?? !?!«?®aY?? graphics………………………..
“?a c«Y?Y aecYa®¬   CGA…………………………..
?« c  6…………………………………………….
‘¬Ye ®Y ?a®Fa ¬¬?a®c ?Y…………………………..
˜®a«Y¤®c aY«i®aa? ?YaY¤ c? ? a ¬Yaa®c ……………
˜®¤F®a®c?  ? ce§®ca .ASM ?§ Turbo C++…………………
“?a®eYeY aYF¬YaeY ¤?aY?a?ce …………………..
‘a ¤ aaeY aYF¬YaeY ¤?aY?a?ce …………………
??aY¤Y«Y?Y ¤ ea – ?®aa a ? ?YaY¬Yea ………….
??aY¤Y«Y?Y F«®! «iea ? cYe?a ?¤Ya?ae?? a®a®c …..
˜®¤F®a®c?  ? ce§®ca Turbo C++ ?§ .ASM…………………

– 5 –
‘ae«?? ? aea?ae?i¬…………………………………
‘ae«?? ? ¤ e¬ ………………………………..
??aY¤Y«Y?Y ?®¤?a®Fa ¬¬   i§e?Y  aaY¬!«Ya ……………
˜YaY¤ c  ? a ¬Yaa®c……………………………….
?!a !®a?  § cY?© c®§ca a  ……………………….
‘®F« eY?i ® aYF?aaa a………………………………
‚e§®c aea?ae?© ‘ ?§ ¬®¤a«Y© .ASM………………………
˜aYc¤®?YaY¬YeY, caaa ?c Y¬eY  aaY¬!«YaeY ?®¤e ? aea?ae??
?aYaec ?i………………………………………..
˜aYc¤®?YaY¬YeY ……………………………….
‚aaa ?c Y¬eY  aaY¬!«YaeY ?®¤e …………………..
”a?ae?? ?aYaec ?i………………………………..
˜a ?a?cYa??Y ?a?¬Yae ?a®Fa ¬¬ ?§?®F® aa®ci ………
?« c  7 ‘®®!eY?i ®! ®e?!? a………………….
‘®®!eY?i ®! ®e?!? a caY¬Y? ce?®«Y?i……………….
‘®®!eY?i ®! ®e?!? a ?®¬??«ia®a ……………………..
” a «ieY ®e?!??……………………………………
?e?!??…………………………………………….
˜aY¤a?aY¦¤Y?i……………………………………..
˜a?«®¦Y?Y ?‘a ¤ aae ANSI, § c?aie?Y ®a
aY «?§ ae??…………………………………………
.
– 6 –

‚cY¤Y?Y

„®?a¬Ya “˜ c «® a !®ae” a®¤Ya¦?a ®!§®a caYF® ?®¬?«Y?a 
¤®?a¬Ya ae?? ? Turbo C++. ?ae®a¬ ae?i ® a®¬, ? ? a  ?!®«ieY©
iaeaeY?a?c®aaii ?a?®«i§®c ai ˜a?®c®¤aac  ?® Turbo C++, a®¤Ya-
¦?aai c® ccY¤Y?? ? F« cY 2 ia®F® ¤®?a¬Ya .

„ ®Y aa?®c®¤aac® a®¤Ya¦?a ¬ aYa? «e ¤«i aF«a!«Y®F®
?§acY?i ?a®Fa ¬¬?a®c ?i ? ?aY¤ § cY® ¤«i aYa, ?a® a¦Y
a®a®e® a¬YYa ?a®Fa ¬¬?a®c ai (  C, «?!®   ¤aaF®¬ i§e?Y
?a®Fa ¬¬?a®c ?i). ‡¤Yai a®¤Ya¦?aai a?a c®c?? ?® i§e?a C,
?YaY?aYaaeY aae«?? ?® !?!«?®aY?Y ?a?®«iieY© a?aaY¬e ? ?-
ae®a¬ ae?? ?® ?a®Fa ¬¬?a®c ?i a ?a?®«i§®c ?Y¬ ?®a®?®c C++,
¬®¤Y«Y© ? ¬ia?, ?« c ieY© a®c??, ®cYa«YYc, c?¤Y®-aea?ae?©,
?aYaaeY©a  a i§e?®¬  aaY¬!«Ya ,   a ?¦Y a®®!eY?i ®! ®e?!? a
?a?®«iieY© a?aaY¬e ? ?®¬??«ia®a .

˜a®cYaai ¤®?a¬Ya “˜ c «® a !®ae” a«Y¤aYa, Ya«?:

1. ‚e a YY ??®F¤  Y ?a®Fa ¬¬?a®c «? ?   ®¤®¬ i§e-
?Y.
2. ‚e a YY ?a®Fa ¬¬?a®c «?, ® Y   C, ? ¦Y« YaY ?a®-
cYaai ccY¤Y?Y c i§e? C.
3. ‚ ¬ a¦  ?ae®a¬ ae?i ® a®¬, ? ? aaa ®c?ai   ?®¬?i-
iaYaY Turbo C++.

‚ ˜a?®c®¤aacY ?®«i§®c aY«i  a®¤?aai ?ae®a¬ ae?i ®!
?aYFa?a®c ®© aaY¤Y Turbo (c?«ic i aY¤ ?a®a),  ¤¬??aaa –
a®aY a?a c«iieY© a?aaY¬e, ?®¬??«ia®aY ?®¬ ¤®© aaa®??, ¤®-
?®«iie?a Turbo C++ aa?«?a a ? ¬ ?a®i§e?Y aY¤ ?a®a  Turbo.

‘?a c®c?? ?® !?!«?®aY?Y a®¤Ya¦?a c  «ae c?a®¬ ?®ai¤?Y
«?aa?F aea?ae?© ? F«®! «iea ?YaY¬Yea Turbo C++.

‘®¤Ya¦ ?Y ¤ ®F® aa?®c®¤aac 

?« c  1:”‘a ¤ aa i§e?  Turbo C++” ®??aec Ya i§e? Turbo
C++. ‡¤Yai ?a?c®¤iaai caY ®a«?c?i ®a aa ¤ aa  ANSI C. „ –
 i F« c  a ?¦Y c?«ic Ya a?a c®c?? ?® i§e? ¬ C ? C++.

?« c  2: “˜YaY?aYaaeY aae«?? ?® !?!«?®aY?Y a?a c«iieY©
a?aaY¬e” a®¤Ya¦?a ?ae®a¬ ae?i ®! ?aa®¤ea ?®¤ a !?!«?®aY??
?a?®«iieY© a?aaY¬e. ‡¤Yai a ?¦Y ®??a e ae ©«e § F®«®c?®c ?
?a?c®¤iaai ?YaY?aYaaeY aae«?? ?® !?!«?®aY?Y a?a c«iieY©
a?aaY¬e, ®aF ?§®c eY ?® aa!eY?a ¬ !?!«?®aY??. ˜ ?a?¬Ya,
Ya«? ce a®a?aY ceia?ai, ? ??Y aea?ae?? ®a®aiaai ? Fa ae??Y,
ce ¤®«¦e ®!a a?aiai ? a §¤Y«a ¤ ®© F« ce “?a ae?? “.

?« c  3:”˜®a®?? C++” a aa? §ec Ya, ? ? ?a?®«i§®c ai
!?!«?®aY?a ?®a®?®c C++.

?« c  4:”?®¤Y«? ? ¬ia?, ®?Ya ae?? a ?« c ieY© a®c?®© ?
®cYa«Y?” a aa¬ aa?c Ya ¬®¤Y«? ? ¬ia?, ?a®Fa ¬¬?a®c ?Y a®
a¬Ye e¬? ¬®¤Y«i¬? ? ¬ia?, cec?a«Y?i a ?« c ieY© a®c?®© ?
®cYa«Yi¬?.

?« c  5:”‚?¤Y®-aea?ae??” ?®acieY  ®!a !®a?Y c Turbo C++
aY?aa®c ? Fa ae?cYa??a ?§®!a ¦Y?©.

?« c  6:”?aYaaeY©a a i§e?®¬  aaY¬!«Ya ” F®c®a?a ® a®¬,
? ? a¦® ??a ai ?a®Fa ¬¬e   i§e?Y  aaY¬!«Ya , ca®!e ®?
?a c?«i® a !®a «? ?a? ce§®cY ?§ ?a®Fa ¬¬   Turbo C++.

?« c  7: “‘®®!eY?i ®! ®e?!? a” ?YaYc?a«iYa ? ®!eiaiYa
caY ae a «ieY ®e?!??, ®e?!?? ? ?aY¤a?aY¦¤Y?i ?a?®«iieY©

– 7 –
a?aaY¬e ? ?®¬??«ia®a ,   a ?¦Y ¤ Ya c®§¬®¦eY aY?®¬Y¤ ae??
?® ?a aaaa Y?i.

˜a?«®¦Y?Y ?: “‘a ¤ aae ANSI, § c?a?¬eY ®a aY «?§ –
ae??” ®??aec Ya aY  a?Y?ae aa ¤ aa  ANSI C, ?®a®aeY !e«? ®?-
aY¤Y«Ye a Y?®a®a®© aaY?Yii ac®!®¤e ?«? Y !e«? ®?aY¤Y«Ye
c®®!eY c aa ¤ aaY ANSI. ‘«Y¤®c aY«i®, ia?  a?Y?ae ¬®Faa
c ai?a®c aiai c § c?a?¬®aa? ®a ?®?aYa®© aY «?§ ae??. „ ®Y
?a?«®¦Y?Y a®®!e Ya ® a®¬, ? ? Turbo C++ ?®aaa? Ya c ®a®eY-
?? ? ¦¤®F® ?§ ia?a  a?Y?a®c.

?« c  1 ‘a ¤ aa i§e?  Turbo C++

‚ ¤ ®© F« cY ¤ Yaai ?®¤a®!®Y a?a c®c®Yaa?®c®¤aac®
?a®Fa ¬¬?aa  ?® i§e?a Turbo C++. ?® Y ic«iYaai aa?®c®¤a-
ac®¬ ?® ?§acY?i i§e? ,   a?®aYY ae®a¬ «ie¬ ®??a ?Y¬ i§e?®c
C ? C++ c ?a aY «?§ ae?? ?a®Fa ¬¬e¬ ?a®¤a?a®¬ Turbo C++. ‚
¤ ®© F« cY ®??aec iaai Fa ¬¬ a?cYa??Y ?a c?«  § ??a?
aaaa?aaae aea § ? «Y?a??? i§e? ,   a ?¦Y ¤ Yaai ?®¤a®!®Y ?§-
«®¦Y?Y ?¬Yie?aai ¤?aY?a?c ?aY?a®aeYaa®a . ˜a? ae®a¬a«?a®c?Y
a?a ?a?a  ?a?®«i§aYaai ¬®¤?ae?ae?a®c  i § ??ai ˜i?aa -˜ ai-
a ,?a? Y®!a®¤?¬®aa? a®?a®c®¦¤ Y¬ i ?a a??¬ ®??a ?Y¬ ? ?a?-
¬Ya ¬? ?a®Fa ¬¬.

Turbo C++ aY «?§aYa aa ¤ aa ANSI C, a §a !®a e© aYa-
?cYa??¬ ?®¬?aYa®¬ X3J11 ¬Y¦¤a ?iY¬ 1983 ? ¤Y? !aY¬ 1988
FF., a Y?®a®ae¬? a ae?aY?i¬?, ®F®c a?c Y¬e¬? c¤ ®¬aY?a-
aY. ‚e ?¬YYaY c®§¬®¦®aai aaa  c«?c ai ®?ae?? ?®¬??«ia®a ,
?®a®aeY !a¤aa ?aY¤a?aY¦¤ ai c a ® a®¬, ca®a ??Y a ae?aY?i
caaaYa?«?ai?a? a !®aY ?®¬??«ia®a . ‚e ¬®¦YaY a ?¦Y  aaa®?ai
?®¬??«ia®a a ??¬ ®!a §®¬, ca®!e ® a aa¬ aa?c « ?«icYceY
a«®c  a ae?aY?© Turbo C++ c ? cYaacY ®a¬ «iea ?¤Ya?ae?? –
a®a®c (a¬. ?« ca 4,”?®¬??«ia®a ?®¬ ¤®© aaa®??”, c ˜a?®-
c®¤aacY ?®«i§®c aY«i).

‘aeYaacaia a ?¦Y “a®F« aaie?Y” a ae?aY?i, c?«ic Y¬eY
?®aaY¤aac®¬ ¤?aY?a?c #pragma, ?aY¤« F Y¬ea aa ¤ aa®¬ ANSI
C, ?aY¤ § cYeY ¤«i a !®ae a Yaa ¤ aae¬?, § c?a?¬e¬?
®a ?®?aYa®© aY «?§ ae?? aaY¤aac ¬? i§e? .

Turbo C++ ic«iYaai a ?¦Y ?®«®© aY «?§ ae?Y© AT&TC++
cYaa?? 2.00, ®!eY?a®-®a?Ya?a®c ®F®  ¤¬®¦Yaac  C, a §-
a !®a ®F® ˜iYa®¬ ‘aa®aaaa?®¬ ?§ AT&T Bell Laboratories.
˜®¬?¬® a®F®,ca® C++ ¤®?®«iYa C ¬®F?¬? ®ce¬? aaY¤aac ¬? ?
c®§¬®¦®aai¬?, ® a ?¦Y ? ®a«?cY ®a YF® c !®«ieY© ?«?
¬YieY© aaY?Y?. ‚  aa®ieY© F« cY a®¤Ya¦ aai § ¬Yc ?i ?®
ia?¬ ®a«?c?i¬. ‚aY aaY¤aac  i§e?  Turbo C++,?¬Yie?Y ®a?«®Y-
?i ®a C++, !®«YY ?®¤a®!® a aa¬ aa?c iaai,  c? i a® aaa –
?aee 98.

‘?a ?a?a ? aYa¬?®«®F?i

‘?a ?a?cYa??Y ®?aY¤Y«Y?i a®aa®ia ?§ ?¬Y? ®?aY¤Y«iY-
¬®F® c  aa®ie?© ¬®¬Ya ? Y ®?aY¤Y«Y®F® F¤Y-«?!® ceeY
aYa¬? , §  ?®a®ae¬ a«Y¤aYa ¤c®Ya®c?Y (:). ?«iaYa a?ce
®!ec® a«Y¤aia §  ia?¬ c ®a¤Y«iea aaa®? a, ® ¬®Faa a ?¦Y
?®¬Ye aiai ? c ®¤®© aaa®?Y; c a ?®¬ a«ac Y ?¬ ?aY¤eYaacaYa
aea §  “®¤® ?§”. ˜ ?a?¬Ya,

cYeYY-®?aY¤Y«Y?Y:
®?aY¤Y«Y?Y-aea?ae??
®!eic«Y?Y

– 8 –

c®ai¬Ya?c i ae?aea : ®¤® ?§
0 1 2 3 4 5 6 7

??ae?® «ieY i«Y¬Yae ?®aaaa?ae?? § ?«ic iaai c aF«®ceY
a?®!??:

aeY«®c?a«Ye©-aaaeae??a:
aaaeae??a-aeY«®F®-!Y§-§ ? 

‚ ¤ ®© F« cYa«®c® ” aFa¬Ya” cY§¤Y ?a?®«i§aYaai ¤«i
®!®§ cY?i ¤Y©aac?aY«i®F® § cY?i, ?YaY¤ c Y¬®F®?a? ce§®-
cY aea?ae??. “˜ a ¬Yaa” ®!®§ c Ya ?YaY¬Yai, ®?aY¤Y«iY¬ai c
§ F®«®c?Y aea?ae??, ?®a®a i !a¤Ya a®¤Ya¦ ai c aY!Y ?YaY¤ c Y-
¬®Y § cY?Y.
?a ¬¬ a?cYa??Y ?a c?«  aaaa?aaae aea § ? «Y?a??? i§e? 

?a ¬¬ a?cYa??Y ?a c?«  «Y?a???i§e?  Turbo C++ ®??a e
  aaa. 5 – 58 ®a?F? « ; Fa ¬¬ a?cYa??Y ?a c?«  aaaa?aaae
aea § Turbo C++ ®??a e   aaa. 58 – 98 ®a?F? « .

?a ¬¬ a?cYa??Y ?a c?«  «Y?a??? i§e?  a aa¬ aa?c iaai a
a®c?? §aY?i aaeYaac®c ?ia §«?cea ? aYF®a?© a«®c®-®a?Ya?-
a®c ea i§e?®cea Y¤??ae, §ec Y¬ea «Y?aY¬ ¬?, a a?®§ c Y-
¬ea ?®¬??«ia®a®¬. ?a ¬¬ a?cYa??Y ?a c?«  aaaa?aaae aea § ?®¤-
a®!® ®?aY¤Y«iia ¤®?aaa?¬eY a?®a®!e Faa???a®c ?i ia?a
«Y?aY¬ c cea ¦Y?i, ®?Ya a®ae ? ?a®c?Y a¬ea«®ceY Y¤??aee
i§e? .

‹Y?aY¬e Turbo C++ ®!a §aiaai ?§ ?®a«Y¤®c aY«i®aa? ®?Y-
a ae?©, ce?®«iY¬ea a c eY©?a®Fa ¬¬®© ?®¬??«ia®a®¬ ? ?aY?a®-
aeYaa®a®¬ i§e? .

˜a®Fa ¬¬    Turbo C++  c? Ya ac®Y aaeYaac®c ?Y? ?
?®a«Y¤®c aY«i®aai ACSII-a?¬c®«®c,?aY¤aa c«iie?a a®!®© YY
?aa®¤e© ?®¤, a®§¤ c Y¬e©  ¦ a?i¬? ?« c?e ?a? a !®aY c ?®¤-
a®¤ieY¬ aY?aa®c®¬ aY¤ ?a®aY ( ?a?¬Ya, c a®!aacY®¬ aY¤ ?-
a®aY Turbo C++). ˜ §®c i ?a®Fa ¬¬ i Y¤??ae  c Turbo C++
?aY¤aa c«iYa a®!®© ae ©«. ?!ec® a ?®©ae ©« a®®acYaaacaYa ae ©-
«a DOS,  a®¤ieY¬aai c ®?Ya a?c®© ? ¬ia? ?«?   ¤?a?Y ?
?¬YieY¬a a®§¤ ®Y ?® ?a c?« ¬ DOS ?¬i ? a ae?aY?Y .C ?«? .
CPP.

‘ c «  ce?®«iYaai ?a®a¬®aa aY?aa  ?a®Fa ¬¬e ?aY?a®-
aeYaa®a®¬, ?®a®ae© ?eYa c Y¬ a?Yae? «ieY ¤?aY?a?ce ?aY?a®-
aeYaa®a  (a¬. aaa. 133 ®a?F? « ). ˜ ?a?¬Ya, ¤?aY?a?c 
#include ¤®! c«iYa (?«? c?«ic Ya) c?a®F-
a ¬¬a ?YaY¤ ae §®© ?®¬??«iae?? a®¤Ya¦?¬®Y ae ©«  . ˜aY?a®aeYaa®a a ?¦Y ce?®«iYa a ae?aY?Y «i!ea
caaaYcYea c ?a®Fa ¬¬ a ?«? ae ©« a c?«icY?i ¬ ?a®a®c.

˜a®!Y«ieY a?¬c®«e

˜  ae §Y ?®¬??«iae??, ®acYc ieY© §  a a?®§ c ?Y «Y?aY¬,
ae ©« ?aa®¤®F® ?®¤  ?a®Fa ¬¬e ?®¤cYaF Yaai «Y?a?cYa?®¬a   –
«?§a (a.Y. a §!?Y?i  «Y?aY¬e ? ?a®!Y«e). ˜a®!Y«ie¬? !a¤aa
®!®!eY® ?¬Y®c aiai a®!aacY® a?¬c®«e ?a®!Y«®c, F®a?§®-
a «ieY ? cYaa?? «ieYa?¬c®«e a !a«iae??, a?¬c®«e ®c®© aaa®-
?? ? ?®¬¬Ya a??. ˜a®!Y«ieY a?¬c®«e a«a¦ a ¤«i ®!®§ cY?i
¬Yaa  c «  ? ?®ae  «Y?aY¬, ? acYaa ia®© aea?ae??, ¤«i ?a?«i-
cY?i ?§ ?®¬??«iae?? caYa ?§!ea®cea a?¬c®«®c, Y ca®¤ie?a c
a®aa c «Y?aY¬. ˜ ?a?¬Ya, a«Y¤aie?Y ¤cY ?®a«Y¤®c aY«i®aa?,

int i; float f;

?

– 9 –
int i ;
float f;

«Y?a?cYa?? ?¤Ya?ce,   ?a «Y?a?cYa??©   «?§ c ®!®?a
a«ac ia ¤ Ya eYaai «Y?aY¬:

int i ; float f ;

ASCII-a?¬c®«e, ®!ec® a aa¬ aa?c Y¬eY ? ? ?a®!Y«ieY,
¬®Faa ca®¤?ai c aaa®?? «?aYa «®c, ? c ¤ ®¬ a«ac Y!a¤aa § –
e?eYe ®a ®a¬ «i®F® ?a®aeYaa a §!?Y?i   «Y?aY¬e? ?a®!Y«e;
¤aaF?¬? a«®c ¬?, ®? aa aa ?aY¤aa c«iai a®!®© c aai aaa®??:

char name[] = “Borland International”;

a §!?c Yaai   aY¬i «Y?aY¬, c?«ic i ? «Y?aY¬a aaa®??
«?aYa «®c “Borland International”.

“‘?«Y?c ?Y” aaa®? a?¬c®«®¬ \

?¬YYaai a?Yae? «ie© a«ac ©, ?®F¤  ?YaY¤?®a«Y¤?¬ a?¬c®-
«®¬ ®c®©aaa®?? a®¤?aai a?¬c®«  ?«®®© cYaae c«Yc® (\). ‚
a ?®¬ a«ac Y a?¬c®«e  ?«®®© cYaae c«Yc® ? a?¬c®« ®c®©
aaa®?? ®a!a aec iaai, ca® ?®§c®«iYa a aa¬ aa?c ai ¤cY ae?§?-
cYa??Y aaa®?? aY?aa  ? ? Y¤?®Y aeY«®Y.

“Borland \
International”

!a¤Ya a aa¬ aa?c aiai ? ? “Borland International” (¤®-
?®«?aY«iai ?ae®a¬ ae?i a¬.   aaa. 17 ®a?F? « , “‘aa®?®ceY
«?aYa «e”

?®¬¬Ya a??

?®¬¬Ya a?? ?aY¤aa c«iia a®!®© aY?aa®ceY c aa?, ?aY¤-
 § cYeY ¤«i  ®a?a®c ?i ?a®Fa ¬¬e.?®¬¬Ya a?? ?a?®«i-
§aiaai ?a?«ic?aY«i® a ¬?¬ ?a®Fa ¬¬?aa®¬; ?YaY¤«Y?a?cYa??¬
  «?§®¬ ®? ?a?«ic iaai ?§ ?aa®¤®F® aY?aa  ?a®Fa ¬¬e.

‘aeYaacaYa ¤c  a?®a®!  a? § ?i   ?®¬¬Ya a??: aa ¤?-
ae?®e© ¬Ya®¤ C ? ¬Ya®¤ C++. ?? ®!  ?®¤¤Ya¦?c iaai Turbo C+
+, ? ?a®¬Y a®F®, ?¬YYaai ¤®?®«?aY«i®Y, ®?ae?® «i®Y a ae?-
aY?Y, ?®§c®«iieYY ®aF ?§®cec ai c«®¦YeY ?®¬¬Ya a??.
˜ §aYe Yaai a¬Ye ®Y ? ?®¬!??a®c ®Y ?a?®«i§®c ?Y ?®¬-
¬Ya a?Yc «i!®F® a??  c ?a®Fa ¬¬ a C ? C++.
?®¬¬Ya a?? C

’a ¤?ae?®e© ?®¬¬Ya a?© C ?aY¤aa c«iYa a®!®© «i!ai
?®a«Y¤®c aY«i®aai a?¬c®«®c, ?®¬Ye Y¬ai ?®a«Y? ae a?¬c®-
«®c/*. ˜a?§ ?®¬ ?®ae  ?®¬¬Ya a?ia«a¦?a?Yac i? a  a?¬c®«®c*
/, caaaYa?ce iai ?®a«Y ?aa®¤®© ? ae /*. ˜®a«Y ce?®«Y?i
¬ ?a®a ae?aY?i cai ia  ?®a«Y¤®c aY«i®aai aeY«??®¬, c?«ic i
cYaeaY a §¤Y«?aY«iea a?¬c®«  ?®¬¬Ya a?i,§ ¬YiYaai   ®¤?
?a®!Y«. ?a¬Ya?¬, ca®Y?®a®aeY aY «?§ ae?? C a¤ «iia ?®¬¬Ya –
a??, Y § ¬Yii ?a   ?a®!Y«e.

Turbo C++ Y ?®¤¤Ya¦?c Ya Y-¬®!?«i®© aaa aYF?? caa c-
?? «Y?aY¬ a ?®¬®eii /**/. ‚aa c?  «Y?aY¬ c Turbo C++ ce?®«-
iYaai?a? ?®¬®e? § ¤ ®© ANSI ? ae a?¬c®«®c ##, a«Y¤aie?¬
®!a §®¬:

#define VAR(i,j) (i/**/j) /* Y !a¤Ya a !®a ai */
#define VAR(i,j) (i##j) /* c Turbo C++ !a¤Ya a !®a ai */
#define VAR(i,j) (i ## j) /* a ?¦Y !a¤Ya a !®a ai */

‚ Turbo C++

– 10 –

int /* ®!eic«Y?Y */ i /* ? ? acYac??  */;

?®a«Y «Y?a?cYa?®F®   «?§  ¤ aa

int i ;

a® Yaai aa? «Y?aY¬e: Int I ;

‚«®¦YeY ?®¬¬Ya a??

ANSI C Y a §aYe Yac«®¦Y®aai ?®¬¬Ya a?Yc. ˜®?ea? 
?®¬¬Ya?a®c ai ?a?cY¤Yai ceeY aaa®?a c c?¤Y

/*int /* ®!eic«Y?Y */ i /? ? acYac??  */; */

®?®c?aai Ya¤ cY©, ?®a?®«i?a ®!« aai ¤Y©aac?i ?Yac®©
? ae /* !a¤Ya ®Fa ?cY  ?Yac®© ? a®© */. ˜a® ¤ aa c aY§a«i-
a aY «Y?a?cYa?®F®   «?§ 

i ; */

ca® ?a?cY¤Ya ? FYYa?a®c ?i a®aa®i?i a?a ?a?cYa?®©
®e?!??.

˜® a¬®«c ?i Turbo C++ Y ?®§c®«iYa c«®¦Y®aai ?®¬¬Y-
a a?Yc, ®¤ ?® ia® a¬®«c ?Y ¬®¦Ya !eai ?YaY®?aY¤Y«Y® ®?ae?-
Y© ?®¬??«ia®a . ˜ §aYe?ai c«®¦Y®aai ?®¬¬Ya a?Yc ¬®¦® «?-
!® ?a? ?®¬®e? ®?ae?? -C (?®¬??«ia®a  ?®¬ ¤®© aaa®??), «?!®
cYaY§ ¬Yi ?aYFa?a®c ®© aaY¤e ?a®Fa ¬¬?a®c ?i
O\!C\!Source Options.

?®¬¬Ya a?? C++

„«i a®§¤ ?i c?®¤Y C ?®¬¬Ya a?Ycce ¬®¦YaY a ?¦Y ?a-
?®«i§®c ai a?¬c®«e //. ˜a® aaY¤aac® a?Yae?ae?c® ¤«i Turbo
C++.

C++ ?®§c®«iYaa®§¤ ?Y a §¬Ye Y¬®F® c ®¤®© aaa®?Y ?®¬-
¬Ya a?i ?a? ?®¬®e? ¤caa ?®¤ai¤ a«Y¤aie?aa?¬c®«®c  ?«®®©
cYaae(//). ’ ?®© ?®¬¬Ya a?© ¬®¦Ya  c? aiai c «i!®© ?®§?-
ae?? aaa®??, ? c?«ic Ya c aY!i caY, ca® a a?®«®¦Y® ¤® a?¬c®-
«  ®c®© aaa®??:

class X (* // ia® ?®¬¬Ya a?©
… *);

˜ §¤Y«?aY«? ?®¬¬Ya a?Yc ? ?a®!Y«e

‚ aY¤??a a«ac ia ?a®!Y«e ?YaY¤ /* ? // ?«? ?®a«Y */,
a®ai ? Y ic«iiaai a?a ?a?cYa?? ®!i§ aY«ie¬?, ®?®§c®«iia
?§!Y¦ ai ?a®!«Y¬, aci§ ea a ¬®!?«i®aaii. ˜ ?a?¬Ya, ?®¤ C++

int i = j//* ¤Y«Y?Y   k*/k;
+m;

?a? «Y?a?cYa?®¬   «?§Y ¤ aaint i = j +m;   Y

int i = j/k;
+m;

? ? ia® ¬®¦® !e«® !e ®¦?¤ ai ?® aa ¤?ae?®e¬ a®F« eY-
?i¬ C. ˜®«YY a¤®!®c?a Y¬ i ae®a¬ 

int i = j/ /* ¤Y«Y?Y   k*/ k;
+m;

– 11 –
?®§c®«iYa ?§!Y¦ ai ia®© ?a®!«Y¬e.

‹Y?aY¬e

Turbo C++ a a?®§ Ya «Y?aY¬e eYaa? ?« aa®c: ?«icYceY
a«®c , ?¤Ya?ae?? a®ae, ?®aa ae, aaa®?®ceY «?aYa «e, ®?Ya –
ae?? ? § ?? ?a?aa ae?? (a ?¦Y  §ec Y¬eY a §¤Y«?aY«i¬?).
”®a¬ «i®Y ®??a ?Y «Y?aY¬e ?¬YYa a«Y¤aie?© c?¤:

«Y?aY¬ :
?«icYc®Y a«®c®
?¤Ya?ae?? a®a
?®aa a 
aaa®?®ce© «?aYa «
®?Ya ae?i
§ ? ?a?aa ae??

‚® caY¬i «Y?a?cYa?®F®   «?§  ?aa®¤®F® ?®¤  «Y?aY¬e
ce¤Y«iiaai ¬Ya®¤®¬, ?a? ?®a®a®¬ ?§ aaa®?? a?¬c®«®c ®!i§ –
aY«i® ce!?a Yaai «Y?aY¬  ¬ ?a?¬ «i®© ¤«?e. ˜ ?a?¬Ya, a«®-
c® external !a¤Yaa aa¬ aa?c aiai ? ? ®a¤Y«ie© ?¤Ya?ae?? –
a®a,   Y? ? ?«icYc®Y a«®c® extern, §  ?®a®ae¬ a«Y¤aYa
?¤Ya?ae?? a®a al.

?«icYceY a«®c 

?«icYce¬? a«®c ¬?  §ec iaai a«®c , § aY§Yac?a®c eY¤-
«i a?Yae? «iea aeY«Y©, ?®a®aeY Y ¤®«¦e ?a?®«i§®c aiai c ? –
cYaacY ®!ecea ?¬Y ?¤Ya?ae?? a®a®c. ‚ a«Y¤aie?a ¤caa a !«?-
ae a ?a?c®¤iaai ?«icYceY a«®c  Turbo C++. ‚e ¬®¦YaY
?a?®«i§®c ai ®?ae?? ?®¬??«ia®a  ?®¬ ¤®© aaa®?? (?«? ®?ae?? c
IDE), ca®!e ce!a ai a®«i?® ?«icYceY a«®c ANSI, ?«icYceY a«®-
c  UNIX ? a.¤. ?ae®a¬ ae?i ®! ia?a ®?ae?ia a¬. c F« c a 1,
“‘?a c®c?? IDE”, ? 4, “?®¬??«ia®a ?®¬ ¤®© aaa®??” c ˜a?®-
c®¤aacY ?®«i§®c aY«i.

‚aY ?«icYceY a«®c  Turbo C++ ’ !«?ae  1.1
———————————————————–
asm _ds interrupt short
auto else _loadds signed
break enum long sizeof
case _es near _ss
catch _export new static
cdecl extern operator struct
char far pascal switch
class float private template
const for protected this
continue friend public typedef
_cs goto register union
default huge _regparam unsigned
delete if return virtual
do inline _saverages void
double int _seg volatile
while
———————————————————–

˜ ae?aY?i Turbo C++ ®a®a?aY«i® ANSI C ’ !«?ae  1.2
———————————————————–
cdecl _export _loadds _saveregs
_cs far near _seg
_ds huge pascal _ss
_es interrupt _regparam
———————————————————–

– 12 –

?«icYceY a«®c , a?Yae?ae?ceY ¤«i C++ ’ !«?ae  1.3
———————————————————–
catch friend operator public
class inline private template
delete new protected this
virtual
———————————————————–

˜YF?aaa®ceY ?aYc¤®?YaY¬YeY Turbo C++ ’ !«?ae  1.4
———————————————————–
_AH _BL _CL _DL
_AL _BP _CX _DX
_AX _BX _DH _FLAGS
_BH _CH _DI _SI
_SP
———————————————————–
?¤Ya?ae?? a®ae

”®a¬ «i®Y ®?aY¤Y«Y?Y ?¤Ya?ae?? a®a  ?¬YYa a«Y¤aie?© c?¤:

?¤Ya?ae?? a®a:
Y-ae?aea 
?¤Ya?ae?? a®a Y-ae?aea 
?¤Ya?ae?? a®a ae?aea 

Y-ae?aea : ®¤® ?§
a b c d e f g h i j k l m n o p q r s t u v w x y z _
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

ae?aea : ®¤® ?§
0 1 2 3 4 5 6 7 8 9

?Fa ?cY?i a®aa c  ? ¤«?e ?¤Ya?ae?? a®a®c

?¤Ya?ae?? a®ae ?aY¤aa c«iia a®!®© ?a®?§c®«ieY ?¬Y 
«i!®© ¤«?e, ?a?ac ?c Y¬eY?« aa ¬, ®!eY?a ¬, aea?ae?i¬,?YaY-
¬Ye¬, ®?aY¤Y«iY¬e¬ ?®«i§®c aY«Y¬ a?? ¬ ¤ ea ?a.¤. ?¤Y-
a?ae?? a®ae ¬®Faa a®¤Ya¦ ai !a?ce ®a A ¤® Z ? ®a a ¤® z, a?¬-
c®« ?®¤cYa??c ?i (_) ? ae?aeae ®a 0 ¤® 9. ‘aeYaacaYa a®«i?®
¤c  ®Fa ?cY?i:

1. ˜Yace© a?¬c®« ¤®«¦Y ic«iaiai !a?c®© ?«? a?¬c®«®¬
?®¤cYa??c ?i.

?a¬Ya?¬, ca® ?¤Ya?ae?? a®ae c Turbo C++ § c?¬e ¤® «i-
!®© ¤«?e.

2. ˜® a¬®«c ?i Turbo C++ a a?®§ Ya a®«i?® ?YaceY 32
a?¬c®«  c ? cYaacY § c?¬ea. —?a«® § c?¬ea a?¬c®«®c ¬®¦Ya
!eai a¬YieY® ?a? ?®¬®e? ¬Yi ?«? ®?ae?© ?®¬ ¤®© aaa®??,
® Y ¬®¦Ya !eai acY«?cY®. ?a?®«i§a©aY ®?ae?i -In TCC, «?!®
®?ae?i ¬Yi O\!C\!S\!Identifier Length, F¤Y 1 - 13 - Case-Sensitive Link,«?!® ?a?®«i§®c c ®?ae?i ?®¬ ¤®© aaa®?? /C ?a? § ?aa?Y TLINK. ‚ a ?®¬ aY¦?¬Y F«®! «ieY ?¬Y  Sum ? sum a aa¬ aa?c iaai ? ? ?¤Ya?ceY, ? ?a? ?®¬?®®c?Y ¬®¦Ya !eai ce¤ ® ?aY¤a?aY¦¤Y?Y "Duplicate symbol" ("˜®ca®aiie?Y- ai a?¬c®«?cYa??Y ?¬Y "). ?a?«icY?Y ?§ ia?a ?a c?« a®aa c«iia?¤Ya?ae?? a®ae a??  pascal, ?®a®aeY ?a? ?®¬?®®c?Y caYF¤  ?aY®!a §®cec iaai ? cYaaY¬a aYF?aaaa. “?? «i®aai ? ?®aY?aa ?¤Ya?ae?? a®a®c •®ai ?¬Y  ?¤Ya?ae?? a®a®c ¬®Faa !eai ?a®?§c®«ie¬? (c ?aY¤Y« a ?§«®¦Yea ?a c?«), c a«ac Y ?a?®«i§®c ?i ®¤®F® ? a®F® ¦Y ?¬Y? ¤«i !®«YY cY¬ ®¤®F®?¤Ya?ae?? a®a c ?aY¤Y« a ®¤®F® ?®aY?aa  ? a §¤Y«Y?? ?¬?®¤®F®?a®aaa aac  ?¬Y c®§?? Ya ®e?!? . ˜®ca®aY?Y ?¬Y c a §«?cea ?a®aaa aac a ?¬Y ¤®?aaa?¬® caYF¤ , Y§ c?a?¬® ®a ?®aY?aa . ˜a c?«  a aa¬ aa?c iaai?a? ®!aa¦¤Y?? ?®aY?aa ,  c? i a® aaa. 29 ®a?F? « . ?®aa ae ?®aa a ¬?  §ec iaai «Y?aY¬e, ?aY¤aa c«iie?Y a®!®© ae??a?a®c eY c?a«®ceY ?«? a?¬c®«ieY § cY?i. TurboC++ ?®¤¤Ya¦?c Ya cYaeaY ?« aa ?®aa a: a?« c ieY© a®c?®©, aeY«®- c?a«YeY, ?YaYc?a«?¬®F® a??  ? a?¬c®«ieY. ’?? ¤ ea ?®aa ae ®?aY¤Y«iYaai ?®¬??«ia®a®¬ ?® a ??¬ ?«icYce¬ a a ?aYa?aa?? ¬, ? ? c?a«®c®Y § cY?Y? ae®a¬ a, ?a- ?®«i§aY¬eY ?a? § ??a? ?®aa ae c ?aa®¤®¬ ?®¤Y. ??aY¤Y«Y?Y ae®a¬ a  ?®aa ae ?®? § ® c a«Y¤aieY© a !«?aeY: ?®aa ae - ®?aY¤Y«Y?Y ae®a¬ a  ’ !«?ae  1.5 ----------------------------------------------------------- ?®aa a : ?®aa a -a-?« c ieY©-a®c?®© aeY«®c?a«Y i-?®aa a  ?YaYc?a«?¬ i-?®aa a  a?¬c®«i i-?®aa a  ?®aa a -a-?« c ieY©-a®c?®©: ¤a®! i-?®aa a 
?®a«Y¤®c aY«i®aai-ae?aea i?a?®Yae? «i i c aai

¤a®! i ?®aa a :
®a«Y¤®c aY«i®aai-ae?aea>.®a«Y¤®c aY«i®aai-ae?aea>
®a«Y¤®c aY«i®aai-ae?aea>.

i?a?®Yae? «i i-c aai:
e ?®a«Y¤®c aY«i®aai-ae?aea
E ?®a«Y¤®c aY«i®aai-ae?aea

§ ?: ®¤® ?§
+ –

?®a«Y¤®c aY«i®aai-ae?aea:
ae?aea 
?®a«Y¤®c aY«i®aai-ae?aea ae?aea 

aaaeae??a-?®aa ae-a-?« c ieY©-a®c?®©: ®¤® ?§
f l F L

aeY«®c?a«Y i-?®aa a :
¤Yaia?c i-?®aa a 

– 14 –
c®ai¬Ya?c i-?®aa a 
eYaa ¤ae a?a?c i-?®aa a 

¤Yaia?c i-?®aa a :
ae?aea -?a®¬Y-a«i
¤Yaia?c i-?®aa a  ae?aea 

c®ai¬Ya?c i-?®aa a :
0
c®ai¬Ya?c i-?®aa a  c®ai¬Ya?c i-ae?aea 

eYaa ¤ae a?a?c i-?®aa a :
0 x eYaa ¤ae a?a?c i-ae?aea 
0 X eYaa ¤ae a?a?c i-ae?aea 
eYaa ¤ae a?a?c i-?®aa a  eYaa ¤ae a?a?c i-ae?aea 

ae?aea -?a®¬Y-a«i: ®¤® ?§
1 2 3 4 5 6 7 8 9

c®ai¬Ya?c i-ae?aea : ®¤® ?§
0 1 2 3 4 5 6 7

eYaa ¤ae a?a?c i-ae?aea : ®¤® ?§
0 1 2 3 4 5 6 7 8 9
a b c d e f
A B C D E F

aaaeae??a-aeY«®c?a«Y®©-?®aa ae:
aaaeae??a-?®aa ae-!Y§-§ ? 
aaaeae??a-¤«?®©-?®aa ae

aaaeae??a-?®aa ae-!Y§-§ ? : ®¤® ?§
u U

aaaeae??a-¤«?®©-?®aa ae: ®¤® ?§
l L

?YaYc?a«?¬ i-?®aa a :
?¤Ya?ae?? a®a

a?¬c®«i i-?®aa a :
?®a«Y¤®c aY«i®aai-a?¬c®«®c-c

?®a«Y¤®c aY«i®aai-a?¬c®«®c-c:
a?¬c®«-c
?®a«Y¤®c aY«i®aai-a?¬c®«®c-c a?¬c®«-c

a?¬c®«-c:
«i!®© a?¬c®« ?§ ?aa®¤®F®  !®a  a?¬c®«®c, § 
?a?«icY?Y¬ a?¬c®«®c ®¤? a®© ? cec?? (‘), ®!a a®©  ?«®-
®© cYaae (\) ?«? a?a c«iieY©-?®a«Y¤®c aY«i®aa? a?¬c®«  ®-
c®© aaa®??.

a?a c«iie i-?®a«Y¤®c aY«i®aai: ®¤® ?§
\* \’ \? \\
\a \b\f \n
\o \oo\ooo \r
\t \v\Xh… \xh…
———————————————————–

–Y«®c?a«YeY ?®aa ae

–Y«®c?a«YeY ?®aa ae ¬®Faa !eai ¤Yaia?ce¬? (®a®c –
?Y a?aaY¬e ac?a«Y?i 10), c®ai¬Ya?ce¬? (®a®c ?Y 8)?«?
eYaa ¤ae a?a?ce¬? (®a®c ?Y 16). ˜a? ®aaaaaac?? ?YaY®?aY-
¤Y«iie?a aaaeae??a®c a??¤ eaaeY«®c?a«Y®© ?®aa ae cec®¤?a-

– 15 –
ai ?§ YY § cY?i, ? ? ?®? § ® c a !«?aeY 1.6. ?a¬Ya?¬, ca®
?a c?«  ¤«i ¤Yaia?cea ? Y-¤Yaia?cea ?®aa a a §«?ce.

„Yaia?ceY ?®aa ae

„®?aaa?¬e¬? ic«iiaai ¤Yaia?ceY ?®aa ae cY«?c?®© ®a
0 ¤® 4,294,967,295. ?®aa ae, cea®¤ie?Y §  a? § eY ?aY¤Y-
«e, ce§ec ia ®e?!?a. „Yaia?ceY?®aa ae Y ¬®Faa ?¬Yai cY-
¤ae?Y a«?. –Y«®c?a«Y i?®aa a  a cY¤ae?¬ a«Y¬ a aa¬ a-
a?c Yaai? ? c®ai¬Ya?c i. ’ ??¬ ®!a §®¬,

int i = 10; /* ¤Yaia?c®Y 10 */
int i = 010; /* ¤Yaia?c®Y 8 */
int i = 0; /* ¤Yaia?c®Y 0 = c®ai¬Ya?c®¬a 0! */

?aa?ae aY«ieY ?®aa ae- ia® ?a®aa® ?®aa ae !Y§
§ ? , ? ?®a®ae¬ ?a?¬YY  a a i ®?Ya ae?i ¬?aa.

‚®ai¬Ya?ceY ?®aa ae

‚aY ?®aa aea cY¤ae?¬ a«Y¬ a aa¬ aa?c iaai ? ? c®ai-
¬Ya?ceY.…a«? c®ai¬Ya?c i ?®aa a  a®¤Ya¦?a Y¤®?aaa?¬eY
ae?aeae 8 ?«? 9, ce¤ Yaai a®®!eY?Y ®! ®e?!?Y. ?e?!?  !a¤Ya
a ?¦Y ce¤ c aiai ?a? ?aYceeY?? c®ai¬Ya?c®© ?®aa a®© § –
cY?i 037777777777.

?Yaa ¤ae a?a?ceY ?®aa ae

‚aY ?®aa ae,  c? ie?Yai a 0x (?«? 0X) a aa¬ aa?c –
iaai ? ? eYaa ¤ae a?a?ceY. ?Yaa ¤ae a?a?ceY ?®aa ae,?aY-
cee ie?Y 0xFFFFFFFF, ?a?c®¤ia ? ®e?!?Y.

‘aaeae??ae ¤«?ea ?®aa a ? ?®aa a !Y§ § ? 

…a«? § ?®aa a®© a«Y¤aYa aaaeae??a L (?«? l), a® a ? i
?®aa a  !a¤Ya ?aY¤aa c«Y  ? ? ¤«? i (a??  long).? «®-
F?ce¬ ®!a §®¬, aaaeae??a U (?«? u) ¤Y« Ya ?®aa aa ?®aa –
a®© !Y§ § ?  (unsigned). …a«? c?a«Y®Y § cY?Y ?®aa ae
?aYcee Ya ¤Yaia?c®Y 65,535, Y§ c?a?¬® ®a ?a?®«i§aY¬®F® ®a-
®c ?ia?aaY¬e ac?a«Y?i, a® a ? i ?®aa a  !a¤Ya ?¬Yai a??
unsigned long. ‘aaeae??ae ¬®¦® a? §ec ai ¤«i ®¤®© ? a®© ¦Y
?®aa ae c ?a®?§c®«i®¬ ?®ai¤?Y ?  !?a ai c «i!®¬ aYF?aa-
aY: ul, lu, UL ? a.¤.

’?? ¤ ea ?®aa ae ?a? ®aaaaaac?? ? ??a-«?!® aaaeae??-
a®c c®®!eY (U, u, L ?«? l) !YaYaai ?§ a«Y¤aieY© a !«?aee,?Ya-
ce©¦Y, ?®a®ae© a¤®c«Yac®aiYa aaY!®c ?i¬ cY«?c?e ia®©
?®aa ae:

———————————————————–
¤Yaia?c i int, long int, unsigned long int
c®ai¬Ya?c i int, unsigned int, long int, unsigned long
int
eYaa ¤ae a?a?c i int, unsigned int, long int, unsigned
long int
———————————————————–

…a«? ?®aa a  ?¬YYa aaaeae??a U ?«? u, a® YY a?? ¤ ea
!a¤Ya ?Yace¬ ?§ a??®c unsigned int, insigned long int, ?®a®-
ae© a¤®c«Yac®a?a aaY!®c ?i¬ YY cY«?c?e.

…a«? ?®aa a  ?¬YYa aaaeae??a L ?«? l, a® YY a?? ¤ ea
!a¤Ya ?Yace¬ ?§ a??®c long int, unsigned long int, ?®a®ae©
a¤®c«Yac®a?a aaY!®c ?i¬ YY cY«?c?e.

…a«? ?®aa a  ?¬YYa ®!  aaaeae??a  u ? l (ul, lu, Ul,
lU,uL, Lu, LU ?«? UL), a® ®  !a¤Ya ?¬Yai a?? ¤ ea

– 16 –
unsigned long int.

‚ a !«?aeY 1.6 acY¤Ye ?aY¤aa c«Y?i aeY«®c?a«Yea ?®a-
a a ¤«i caYa aaYa a?aaY¬ ac?a«Y?i. “? § eY a??e ¤ ea
?aY¤?®« F ia ®aaaaaac?Y ?YaY®?aY¤Y«iie?a aaaeae??a®c L ?«? U.

–Y«®c?a«YeY ?®aa ae Turbo C++ !Y§ L ?«? U ’ !«?ae  1.6
———————————————————–
„Yaia?ceY ?®aa ae

0 ¤® 32,767 int
32,768 ¤® 2,147,483,647 long
2,147,483,648 ¤® 4,294,967,295 unsigned long

> 4294967295 ?YYa?aaYaai ®e?!? 

‚®ai¬Ya?ceY ?®aa ae

00 ¤® 077777 int
0100000 ¤® 0177777 unsigned int
02000000 ¤® 017777777777 long
020000000000 ¤® 037777777777 unsigned long

> 037777777777 ?YYa?aaYaai ®e?!? 

?Yaa ¤ae a?a?ceY ?®aa ae

0x0000 ¤® 0x7FFF int
0x8000 ¤® 0xFFFF unsigned int
0x10000 ¤® 0x7FFFFFFF long
0x80000000 ¤® 0xFFFFFFFF unsigned long

> 0xFFFFFFFF ?YYa?aaYaai ®e?!? 
———————————————————–

‘?¬c®«ieY ?®aa ae

‘?¬c®«i i ?®aa a  – ia®®¤? ?«? !®«YY a?¬c®«®c, § ?-
«icYea c ®¤? aeY ? cec??,  ?a?¬Ya ‘F’, ‘=’, ‘\n’. ‚ C
?®aa ae ?§®¤®F®a?¬c®«  ?¬Yiaa?? Int ? ?¬Yia caaaYYY
?aY¤aa c«Y?Y16 !?a, c a® caY¬i? ? aa ae?© ! ©a a«®c  § ?®«-
iYaai a«Y¬ ?«? § ?®¬. ‚ C++ ?®aa a  ?§ ®¤®F® a?¬c®« 
?¬YYa a?? char. ?®F®a?¬c®«ieY ?®aa ae ? ? c C, a ? ? c C
++, ?¬Yia a?? ¤ ea Int.

“?a c«iie?Y ?®a«Y¤®c aY«i®aa?

„«i ccY¤Y?i a?a c«iie?a ?®a«Y¤®c aY«i®aaY©,?®§c®«ii-
e?a ?®«ac?ai c?§a «i®Y ?aY¤aa c«Y?Y Y?®a®aea Y ?¬Yie?a
Fa ae?cYa?®F®  «®F  a?¬c®«®c, ?a?®«i§aYaai a?¬c®« ®!a a®©
 ?«®®© cYaae (\). ˜ ?a?¬Ya, c ? cYaacY ®¤®F® a?¬c®«  ®-
c®© aaa®?? ¬®¦® § ??a ai ?®aa aa \n.

?!a a i ?«® i cYaa  ?a?®«i§aYaaia c®ai¬Ya?ce¬? ?«?
eYaa ¤ae a?a?ce¬? c?a« ¬? ¤«i ?aY¤aa c«Y?i ASCII-a?¬c®« ¬?
a?a c«iieYF® ?®¤ , a®®acYaaacaieY¬aia®¬a § cY?i;  ?a?¬Ya,
‘\03’ c¬Yaa® Ctrl-C ?«? ‘\x3F’ c¬Yaa® c®?a®a?aY«i®F® § ? .
‚ a?a c«iieY© ?®a«Y¤®c aY«i®aa? ¬®¦Ya a®¤Ya¦ aiai aaa®? 
¤«?®© ¤® aaYa c®ai¬Ya?cea ?«?«i!®Y c?a«® eYaa ¤ae a?a?cea
ae?aea,?a? aa«®c??, ca®¤ ®Y§ cY?Y «Y¦?a c ¤®?aaa?¬®¬ ¤«i
a??  ¤ ea char ¤? ? §®Y (®a 0 ¤® 0xff ¤«i Turbo C++).
˜®«ie?Y § cY?i cY¤aa? ?®ic«Y?i ®e?!?? ?®¬??«iae?? “Numeric
constant too large” (“c?a«®c i ?®aa a  a«?e?®¬ cY«?? “).
˜ ?a?¬Ya, c®ai¬Ya?c®Y c?a«® \777 !®«ieY ¬ ?a?¬ «i® ¤®?aa-
a?¬®F® § cY?i \377, ? ce§®cYa FYYa?a®c ?Y ®e?!??. ˜Yac®Y
¦Y Y-c®ai¬Ya?c®Y?«? Y-eYaa ¤ae a?a?c®Y § cY?Y, caaaY-
cY®Y c c®ai¬Ya?c®©?«? eYaa ¤ae a?a?c®© a?a c«iieY© ?®a-

– 17 –
«Y¤®c aY«i®aa?, ®§ c Ya ?®Yae ¤ ®© ?®a«Y¤®c aY«i®aa?.

‚ ?aa®¤®© cYaa?? Turbo C ¤®?aa? «®ai a®«i?® aa? ae?aeae
eYaa ¤ae a?a?c®© a?a c«iieY© ?®a«Y¤®c aY«i®aa?. ˜®ceY ?a –
c?«  ANSI C, aY «?§®c eY c Turbo C cYaa?? 2.0 ? TurboC++,
¬®Faa ce§c ai ?a®!«Y¬e a® aa ae¬? ?®¤ ¬?, ?aY¤?®« F ie?¬?
?aY®!a §®c ?Y a®«i?® ?Yacea aaYa a?¬c®«®c. ˜ ?a?¬Ya, ?a?
?a?®«i§®c ?? cYaa?? Turbo C 1.x ¤«i ®?aY¤Y«Y?i aaa®?? a®
§ca?®ce¬ a?F «®¬ (?®¤ ASCII 7), ?®a«Y ?®a®a®F® a«Y¤aia c?a-
«®ceY a?¬c®«e, ?a®Fa ¬¬?aa ¬®¦Ya  ??a ai:

printf(“\x0072.1˜a®aa i ®?Ya ae?® i a?aaY¬ “);

˜aY¤?®« F Yaai, ca® ia  aaa®?  !a¤Ya ?aYa?aYa?a®c  
? ? \x007 ? “2.1˜a®aa i ®?Ya ae?® i a?aaY¬ “. ?¤ ?®, Turbo
C++ (? TurboC cYaa?? 2.0) ?®¬??«?aaia YY ? ? eYaa ¤ae a?a?c-
®Y c?a«® \x0072 ? «?aYa «iai aaa®?a “.1˜a®aa i ®?Ya ae?®-
 i a?aaY¬ “.

—a®!e ?§!Y¦ ai ia?a ?a®!«Y¬, ?YaY??e?aYc e ?®¤ a«Y¤ai-
e?¬ ®!a §®¬:

printf(“\x007” “2.1˜a®aa i ®?Ya ae?® i a?aaY¬ “);

˜Y®¤®§ c®aai ¬®¦Ya c®§??aai a ?¦Y ? c a«ac Y,
?®F¤  §  c®ai¬Ya?c®© a?a c«iieY© ?®a«Y¤®c aY«i®aaii a«Y¤a-
Ya Yc®ai¬Ya?c i ae?aea . ˜ ?a?¬Ya, ?®a?®«i?a 8 ? 9Y ic«iia-
ai ¤®?aaa?¬e¬? c®ai¬Ya?ce¬? ae?aea ¬?, ?®aa a  \258 !a¤Ya
?aYa?aYa?a®c   ? ?¤caaa?¬c®«i i?®aa a , a®aa c«Y i ?§
a?¬c®«®c \25 ? 8.

‚ a«Y¤aieY© a !«?aeY ?®? § e ¤®?aaa?¬eY a?a c«iie?Y
?®a«Y¤®c aY«i®aa?.

“?a c«iie?Y ?®a«Y¤®c aY«i®aa? Turbo C++ ’ !«?ae  1.7
———————————————————–
˜®a«Y¤®c aY«i®aai ‡ cY?Y ‘?¬c®«e‚e?®«iY¬ i aea?ae?i
———————————————————–
\a 0x07BEL‡ca?®c®© a?F «
\b 0x08BS‡ !®©
\f 0x0CFF˜YaYc®¤ !« ? 
\n 0x0ALF˜®c i aaa®?  (?YaYc®¤ aaa®??)
\r 0x0DCR‚®§ca a ? aYa??
\t 0x09HT’ !a«iae?i (F®a?§®a «i i)
\v 0x0BVT‚Yaa?? «i i a !a«iae?i
\\ 0x5c\?!a a i  ?«® i cYaa 

„«i ae ?a?cYa?®F® ?aY¤aa c«Y?i a?¬c®«  ASCII “®!a a i
 ?«® i cYaa “, ?a?®«i§aY¬®F®  ?a?¬Ya c ?®¬ ¤Y DOS PATH,
a«Y¤aYa § ??aec ai YY ? ? \\.

\’ 0x27 ‘ ?¤? a i ? cec?  ( ?®aaa®ae)
\” 0x22 ” „c®© i ? cec? 
\? 0x3F ? ‚®?a®a?aY«ie© § ?
\O«i!eYO = aaa®?  ¤® aaYa c®ai¬?-
a?cea ae?aea
\xH «i!eYH = aaa®?  eYaa ¤ae a?a?c-
ea ae?aea
\XH «i!eYH = aaa®?  eYaa ¤ae a?a?c-
ea ae?aea
———————————————————–

‘?Yae? «ieY ¤caa-a?¬c®«ieY ?®aa ae Turbo C++

Turbo C++ ?®¤¤Ya¦?c Ya a ?¦Y ¤caa-a?¬c®«ieY ?®aa ae
( ?a?¬Ya, ‘An’, ‘\n\t’ ? ‘\007\007’). ˜a? ?®aa ae ?aY¤a-

– 18 –
a c«Ye 16-!?a®ce¬? § cY?i¬? a?? Int, F¤Y ?Yace© a?¬c®«
a a?®«®¦Y c ¬« ¤eY¬ ! ©aY,   ca®a®© a?¬c®« – c aa aeY¬ ! ©-
aY. ˜a? ?®aa ae Y ¬®Faa !eai ?YaYYaYe   ¤aaF?Y ?®¬??-
«ia®ae C.

‘?¬c®«ieY ?®aa ae a® § ?®¬ ? !Y§ § ? 

‚ C ®¤®-a?¬c®«ieY ?®aa ae, a ??Y ? ? ‘A’, ‘\t’ ? ‘\
007’, a ?¦Y?aY¤aa c«Ye 16-!?a®ce¬? § cY?i¬? a??  Int. ‚
ia®¬ a«ac Y ?a®?aa®¤?a a ae?aY?Y ¬« ¤eYF® ! ©a  c aa ae?©
! ©a ?® § ?a; a ??¬®!a §®¬, Ya«?§ cY?Y ?aYcee Ya 127 (®a-
®c ?Y 10), a® aa ae?© ! ©a aaa  c«?c Yaai a ce¬ -1
(=0xFF). ˜a® ac®©aac® ¬®¦® ®a¬Y?ai, ®!eic?c, ca® ?® a¬®«-
c ?i a?? char ic«iYaai unsigned (?a? ?®¬®e? ®?ae?? -R TCC,
«?!® ce!®a®¬ c ¬Yi Options \! Compiler \! CodeGeneration
®?ae?i Unsigned Characters), ca®?a?cY¤Ya ? ®!a«Y?i aa aeYF®
! ©a  Y§ c?a?¬® ®a § cY?i ¬« ¤eYF® ! ©a .

??a®??Y a?¬c®«ieY ?®aa ae (a®«i?® C)

‘?¬c®«i i ?®aa a , ?®a®a®© ?aY¤eYaacaYa L,  §ec Ya-
ai e?a®?®© a?¬c®«i®©?®aa a®© ? ?¬YYa a?? ¤ ea wchar_t
(?aYFa «ie© a??, ®?aY¤Y«iY¬e© c stdef.h). ˜ ?a?¬Ya,

x = L ‘AB’;

?®aa ae a ?« c ieY© a®c?®©

?®aa a  a ?« c ieY© a®c?®© a®aa®?a ?§ eYaa? c aaY©:

– ¤Yaia?c®Y aeY«®Y
– ¤Yaia?c i a®c? 
– ¤Yaia?c®Y ¤a®!®Y
– e ?«? E ? aeY«®c?a«Y i i?a?®Ya  a® § ?®¬ (®?ae?® «i®)
– aaaeae??a a?? : f ?«? F, «?!® l ?«? L (®?ae?® «i®)

„Yaia?c®Y aeY«®Y ?«? ¤Yaia?c®Y ¤a®!®Y (® Y a® ?
¤aaF®Y) ¬®¦® ®?aaa?ai. ?®¦® ®?aaa?ai «?!® ¤Yaia?cai a®c-
?a, «?!® !a?ca e (?«? E) a aeY«®c?a«Y®© i?a?®Ya®© a® § –
?®¬ (® Y a® ? ¤aaF®Y). ˜a? ?a c?«  ?®§c®«iia ce?®«iai § –
??ai c?aY« ? ? c ®!ec®©, a ? ? c  ac®© (i?a?®Yae? «i®©)
ae®a¬Y.

?aa?ae aY«ieY ?®aa aea ?« c ieY© a®c?®© !Yaaaai ? ?
?®«®¦?aY«ieY ?®aa ae a ?aYae??a®¬ – a a®© ®?Ya ae?Y© ¬?-
aa (-).

˜a?¬Yae:
————————————-
?®aa a  ‡ cY?Y
————————————-
6
23.45e6 23.45 x 10

.0 0

0. 0
0
1. 1.0 x 10 = 1.0

-1.23 -1.23
-5
2e-5 2.0 x 10
10
3E+10 3.0 x 10

– 19 –
34
.09E34 0.09 x 10
————————————-

?®aa ae a ?« c ieY© a®c?®© – a??e ¤ ea

˜a? ®aaaaaac?? ? ??a-«?!® aaaeae??a®c ?®aa ae a ?« c i-
eY© a®c?®© ?¬Yia a?? ¤ ea double. ?¤ ?®, ce ¬®¦YaY ?a?a-
c®?ai ?®aa aY a ?« c ieY© a®c?®© a?? ¤ ea float, ¤®! c?c
? Y© aaaeae??a f ?«? F. ? «®F?ce¬ ®!a §®¬, aaaeae??al ?«?L
?a?ac®?a ?®aa aY a?? ¤ ea long double. ‚ a«Y¤aieY© a !-
«?aeY ?®? § e ¤? ? §®e § cY?©, ?®a®aeY ¬®Faa ?a??¬ ai
a??e ¤ ea float, double ? long double.

˜ §¬Yae ? ¤? ? §®e
?®aa a a ?« c ieY© a®c?®© Turbo C++ ’ !«?ae  1.8
———————————————————–
’?? ˜ §¬Ya (c !?a a) „? ? §® § cY?©
———————————————————–
-38 38
float 32 3.4 x 10 ¤® 3.4 x 10
-308 308
double 64 1.7 x 10 ¤® 1.7 x 10
-4932 4932
long double 80 3.4 x 10 ¤® 1.1 x 10
———————————————————–
˜YaYc?a«?¬eY ?®aa ae

˜YaYc?a«?¬eY ?®aa ae ?aY¤aa c«iia a®!®© ?¤Ya?ae?? a®-
ae, ®?aY¤Y«YeY c ®!eic«Y?ia a??  enum.˜a? ?¤Ya?ae?? a®ae
®!ec® ce!?a iaai ? ? ¬Y¬®?cYa??Y ®!®§ cY?i ¤«i a¤®!aac 
®!a eY?i a ¤ e¬?. ˜YaYc?a«?¬eY ?®aa ae ?¬YiaaeY«®c?a«Y-
e© a?? ¤ ea. ?? ¬®Faa !eai ?a?®«i§®c e c «i!ea cea ¦Y-
?ia, c ?®a®aea ¤®?aaa?¬ aeY«®c?a«Ye©a?? ¤ ea. ?a?®«i§aY-
¬eY ?¤Ya?ae?? a®ae ¤®«¦e !eai a?? «ie¬? c ?aY¤Y« a
?®aY?aa  ®!eic«Y?i enum.

‡ cY?i, ?a??¬ Y¬eY ?YaYc?a«?¬e¬? ?®aa a ¬?,§ c?aia
®a ae®a¬ a  ®!eic«Y?i ?YaYc?a«?¬®F® a??  ? ?a?aaaaac?i ®?ae?-
® «iea ??ae? «?§ a®a®c. ‚ ¤ ®¬ ?a?¬YaY,

enum team (* giants, cubs, dodgers *);

giants, cubs ? dodgers ia® ?YaYc?a«?¬eY ?®aa ae a?? 
team, ?®a®aeY ¬®Faa !eai  § cYe «i!e¬ ?YaY¬Ye¬ a?? 
team ?«? «i!®© ¤aaF®© ?YaY¬Y®© aeY«®c?a«Y®F® a?? . ‡ cY-
?i, ?a??¬ Y¬eY ?YaYc?a«?¬e¬? ?®aa a ¬?,

giants = 0, cubs = 1, dodgers = 2

?a? aa«®c?? ®aaaaaac?i icea ??ae? «?§ a®a®c. ‚ a«Y¤ai-
eY¬ ?a?¬YaY,

enum team (* giants, cubs=3, dodgers = giants + 1 *);

?®aa ae aaa ®c«Ye a«Y¤aie?¬ ®!a §®¬:

giants = 0, cubs = 3, dodgers = 1

‡ cY?i ?®aa a Y ®!i§ e !eai a?? «ie¬?:

enum team (* giants, cubs = 1, dodgers = cubs – 1 *);

„®?aaa?¬e a ?¦Y ®aa?ae aY«ieY ??ae? «?§ a®ae.

‘aa®?®ceY «?aYa «e

– 20 –
‘aa®?®ceY «?aYa «e, ?§cYaaeY a ?¦Y ? ? aaa®?®ceY ?®a-
a ae, ®!a §aia a?Yae? «iai ? aYF®a?i ?®aa a, ?a?®«i§aY¬ea
¤«i a !®ae a ae??a?a®c e¬? ?®a«Y¤®c aY«i®aai¬? a?¬c®«®c.
‘aa®?®ce© «?aYa « ?¬YYaa?? ¤ ea array ofchar ? ?« aa? ¬i-
a?static, ? § ??aec Yaai? ? ?®a«Y¤®c aY«i®aai ?a®?§c®«i®F®
?®«?cYaac  a?¬c®«®c, § ?«icYea c ¤c®©eY ? cec??:

“˜a® aaa®?®ce© «?aYa «!”

˜a«Yc i (?aaa i) aaa®?  § ??aec Yaai ? ? “”.

‘?¬c®«e caaa? ¤c®©ea ? cecY? ¬®Faa c?«ic aia?a c«ii-
e?Y ?®a«Y¤®c aY«i®aa? (a¬. aaa. 13 ®a?F? « ). ˜ ?a?¬Ya,
¤ e© ?®¤,

“\t\t\”?¬i \”\\\t?¤aYa\n\n”

a a?Yc a Yaai a«Y¤aie?¬ ®!a §®¬:

“?¬i “\ ?¤aYa

‘«®ca “?¬i ” !a¤Ya ?aY¤eYaac®c ai ¤c  a?¬c®«  a !a«i-
ae??; a«®ca ?¤aYa ?aY¤eYaacaYa®¤? a?¬c®«a !a«iae??. ‘aa®? 
§ ? c?c Yaai¤ca¬i a?¬c®« ¬? ®c®© aaa®??. ˜®a«Y¤®c aY«i-
®aai \” ®!Ya?Yc?c Ya cec®¤ caaaY?a ? cecY?.

‘aa®?  «?aYa «  aa ?aai c ? ¬ia? ? ? § ¤  i ?®a«Y¤®-
c aY«i®aai a?¬c®«®c,?«ia ?®Yce© ?aaa®© a?¬c®« (‘\0’). ˜a-
«Yc i aaa®?  aa ?aai c c?¤Y ®¤®F® a?¬c®«  ‘\0’.

˜  ae §Y «Y?a?cYa?®F®   «?§  a®aY¤?Y aaa®?®ceY
«?aYa «e, a §¤Y«YeY a®«i?®?a®!Y« ¬?, ?®? aY?aaiaai. ‚
a«Y¤aieY¬ ?a?¬YaY,

#include

main()
(*
char *p;

p = “˜a® ?a?¬Ya a®F®, ? ? Turbo C++”
”  ca®¬ a?cYa??\nce?®«iYa ¤«i c a ?®? aY ae?i”
” ®cYi ¤«?ea aaa®?,\nca® ?®§c®«iYa ?®«ac?ai”
” !®«YY ?a a?ceY ?a®Fa ¬¬e.”;
printf(*p*);
*)

˜  cea®¤Y ?a®Fa ¬¬e !a¤Ya:

˜a® ?a?¬Ya a®F®, ? ? Turbo C++  ca®¬ a?cYa??
ce?®«iYa ¤«i c a ?®? aY ae?i ®cYi ¤«?ea aaa®?,
ca® ?®§c®«iYa ?®«ac?ai !®«YY ?a a?ceY ?a®Fa ¬¬e.

„«i a ae?aY?i aaa®?®c®© ?®aa ae §  Fa ?aee aaa®?? c
? cYaacY a?¬c®«  ?a®¤®«¦Y?i ¬®¦® ?a?®«i§®c ai ®!a aai
 ?«®ai cYaaa (\):

put(“‚ ¤Y©aac?aY«i®aa? \
ia® ®¤®aaa®c i aaa®?  a?¬c®«®c”);
?®aa ae ? ?a caaaYYY ?aY¤aa c«Y?Y

ANSI C F®c®a?a ® a®¬, ca® a §¬Ya ? c?a«Ye© ¤? ? §®
! §®cea a??®c¤ ea( ? a §«?cea ?a ¬®¤?ae?? ae?©) § c?aia ®a
?®?aYa®© aY «?§ ae?? ?®¬??«ia®a  ? c aeY«®¬ ®a  aa?aY?aaae
?®¬?iiaYa ,   ?®a®a®¬ ® aaa ®c«Y. ˜ §®ce¬? ?®¬?iiaYa ¬?
¤«iTurbo C++ ic«iiaai ?®¬?iiaYae aY¬Y©aac IBM PC (? a®c¬Ya-
a?¬eY a ?¬?), ?®ia®¬a ce!®a caaaYYF® ?aY¤aa c«Y?i a §-

– 21 –
«?cea a??®c ¤ ea c aeY«®¬ ®?aY¤Y«iYaai  aa?aY?aaa®© ¬??-
a®?a®aeYaa®a®c 8088 ? 80×86. ‚ a«Y¤aieY© a !«?aeY acY¤Ye
a §¬Yae ? a®®acYaaacaie?Y ¤? ? §®e § cY?© ¤«i a??®c ¤ –
ea, ®?aY¤Y«iY¬ea c Turbo C++. „®?®«?aY«iai ?ae®a¬ ae?i ®!
ia?a a?? a ¤ ea a¬.   aaa. 39 ®a?F? « . ‚aaaYYY
?aY¤aa c«Y?Y a??®c ¤ ea a¬.   a?a.1.

’??e ¤ ea, a §¬Yae ? ¤? ? §®e § cY?© ’ !«?ae  1.9
———————————————————–
’?? ˜ §¬Ya „? ? §® ˜a?¬Yae ?a?¬YY?i
———————————————————–
unsigned char8 0 ¤® 255 ? «eY c?a«  ? ?®«e©
 !®a a?¬c®«®c PC

char8 -128 ¤® 127 ‘ ¬eY ¬ «eY c?a«  ?
ASCII-a?¬c®«e

enum 16 -32,768 ¤® 32,767 “?®ai¤®cYeY  !®ae
§ cY?©

unsigned int 16 0 ¤® 65,535 ˜®«ie?Y c?a«  ? ae??«e

short int 16 -32,768 ¤® 32,767 ‘cYac???, ¬ «eY c?a« ,
a?a c«Y?Y ae??« ¬?

int 16 -32,768 ¤® 32,767 ‘cYac???, ¬ «eY c?a« ,
a?a c«Y?Y ae??« ¬?

unsigned long 32 0 ¤® 4,294,967,295 ?aaa®®¬?cYa??Y
a aaa®i?i

long 32 -2,147,483,648 ¤® 2,147,483,647
˜®«ie?Y c?a« ,  aY«Y?Y

-38 38
float 32 3.4 x 10 ¤® 3.4 x 10
˜ aceY a acYae (a®c®aai
7 a §ai¤®c)

-308 308
double 64 1.7 x 10 ¤® 1.7 x 10
˜ aceY a acYae (a®c®aai
15 a §ai¤®c)

-4932 4932
long double 80 3.4 x 10 ¤® 1.1 x 10
”? a®ceY a acYae
(a®c®aai 19 § ?®c)

near pointer 16 ˜Y aaeYaacaYa ? ??a«?a®c ?Y  ¤aYa ¬?
? ¬ia?

far pointer 32 ˜Y aaeYaacaYa ? ??a«?a®c ?Y  ¤aYa ¬?
? ¬ia? cY aY?aeYF®
aYF¬Ya 
———————————————————–

- 22 - 31 0 ---------------------- \! \!a¬YeYe©\!¬ a?aa \! float \!s\!?®ai¤®? \! \! ---------------------- 31 0 -------------------------------- \! \! a¬YeYe© \! ¬ a?aa  \! double \!s\! ?®ai¤®? \! \! -------------------------------- 63 0 ---------------------------------------- \! \! a¬YeYe© \! \! ¬ a?aa  \! long double \!s\! ?®ai¤®? \! \! \! ---------------------------------------- 79 0 s = § ?®ce© !?a (0 = ?®«®¦?a, 1 = ®aa?ae a) = ?®§?ae?i Yic®© ¤c®?c®© a®c?? 1 = aeY«®c?a«Ye© !?a ¬ a?aae: § ??aec Yaai c long double Yic® (caYF¤  1) c float, double ‘¬YeYe© ?®ai¤®? (®a¬ «?§®c eY § cY?i): float:127 (7FH) double:1023 (3FFH) long double: 16,383 (3FFFH) ˜?a.1.1 ‚aaaY?Y ?aY¤aa c«Y?i a??®c ¤ ea ‚ea ¦Y?i a ?®aa a ¬? ‚ea ¦Y?Y a ?®aa a ¬? ia® cea ¦Y?Y, cec?a«Y?Y ?®a®- a®F® ¤ Yac aY§a«ia aY ?®aa aa (?a?cY¬ «Y¦ eai c ¤? ? §®Y, ®?aY¤Y«Y®¬ ¤«i ?®aa a ¤ ®F® a?? ). ‚ec?a«Y?Y cea ¦Y- ?© a ?®aa a ¬? ce?®«iYaai a ? ¦Y, ? ? ? ®!ecea cea ¦Y- ?©. ‚ea ¦Y?i a ?®aa a ¬? ¬®¦® ?a?®«i§®c ai cY§¤Y, F¤Y- ¤®?aa? Yaai ?a?®«i§®c ?Y a ¬?a ?®aa a. ‘?a ?a?a cea ¦Y?© a?®aa a ¬? a«Y¤aie?©: cea ¦Y?Y-a-?®aa a ¬?: aa«®c®Y-cea ¦Y?Y ‚ea ¦Y?i a ?®aa a ¬? Y ¬®Faa a®¤Ya¦ ai ?a?c®¤?¬ea ?¦Y ®?Ya ae?©, Ya«? ia? ®?Ya ae?? Y a®¤Ya¦ aai c ®?Ya ¤Y ®?Ya ae?? sizeof: - ?a?ac ?c ?Y - ¤Y?aY¬Ya - ce§®c aea?ae?? - § ?ia i ???a ?Y ®?Ya ae?© ??Ya ae?i¬?  §ec iaai «Y?aY¬e, ce§ec ie?Y Y?®a®aeY ce- c?a«Y?i a?YaY¬Ye¬? ??a®c?¬? ®!eY?a ¬?, a? § e¬? c cea - ¦Y??. Turbo C++ ?¬YYa®a®!Y® !®F ae©  !®a ®?Ya ae?©, c?«i- c ie?© c aY!i ?®¬?¬® ®!ecea  a?ae¬Ya?cYa??a ? «®F?cYa??a ®?Ya ae?© aaY¤aac  ¬ ??a«iae?? a ¤ e¬?   !?a®c®¬ aa®cY, ¤®aaa?  ? ?®¬?®Ya ¬ aaaa?aaa ?®!eY¤?Y?©,   a ?¦Y®?Ya ae?? a a? § aY«i¬? (aaa ®c?  ? ®!a eY?Y ?® aae«?Y). ˜ ae?aY?i C++ ?aY¤« F ia ¤®?®«?aY«ieY ®?Ya ae?? ¤«i - 23 - ¤®aaa?  ? ?®¬?®Ya ¬ ?« aa  ? ?a ®!eY?a ¬,  a ?¦Y ¬Ya ?§¬ ?YaYFaa§?? ®?Ya ae?©. ˜YaYFaa§?  ?®§c®«iYa ?YaY®?aY¤Y«iai ¤Y©aac?Y «i!ea aa ¤ aaea ®?Ya ae?© ?a?¬Y?aY«i® ? ®!eY?a ¬ § ¤ ®F® ?« aa . ‚ ¤ ®¬ a §¤Y«Y ¬e ®Fa ?c?¬ai a aa¬®aaY- ?Y¬ aa ¤ aaea ®?Ya ae?© TurboC++. ˜YaYFaa§?  a aa¬ aa?c - Yaai,  c? i a® aaa.124 ®a?F? « . ˜®a«Y ®?aY¤Y«Y?i aa ¤ aaea ®?Ya ae?© ¬e ®!aa¤?¬ a??e ¤ ea ? ®!eic«Y?i,   a ?¦Y ®!eia?¬, ? ? ®? c«?iia   ¤Y©aac?Y ? ¦¤®© ®?Ya ae??. ‡ aY¬ ¬e ?YaY©¤Y¬ ? a aa¬®aaY?i a?a ?a?a  ?®aaa®Y?i cea ¦Y?© a ?®¬®eii ®?Ya ae?©, ?a?aa - a®a®c ? ®!eY?a®c. ??Ya ae?? c Turbo C++ ®?aY¤Y«iiaai a«Y¤aie?¬ ®!a §®¬: ®?Ya ae?i: ®¤® ?§ [] () . -> ++ —
& * + – a?«i¤  !
sizeof / % > = == != ^
\! && \!\! ?: = *=
/= %= += -= >=
&= ^= \!= , # ##

??Ya ae?? # ? ## ?a?®«i§aiaai a®«i?® ?aY?a®aeYaa®a®¬ (a¬.
aaa. 133 ®a?F? « ).

‘«Y¤aie?Y ®?Ya ae?? ic«iiaai a?Yae?ae?ce¬? ¤«i C++:

:: .* ->*

‡  ?a?«icY?Y¬ ®?Ya ae?© [], () ? ?:, a«a¦ e?a ¤«i § ??-
a? cea ¦Y?© c a?®!? a, ¬®F®a?¬c®«ieY ®?Ya ae?? a aa¬ aa?-
c iaai c ? cYaacY ®¤®© «Y?aY¬e. ‹Y?aY¬  ®¤®© ? a®© ¦Y ®?Y-
a ae?? ¬®¦Ya ?¬YaiYa?®«i?® ?aYa?aYa ae?©, c § c?a?¬®aa? ®a
?®aY?aa . ˜ ?a?¬Ya,

A * B “¬®¦Y?Y
*ptr ?!a eY?Y ?® aae«?Y

A & B ˜®a §ai¤®Y ?
&A ??Ya ae?i  ¤aYa ae??
int & ?®¤?ae?? a®a a? § aY«i (C++)

label: ?Ya?  ®?Ya a®a 
a ? x : y “a«®ce© ®?Ya a®a

void func(int n); ?!eic«Y?Y aea?ae??
a = (b+c)*d; ‚ea ¦Y?Y a® a?®!? ¬?

a, b, c; ‚ea ¦Y?Y a § ?ia®©
func(a, b, c); ‚e§®c aea?ae??

a = -b; ˜®a §ai¤®Y cec?a ?Y (¤®?®«Y?Y ¤®
Y¤??aee)
-func() (*delete a;*) „Yaaaa?a®a (C++)

“ aeY ®?Ya ae??

& ??Ya ae?i  ¤aYa ae??
* ??Ya ae?i ®!a eY?i ?® aae«?Y
+ “ ae© ?«ia
– “ ae© ¬?aa
a?«i¤  ˜®a §ai¤®Y ¤®?®«Y?Y (¤®?®«Y?Y ¤®
Y¤??aee)
! ‹®F?cYa?®Y ®aa?ae ?Y

– 24 –
++ ˜aYae??a: ?aY¤- ??aY¬Ya;
˜®aaae??a: ?®aa- ??aY¬Ya
— ˜aYae??a: ?aY¤- ¤Y?aY¬Ya;
˜®aaae??a: ?®aa- ¤Y?aY¬Ya
˜? aeY ®?Ya ae??

??Ya ae?? a??  a«®¦Y?i + ˜? ae© ?«ia (a«®¦Y?Y)
– ˜? ae© ¬?aa (cec?a ?Y)

??Ya ae?? a??  a¬®¦Y?i * “¬®¦Y?Y
/ „Y«Y?Y
% ?aa a®? ®a ¤Y«Y?i

??Ya ae?? a¤c?F  > ‘¤c?F c?a c®

˜®a §ai¤eY ®?Ya ae?? & ˜®a §ai¤®Y ?
^ ˜®a §ai¤®Y ?a?«ic ieYY ?‹?
\! ˜®a §ai¤®Y c?«ic ieYY ?‹?

‹®F?cYa??Y ®?Ya ae?? && ‹®F?cYa?®Y ?
\!\! ‹®F?cYa?®Y ?‹?

??Ya a®ae ?a?ac ?c ?i = ˜a?ac ?c ?Y
*= ˜a?ac®?ai ?a®?§cY¤Y?Y
/= ˜a?ac®?ai c aa®Y
%= ˜a?ac®?ai ®aa a®?
+= ˜a?ac®?ai aa¬¬a
-= ˜a?ac®?ai a §®aai
>= ˜a?ac®?ai a¤c?F c?a c®
&= ˜a?ac®?ai ?®a §ai¤®Y ?
^= ˜a?ac®?ai ?®a §ai¤®Y ?a?«ic ieYY
?‹?
\!= ˜a?ac®?ai ?®a §ai¤®Y ?‹?

??Ya ae?? ®a®eY?i ˜®«ieY
= ˜®«ieY ?«? a c®

??Ya ae?? a cYaac  == ˜ c®
!= ˜Y a c®

??Ya ae?? ce!®a  . ˜ai¬®© aY«Y?a®a ?®¬?®Ya 
?®¬?®Ya  -> ?®acYe© aY«Y?a®a ?®¬?®Ya 

??Ya ae?? a ?®¬?®Ya ¬? :: „®aaa?/a §aYeY?Y ?®aY?aa 
?« aa  .* ?!a eY?Y cYaY§ a? § aY«i
? ?®¬?®Yaa ?« aa 
->* ?!a eY?Y cYaY§ a? § aY«i
? ?®¬?®Yaa ?« aa 

“a«®ceY ®?Ya ae?? a ? x : y “…a«? a a® x ? cY y”

??Ya ae?i § ?ia®© , ‚ec?a«?ai,  ?a?¬Ya, a, b, c
a«Yc  –  ?a c®

”a?ae?? ia?a ®?Ya ae?©,a ?¦Y ? ? ?a a?a ?a?a, ?a?®a?aYa
? ac®©aac   aa®ae? a?c®aa? a aa¬ aa?c iaai,  c? i a® aaa.
73 ®a?F? « .

˜a?aa a®ae

‚ TurboC++ ?a?aa a®ae, a ?¦Y  §ec Y¬eY a §¤Y«?aY«i¬?,
®?aY¤Y«iiaai a«Y¤aie?¬ ®!a §®¬:

– 25 –
?a?aa a®a: ®¤® ?§
[ ] ( ) (* *) , ; : … * = #

?c ¤a aeY a?®!??

[] (®a?aec ie i ? § ?aec ie i ?c ¤a aeY a?®!??) a? §e-
c ia   ?¤Y?ae ®¤®- ? ¬®F®¬Yaea ¬ aa?c®c:

char ch, str[] = “Stan”
int mat[3][4]; /* ¬ aa?ae  3 x 4 */
ch = str[3]; /* 4-© i«Y¬Ya */

?aaF«eY a?®!??

() (®a?aec ie i ? § ?aec ie i ?aaF«eYa?®!??) Faa???aaia
cea ¦Y?i, ce¤Y«iia aa«®ceY cea ¦Y?i ? a? §ec ia   ce§®ce
aea?ae?© ? ? a ¬Yaae aea?ae?©:

d = c * (a + b); /* ?YaY®?aY¤Y«Y?Y ®a¬ «i®F® ?a?®a?-
aYa  */
/* ce?®«Y?i ®?Ya ae?© */
if (d == z) ++x; /* c ¦® ?a? ?a?®«i§®c ?? aa«®cea
®?Ya ae?© */
func(); /* ce§®c aea?ae?? !Y§  aFa¬Ya®c */
int (*fptr)(); /* ®!eic«Y?Y a? § aY«i aea?ae?? */
fptr = func; /* ®aaaaaac?Y () ®§ c Ya a? § aY«i aea?-
ae?? */
void func2(int n); /* ®!eic«Y?Y aea?ae?? a  aFa¬Ya ¬? */

˜Y?®¬Y¤aYaai?a?®«i§®c ai ?aaF«eY a?®!?? c ¬ ?a®®?aY¤Y-
«Y?ia, ca® ?®§c®«?a ?§!Y¦ ai c®§¬®¦ea ?a®!«Y¬ a ?a?®a?aY-
a ¬? ®?Ya ae?© c® caY¬i a ae?aY?i:

#define CUBE(x) ((x) * (x) * (x))

?a?®«i§®c ?Y ?aaF«ea a?®!®? ¤«i ?§¬YY?i ®a¬ «iea
?a?®a?aYa®c ®?Ya ae?©? ?a c?«  aa®ae? a?c®aa? a¬.   aaa.76
®a?F? « .

”?FaaeY a?®!??

(**) (?a?aec ie?Y ? § ?aec ie?Y ae?FaaeYa?®!??) ®!®§ –
c ia  c «® ? ?®Yae a®aa c®F® ®?Ya a®a :

if (d == z)
(*
++x
func();
*)

‡ ?aec ie i ae?Faa i a?®!?  a«a¦?a aYa¬? a®a®¬ a®aa c-
®F® ®?Ya a®a , ?®ia®¬a (;) (a®c?  a § ?ia®©) ?®a«Y *) Y
aaY!aYaai, §  ?a?«icY?Y¬ aaaa?aaa ?«? ®!eic«Y?© ?« aa®c.
— aa® a®c?  a § ?ia®© Y¤®?aaa?¬ , ? ?  ?a?¬Ya c a«ac Y

if (®?Ya a®a)
(**); /* Y¤®?aaa?¬®Y ?a?®«i§®c ?Y a®c?? a § ?ia®© */
else

‡ ?ia i

‡ ?ia i (,) ®a¤Y«iYa i«Y¬Yae a??a?   aFa¬Ya®c aea?ae??:

void func(int n, float f, char ch);

‡ ?ia i c aa® ?a?®«i§aYaai ? ? ®?Ya ae?i c “®?Ya ae?? a

– 26 –
§ ?ia®©”. ?!Y ia? ®?Ya ae?? ic«iiaai ¤®?aaa?¬e¬?, ® ¤«i a §-
«?cY?i ?a ce ¤®«¦e ?a?®«i§®c ai ?aaF«eY a?®!??:

func(i, j); /* ce§®c aea?ae?? a ¤ca¬i  aFa¬Ya ¬? */
func((exp1, exp2), (exp3, exp4, exp5)); /* a ?¦Y ce§®c
aea?ae?? a ¤ca¬i  aFa¬Ya ¬? */

’®c?  a § ?ia®©

’®c?  a § ?ia®© (;) a«a¦?a aYa¬? a®a®¬ ®?Ya a®a . ‹i-
!®Y ¤®?aaa?¬®Y cea ¦Y?Y‘ (c?«ic i ? ?aaa®Y cea ¦Y?Y), § 
?®a®ae¬ a«Y¤aYa (;), ?aYa?aYa?aaYaai ? ? ®?Ya a®a,  §ec Y-
¬e© ®?Ya a®a®¬ cea ¦Y?i. ‚ea ¦Y?Ycec?a«iYaai,   YF® § cY-
?Y ®a!a aec Yaai. …a«? a ?®Y cea ¦Y?Y Y ?¬YYa?®!®cea iae-
aeY?a®c, a® TurboC++ ¬®¦Ya YF® ?a®?F®a?a®c ai.

a + b; /* a + b cec?a«iYaai, ® ?®«acY®Y § cY?Y
aYaiYaai */
++a; /* ?¬YYaai ?®!®ce© iaeaeY?a ¤«i a, ® aY§a«ia a ++a
*/
/* aYaiYaai */
; /* ?aaa®Y cea ¦Y?Y = a«Yc®© ®?Ya a®a */

’®c?? a§ ?ia®© c aa®?a?®«i§aiaai ¤«i a®§¤ ?i ?aaaea
®?Ya a®a®c:

for (i = 0; i - 27 - ‡cY§¤®c?  (®!eic«Y?Y a? § aY«i) ‡cY§¤®c?  (*) c ®!eic«Y?? ?YaY¬Y®© ®!®§ c Ya a®§¤ - ?Y a? § aY«i   a??: char *char_ptr; /* ®!eic«Y?Y a? § aY«i   a?? char */ ?®¦® ®!eic?ai a? § aY«? a Ya?®«i??¬? aa®ci¬? ?®acY- ®aa?, ca® ®!®§ c Yaai a®®acYaaacaie?¬ ?®«?cYaac®¬ §cY§¤®- cY?: int **int_ptr; /* a? § aY«i   a? § aY«i   int */ double ***double_ptr /* a? § aY«i   a? § aY«i   a? § aY«i   a?? double */ ‡cY§¤®c?  a ?¦Y ?a?®«i§aYaai c ? cYaacY ®?Ya ae?? ®!a - eY?i cYaY§ a? § aY«i, «?!® ®?Ya ae?? a¬®¦Y?i: i = *int_ptr; a = b * 3.14; ‡ ? a cYaac  (??ae? «?§ a®a) ‡ ? a cYaac  (=) a §¤Y«iYa ®!eic«Y?i ?YaY¬Yea ®a a??a?®c ??ae? «?§ ae??: char array[5] = (* 1, 2, 3, 4, 5 *); int x = 5; ‚ aea?ae?ia ‘ ?? ?®© ?®¤ Y ¬®¦Ya ?aY¤eYaac®c ai ?? - ??¬ ®!eic«Y?i¬ ?YaY¬Yea. ‚ ‘++ ®!eic«Y?i «i!®F® a??  ¬®- Faa  a®¤?aiai (a Y?®a®ae¬? ®Fa ?cY?i¬?) c «i!®© a®c?Y caaa? ?®¤ . ‚ a??a?Y  aFa¬Ya®c aea?ae?? ‘++ § ? a cYaac  a? §ec - Ya   § cY?Y ? a ¬Yaa  ?® a¬®«c ?i: int f(int i = 0) (* ... *) /* ? a ¬Yaa i ?¬YYa § cY?Y ?® a¬®«c ?i ®«i */ ‡ ? a cYaac  ?a?®«i§aYaai a ?¦Y ? ? ®?Ya ae?i ?a?ac®Y- ?i c cea ¦Y?ia: a = b + c; ptr = farmalloc(sizeof(float)*100); ‡ ? aeaa  (¤?aY?a?c  ?aY?a®aeYaa®a ) ‡ ? aeaa  (#) ®§ c Ya ¤?aY?a?ca ?aY?a®aeYaa®a , Ya«? ®  ic«iYaai ?Yace¬ Y-?a®!Y«ie¬ a?¬c®«®¬ caaa®?Y. ? § ¤ - Ya ¤Y©aac?Y ?®¬??«ia®a , Y ®!i§ aY«i® aci§ ®Y a FYYa - ae?Y© ?®¤ . ˜®«YY ?®¤a®!® ¤?aY?a?ce ?aY?a®aeYaa®a  ®??a e   aaa.133 ®a?F? « . # ? ## (¤c®©®© § ? aeaa ) a ?¦Y ?a?®«i§aiaai ? ? ®?Y- a ae?? § ¬Ye ? a«?i?i «Y?aY¬   ae §Y a? ?a®c ?i ?®¤  ?aY?a®aeYaa®a®¬. ?!eic«Y?i ‚ ¤ ®¬ a §¤Y«Y ?a a?® a aa¬ aa?c iaai ?®aeY?ae??, aci- § eY a ®!eic«Y?i¬?: ®!eY?a®c, a??®c, ?« aa®c ? ¬ia?, ?®- aY?aa , c?¤?¬®aa?, ?a®¤®«¦?aY«i®aa? ? a??®¬ ?®¬?®®c- ??.˜aY¦¤YcY¬ ?YaY©a? ? a aa¬®aaY?i ?®«®F® a?a ?a?a  ®!eic«Y?i, c ¦® ?¬Yai ®!eYY ?aY¤aa c«Y?Y ®! ia?a ?®ia?- ia. - 28 - ?®aY?aa, c?¤?¬®aai, ?a®¤®«¦?aY«i®aai ? a?? ?®¬?®®c?? ®?aY¤Y«iia c aa? ?a®Fa ¬¬e,?§ ?®a®aea ¬®Faa !eai a¤Y« e ¤®- ?aaa?¬eY aae«??   ?¤Ya?ae?? a®a aaeY«ii¤®aaa?  ? a®®acYaa- acaieY¬a ®!eY?aa. ?®aY?aa ®!aa¦¤ Yaai  aaa.29 ®a?F? « , c?¤?¬®aai -   aaa.30; ?a®¤®«¦?aY«i®aai a aa¬ aa?c Yaai,  c? i a® aaa. 31,   a?? ?®¬?®®c?? -   aaa.32. ?!eY?ae ?!eY?a®¬  §ec Yaai ?¤Ya?ae?ae?aaY¬ i ®!« aai ? ¬ia?, ?®a®a i ¬®¦Ya a®¤Ya¦ ai ae??a?a®c ®Y § cY?Y ?YaY¬Y®© (?«?  !®a a ??a § cY?©). (?a?®«i§aY¬®Y c ¤ ®¬ a«ac Y a«®c® "®!eY?a" Y a«Y¤aYa ?aa ai a !®«YY ®!e?¬ aYa¬?®¬, ?a- ?®«i§aY¬e¬ c ®!eY?a®-®a?Ya?a®c ea i§e? a - a¬. F« ca 5, "‚cY¤Y?Y c ‘++" c ¤®?a¬YaY "˜ c «® a !®ae".) ? ¦¤ i cY«?- c?  ?¬YYa aci§ ®Y a Y© ?¬i ? a?? (?®a®ae© a ?¦Y  §ec ia a??®¬ ¤ ea). ?¬i ?a?®«i§aYaai ¤«i ¤®aaa?  ? ®!eY?aa. ?¬i ¬®¦Ya ic«iaiai ?a®aae¬ ?¤Ya?ae?? a®a®¬, «?!® a«®¦e¬cea ¦Y- ?Y¬, a?? «ie¬ ®!a §®¬ "a? §ec ie?¬"   ¤ e© ®!eY?a. ’?? ?a?®«i§aYaai ¤«i - ¤«i ®?aY¤Y«Y?i aaY!aY¬®F® ?®«?cYaac  ? ¬ia? ?a? YY ?aa®¤®¬ a a?aY¤Y«Y??, - ¤«i ?aYa?aYa ae?? !?a®cea ?®¤e,  a®¤?¬ea c ®!eY?a a ?a? ?®a«Y¤aie?a ? ?¬ ®!a eY?ia, -   a ?¦Y c ¬®F®c?a«Yea a?aa ae?ia ?®aa®«i a?? , aaY!aY¬®F® ¤«i ®! aa¦Y?i c®§¬®¦ea a«ac Yc Y¤®?aaa?¬®F® ?a?ac ?c ?i. Turbo C++ ?®¤¤Ya¦?c Ya ¬®F?Y aa ¤ aaeY (?aY¤®?aY¤Y- «YeY),   a ?¦Y ®?aY¤Y«iY¬eY ?®«i§®c aY«Y¬ a??e ¤ ea, c?«ic i aeY«®c?a«YeYa??e a §ea a §¬Ya®c, a® § ?®¬ ? !Y§ YF®, c?a«  a ?« c ieY© a®c?®© a §«?c®© a®c®aa? ?aY¤aa c- «Y?i, aaaa?aaae, ®!eY¤?Y?i, ¬ aa?ce? ?« aae. ?a®¬Y a®F®, ?¬YYaai c®§¬®¦®aai aaa  c«?c ai a? § aY«?   !®«ie?aac®i- a?a ®!eY?a®c ? ¬ ??a«?a®c ai ?¬? a® ¬®F?¬? ¬®¤Y«i¬? ? ¬i- a?. ‘a ¤ aaeY !?!«?®aY?? Turbo C++,   a ?¦Y c e? a®!a- acYeY ?a®Fa ¬¬e ? ae ©«e § F®«®c?®c®!Ya?Yc?c ia®¤®§ ceY ?¤Ya?ae?? a®ae (?«? cec®¤?¬eY ?§ ?a cea ¦Y?i) ? a??e, a - ??¬ ®!a §®¬, ca® Turbo C++ ¬®¦YaY?a®a?c®aYc?c® ce?®«iai ¤®aaa?, ?aYa?aYa?a®c ai ? (c®§¬®¦®) ?§¬Yiai !?a®ceY ?®¤e c ? ¬ia?, a®®acYaaacaieY© ? ¦¤®¬a  ?a?c®¬a ®!eY?aa c eY© ?a®Fa ¬¬e. ?!eic«Y?i aaa  c«?c ia Y®!a®¤?¬eYa®®a®eY?i a a?aY- ¤Y«Y?i? ¬ia?¬Y¦¤a ?¤Ya?ae?? a®a ¬? ? ®!eY?a ¬?. ? ¦¤®Y ®!e- ic«Y?Y aci§ec Ya?¤Ya?ae?? a®a a Y?®a®ae¬ a??®¬ ¤ ea. ˜®«ie?aac® ®!eic«Y?©, ?§cYaaea ? ? ®!eic«Y?i ®?aY¤Y«Y- ?i, a ?¦Y § ¤ Ya a®§¤ ?Y (a.Y. F¤Y ? ?®F¤ ) ®!eY?a ; ? cY F®c®ai, a a?aY¤Y«Y?Yae?§?cYa?®© ? ¬ia? ? YY c®§¬®¦ai ??ae?-  «?§ ae?i. ˜a®c?Y ®!eic«Y?i,  §ec Y¬eY ®!eic«Y?i¬? aae«??, ?a®aa® ¤Y« ia a? § eY c ?a ?¤Ya?ae?? a®ae ?§cYaae¬? ?®¬- ??«ia®aa. ?¤? ? a®a ¦Y ?¤Ya?ae?? a®a ¬®¦Ya ?¬Yai ¬®¦Yaac® ®!eic«Y?© aae«??, ®a®!Y® c ¬®F®ae ©«®cea ?a®Fa ¬¬ a, ®¤-  ?® ¤«i ? ¦¤®F® ?¤Ya?ae?? a®a  ¤®?aaa?¬® a®«i?® ®¤® ®!eic- «Y?Y ®?aY¤Y«Y?i. ‚®®!eY F®c®ai, ?¤Ya?ae?? a®a Y ¬®¦Ya !eai ?a c?«i® ?a?®«i§®c  c ?a®Fa ¬¬Y ¤® a®®acYaaacaieY© Y¬a a®c?? ®!eic- «Y?i c ?aa®¤®¬ ?®¤Y. „®?aaa?¬e¬? ?a?«icY?i¬??§ ia®F® ?a - c?« , ?§cYaae¬? ? ? aae«?? c?YaY¤, ic«iiaai¬Ya??, aaaa?aa- ae, ®!eY¤?Y?i ? ce§®ce Y®!eic«Yea aea?ae?©. - 29 - ?¬Yaie?Y cea ¦Y?i (Lvalues) ?¬YaieYY cea ¦Y?Y ?aY¤aa c«iYa a®!®© «®? a®a ®!eY?a , cea ¦Y?Y, ?®a®a®Y ®!®§ c Ya ®!eY?a. ˜a?¬Ya®¬ ?¬YaieYF® cea ¦Y?i ¬®¦Ya a«a¦?ai *P, F¤Y P ia® cea ¦Y?Y, ¤ ieYY Y- ?aaa®© a? § aY«i. ?®¤?ae?ae?aaY¬®Y ?¬YaieYY cea ¦Y?Y -ia® ?¤Ya?ae?ae?aaieYY cea ¦Y?Y, ®a®aieYYai ? ®!eY?aa, ? ?®a®a®- ¬a c®§¬®¦Y ¤®aaa? ? ¤®?aaa?¬® YF® ?§¬YY?Y c ? ¬ia?. “? - § aY«i ?®aa ae const,  ?a?¬Ya, Y ic«iYaai ¬®¤?ae?ae?aaY¬e¬ ?¬Yaie?¬ cea ¦Y?Y¬. “? § aY«i   ?®aa aa¬®¦Ya!eai ?§¬Y- Y (  ?®¤«Y¦ eYY ®!a eY?i ?® ia®¬a a? § aY«i § cY?Y - Y ¬®¦Ya). ?aa®a?cYa?? c a«®cY Lvalues !a?c  L ®§ c Ya "«Yce©"; ia® ®§ c Ya, ca® Lvalue ¤®?aa? Yaai c «Yc®© c aa? ( ?a??- ¬ ieY© c aa?) ®?Ya a®a  ?a?ac ?c ?i. ‡¤Yai c «Yc®© c aa? ®?Ya a®a  ?a?ac ?c ?i ¤®?aaa?¬e a®«i?® ¬®¤?ae?ae?aaY¬eY ?¬Y- aie?Y cea ¦Y?i. ˜ ?a?¬Ya, Ya«? a ? b - ia® Y ic«iie?Yai ?®aa a ¬? aeY«®c?a«YeY ?¤Ya?ae?? a®ae a ?a c?«i® a a?aY- ¤Y«Ye¬?¤«i ?a ®!« aai¬? ? ¬ia?, a®®!  ®? ic«iiaai ¬®¤?- ae?ae?aaY¬e¬? ?¬Yaie?¬? cea ¦Y?i¬?, ? ?a?ac ?c ?ia??  a = 1;? b = a + b; c?®«Y ¤®?aaa?¬e. ‡ cY?i ?YaY¬Y®© (Rvalues) ‚ea ¦Y?Y a + b Y ¬®¦Yaic«iaiai ?¬Yaie?¬ cea ¦Y?Y¬, ? cea ¦Y?Y a??  a + b = a Y¤®?aaa?¬®, ?®a?®«i?a cea ¦Y?Y c «Yc®© c aa? Y ®a®a?aai ?®!eY?aa. ’ ??Y cea ¦Y?i c aa®  §ec ia § cY?Y¬ ?YaY¬Y®© (§ cY?Y ?a c®© c aa? cea ¦Y- ?i). ’??e ? ?« aae ? ¬ia? „«i aci§? ?¤Ya?ae?? a®a®c a ®!eY?a ¬? aaY!aYaai, ca®!e ? ¦¤e© ?¤Ya?ae?? a®a?¬Y« ? ? ¬??¬a¬ ¤c   aa?!aa : ?« aa ? - ¬ia? ? a?? (?®F¤  YF®  §ec ia a??®¬¤ ea). ?®¬??«i- a®aTurboC++ ®?aY¤Y«iYa ia?  aa?!aae ?®ice¬ ?«? Yice¬ ®!e- ic«Y?i¬ c ?aa®¤®¬ ?®¤Y ?a®Fa ¬¬e. ?« aa ? ¬ia? § ¤ Ya a §¬YeY?Y ®!eY?a  (aYF¬Ya ¤ ea, aYF?aaa, ?ac  ?«? aaY?) ? ?a®¤®«¦?aY«i®aai YF® caY¬Y? aa- eYaac®c ?i (caY caY¬i a !®ae ?a®Fa ¬¬e, «?!® ¦Y ?a? ce?®«- Y?? Y?®a®aea ?®?aYaea !«®?®c ?®¤ ). ?« aa? ¬ia?¬®¦Ya !eai aaa ®c«Y a?a ?a?a®¬ ®!eic«Y?i, a a?®«®¦Y?Y¬ c ?a- a®¤®¬ ?®¤Y ?«? ®!®?¬? ia?¬? ae ?a®a ¬?. ’??, ? ? F®c®a?«®aiceeY,®?aY¤Y«iYa a §¬Ya ? ¬ia?, a a?- aY¤Y«iY¬e© ®!eY?aa, ? a®, ? ??¬ ®!a §®¬ ?a®Fa ¬¬  !a¤Ya ?- aYa?aYa?a®c ai !?a®ceY?®¤e,  a®¤ie?Yaic ? ¬ia?, a a?aY¤Y«Y®© ®!eY?aa. ’??¤ ea¬®¦®a aa¬ aa?c ai? ? ¬®- ¦Yaac® § cY?© (c aa® § c?a?¬® ®a aY «?§ ae??), ?®a®aeY ¬®- ¦Ya ?a??¬ ai ?¤Ya?ae?? a®a ¤ ®F® a?? , a®c®?a?® a ¬®- ¦Yaac®¬ ®?Ya ae?©, ce?®«Y?Y?®a®aea ¤®?aaa?¬® ¤«i § cY?© ia®F® a?? . ‘?Yae? «i i ®?Ya ae?icaY¬Y? ?®¬??«iae??,sizeof, ?®§c®«iYa ®?aY¤Y«?ai a §¬Ya c ! ©a a «i!®F® aa ¤ aa®F® ?«? ®?aY¤Y«iY¬®F® ?®«i§®c aY«Y¬a??  ¤ ea; ¤®?®«?aY«iai ?- ae®a¬ ae?i ®! ia®© ®?Ya ae?? a¬.   aaa. 81 ®a?F? « . ?®aY?aa ?®aY?aa®¬ ?¤Ya?ae?? a®a   §ec Yaai c aai ?a®Fa ¬¬e, c ?®a®a®© ¤ e© ?¤Ya?ae?? a®a ¬®¦Ya !eai ?a?®«i§®c  ¤«i ¤®a- aa?  ? aci§ ®¬a a?¬ ®!eY?aa. ‘aeYaacaYa ?iai ? aYF®a?© ?®aY?aa : !«®? (?«? «®? «ie©), aea?ae?i, ?a®a®a?? aea?ae??, ae ©« ? ?« aa (a®«i?® ¤«i ‘++). ?®aY?aa § c?a?a ®a a®F®, ? ? ? F¤Y ®!eic«Ye ?¤Ya?ae?? a®ae. - 30 - ?®aY?aa !«®?  ?®aY?aa ?¤Ya?ae?? a®a  c a«ac Y ?®aY?aa  a?? !«®?  (?«? «®? «i®F® ?®aY?aa )  c? Yaai c a®c?Y ®!eic«Y?i ? § ? c?c Yaai c ?®aeY !«®? , a®¤Ya¦ eYF® ¤ ®Y ®!eic«Y?Y (a ?®© !«®? §ec Yaai ®!eY¬«ie?¬!«®?®¬). ?!eic«Y?i ? a ¬Ya- a®c c ®?aY¤Y«Y?? aea?ae?? a ?¦Y ?¬Yia ?®aY?aa a??  !«®?  ? ®Fa ?cYe ?®aY?aa®¬ !«®? , F¤Y ia  aea?ae?i ®?aY¤Y«Y . ?®aY?aa aea?ae?? …¤?aacYe¬? ?¤Ya?ae?? a®a ¬?, ?¬Yie?¬? ?®aY?aa a??  aea?ae??, ic«iiaai ¬Ya?? ®?Ya a®a®c. ?¬Y ¬Ya®? ¬®Faa !eai ?a?®«i§®c ec ®?Ya a®a a goto c«i!®© a®c?Y aea?ae??,F¤Y ®!e- ic«Y  ¤  i ¬Ya? . ?Ya?? ®!eic«iiaaiYic®; ¤«i ia®F® § - ??aec Yaai ?¬i_¬Ya??: ? §  ?¬ ®?Ya a®a. ?¬Y  ¬Ya®? c ?aY- ¤Y« a aea?ae?? ¤®«¦e !eai a?? «ie¬?. ?®aY?aa ?a®a®a??  aea?ae?? ?¤Ya?ae?? a®ae, ®!eic«YeY c a??a?Y ®!eic«Y?© ? a ¬Yaa®c c ?a®a®a??Y aea?ae?? (Y ic«iie?Yai c aaii ®?aY¤Y- «Y?i aea?ae??) ?¬Yia ?®aY?aa ?a®a®a??  aea?ae??.?®Yae ia®F® ?®aY?aa  a®c? ¤ Ya a ?®ae®¬ ?a®a®a??  aea?ae??. ?®aY?aa ae ©«  ?¤Ya?ae?? a®ae a ?®aY?aa®¬ae ©« ,  §ec Y¬eY c aa® F«®- ! «ie¬?, ®!eic«iiaai cY caYa !«®?®c ? ?« aa®c; ?a ?®aY?aa «Y¦?a ¬Y¦¤a a®c?®© ®!eic«Y?i ? ?®ae®¬ ?aa®¤®F® ae ©« . ?®aY?aa ?« aa  (‘++) ?« aa®¬ ¬®¦® ac?a ai ?¬Y®c e©  !®a ?®¬?®Ya®c, c?«ic i ai¤  aaaa?aaae ¤ ea ? ¤Y©aacaie?Y a ?¬? aea?ae??. ?®aY?aa ?« aa  ®a®a?aai, §  Y?®a®ae¬? ?a?«icY?i¬?, ? ?¬Y ¬ ?®¬?®Ya®c ?®?aYa®F® ?« aa . ?« aae ? ?a®!eY?ae ?¬Yia ¬®¦Yaac® a?Yae? «iea ?a c?« ¤®aaa?  ? ®?aY¤Y«Y?i ?®aY?aa ; a¬. aaa. 102 - 113 ®a?F? « . ?®aY?aa ? ?a®aaa aac  ?¬Y ˜a®aaa aac® ?¬Y - ia® ?®aY?aa, c ?aY¤Y« a ?®a®a®F® ?¤Ya?ae?? a®a¤®«¦Y!eai a?? «ie¬. ‚ ‘ aaeYaacaYa cYaeaY a §¤Y«iea ?« aa  ?¤Ya?ae?? a®a®c: 1. ?¬Y  ¬Ya®? ®?Ya a®a®c goto. ˜a? ?¬Y  ¤®«¦e !eai a?? «ie¬? c ?aY¤Y« a aea?ae??, c ?®a®a®© ®? ®!eic«Ye. 2. ’YF? aaaa?aaa, ®!eY¤?Y?© ? ?YaYc?a«?¬ea ¤ ea. ?? ¤®«¦e !eai a?? «ie¬? c ?aY¤Y« a !«®? , c ?®a®a®¬ ®? ®?aY¤Y«Ye. ’YF?, ®!eic«YeY cY ? ?®©-«?!® aea?ae??, ¤®«¦e !eai a?? «ie¬? ®a®a?aY«i® caYa aYF®c, ®?aY¤Y«Yea c®c- Y. ‚ ‘++ aaaa?aaae, ?« aae ? ?YaYc?a«?¬eY ¤ eY ®a®aiaai ? ®¤®¬a ? a®¬a ¦Y ?a®aaa aaca ?¬Y. 3. ?¬Y  ?®¬?®Ya®caaaa?aaa ? ®!eY¤?Y?©. ?? ¤®«¦e !eai a?? «ie¬? c ?aY¤Y« a aaaa?aaae ?«? !«®? , c ?®a®a®¬®- ? ®?aY¤Y«Ye. ˜  a?? ?«? a¬YeY?Y a ®¤?¬ ? aY¬ ¦Y ?¬YY¬ c a §«?cea aaaa?aaa a ®Fa ?cY?© Y aaeYaacaYa. 4. ˜YaY¬YeY, ®?aY¤Y«Y?i a??  ? ?®¬?®Yae ?YaYc?a«?- ¬ea ¤ ea. ?? ¤®«¦e !eaia?? «ie¬? c?®aY?aaY, F¤Y ®? ®?aY¤Y«Ye. ?¤Ya?ae?? a®ae, ®!eic«YeY cYe?¬?, ¤®«¦e !eai a?? «ie¬? aaY¤? ?YaY¬Yea, ®!eic«Yea c®cY. - 31 - ‚?¤?¬®aai ‚?¤?¬®aaii ?¤Ya?ae?? a®a   §ec Yaai ®!« aai ?aa®¤®F® ?®¤  ?a®Fa ¬¬e, ?§ ?®a®a®F® ¤®?aaa?¬ ®a¬ «ie© ¤®aaa? ? aci§ ®¬a a ?¤Ya?ae?? a®a®¬ ®!eY?aa. ?!ec® ?®aY?aa ? c?¤?¬®aai a®c? ¤ ia, ®¤ ?® !ec ia a«ac ?, ?®F¤  ®!eY?a caY¬Y® a?aea ca«Y¤aac?Y  «?c?i ?¤Y- a?ae?? a®a  a aY¬ ¦Y ?¬YY¬. ?!eY?a ?a? ia®¬ Y ?aY?a e Ya ac®YF® aaeYaac®c ?i, ® ?aa®¤e© ?¤Ya?ae?? a®a Y ¬®¦Ya a«a¦?ai ¤«i ¤®aaa?  ? Y¬a ¤® aYa ?®a, ?®?  Y § ?®c?aai ?®aY?aa ¤a!«?aaieYF® ?¤Ya?ae?? a®a . ‚?¤?¬®aai Y ¬®¦Ya cea®¤?ai §  ?aY¤Y«e ?®aY?aa ; ® ?®aY?aa ¬®¦Ya ?aYcee ai c?¤?¬®aai. ... (* int i; char ch; //  ca®¬ a?cYa?®Y a a?aY¤Y«Y?Y ?® a¬®«c ?i i = 3; // int i ? char ch c ?®aY?aaY ? c?¤?¬e ... (* double i; i = 3.0e3; // double i c ?®aY?aaY ? c?¤?¬  // int i c ?®aY?aaY, ® a?aea  ch = 'A'; // char ch c ?®aY?aaY ? c?¤?¬  *) // double i cY ?®aY?aa  i += 1; // int i c?¤?¬  ? a c  4 ... // char ch caY YeY c ?®aY?aaY ? c?¤?¬  // ? a c  'A' *) ... // int i ? char ch cY ?®aY?aa  ? a®c , a?Yae? «ieY ?a c?«  ¤Y©aacaia c ®a®eY?Y a?aeaea ?¬Y ?« aa®c ? ?¬Y ?®¬?®Ya®c ?« aa®c: a?Yae? «ieY ®?Ya ae?? ‘++ ?®§c®«iia ¤®aaa? ? a?aeae¬?¤Ya?ae?? a®a ¬ ?a? ®?aY¤Y«Yea aa«®c?ia (a¬. aaa.103 ®a?F? « ). ˜a®¤®«¦?aY«i®aai ˜a®¤®«¦?aY«i®aai, !«?§?® aci§  ia ?« aa®¬ ? ¬ia?, ®?aY¤Y«iYa ?a®¤®«¦?aY«i®aai ?Ya?®¤ , c aYcY?Y ?®a®a®F® ®!eic«Ye¬ ?¤Ya?ae?? a®a ¬ a®®acYaaacaia a a?aY¤Y«YeY c ? ¬ia? aY «ieY ae?§?cYa??Y ®!eY?ae. ’ ?¦Y¤Y« Yaai a §«?c?Y ¬Y¦¤a ®!eY?a ¬? caY¬Y? ?®¬??«iae?? ? caY¬Y? ce?®«Y?i. ˜ ?a?¬Ya, ?YaY¬Ye¬, c ®a«?c?Y ®a ®?aY¤Y«iY¬ea a??®c (typedefs) ? a??®c, ? ¬iai Y?®aaY¤aacY® c® caY¬i ce?®«Y- ?i Y a a?aY¤Y«iYaai. ‘aeYaacaYa aa? c?¤  ?a®¤®«¦?aY«i®a- a?: aa a?cYa? i, «®? «i i ? ¤? ¬?cYa? i. ‘a a?cYa? i ?a®¤®«¦?aY«i®aai (static) ?!eY?ae a® aa a?cYa?®©?a®¤®«¦?aY«i®aaii ¦?§? ?®«ac ia a a?aY¤Y«Y?Y ? ¬ia? aa §a ¦Y?a?  c «Y ce?®«Y?i ?a®Fa ¬- ¬e; a ?®Ya a?aY¤Y«Y?Y ? ¬ia? a®aa iYaai ¤® cea®¤  ?§ ?a®F- a ¬¬e. ?!eY?ae a® aa a?cYa?®© ?a®¤®«¦?aY«i®aaii ®!ec® a §- ¬Ye iaai c ae??a?a®c eaaYF¬Ya a ¤ ea, a a?aY¤Y«Yea c a®®acYaaac?? a ?a?®«i§aY¬®© ¬®¤Y«ii ? ¬ia?. ‚aY aea?ae??, Y- § c?a?¬® ®a a®F®,F¤Y ®? ®?aY¤Y«Ye, ic«iiaai ®!eY?a ¬? a®a- a a?cYa?®© ?a®¤®«¦?aY«i®aaii. ’ ?¦Y aa a?cYa?ai ?a®¤®«¦?- aY«i®aai ?¬YiacaY ?YaY¬YeY aae ©«®ce¬ ?®aY?aa®¬. ˜a®c?¬ ?YaY¬Ye¬ ¬®¦Ya !eai § ¤   aa a?cYa? i ?a®¤®«¦?aY«i®aai, Ya«??a?®«i§®c ai iceY a?Yae?ae?? a®ae ?« aa  ? ¬ia? static ?«? extern. - 32 - ˜a? ®aaaaaac?? ic®F® ??ae? «?§ a®a , «?!® c‘++ ?®a- aaa?a®a , ®!eY?ae a® aa a?cYa?®© ?a®¤®«¦?aY«i®aaii ??ae? - «?§?aaiaai c ®«i (?«? ?aaa®Y § cY?Y). ‘a a?cYa?ai ?a®¤®«¦?aY«i®aai Y a«Y¤aYa ?aa ai a ae ©- «®ce¬ ?«? F«®! «ie¬ ?®aY?aa®¬. ?!eY?a¬®¦Ya?¬Yaiaa a?cYa?ai ?a®¤®«¦?aY«i®aai ? ?a? ia®¬ «®? «ie© ?®aY?aa. ‹®? «i i ?a®¤®«¦?aY«i®aai (local) ?!eY?a a «®? «i®© ?a®¤®«¦?aY«i®aaii caYF¤  ?¬YYa «®- ? «ie© ?®aY?aa, ?®a?®«i?a ® Y aaeYaacaYa cY ac®YF® ®!e- Y¬«ieYF® !«®? . ?!a a®Y YcYa®: ®!eY?a a«®? «ie¬ ?®aY?a- a®¬ ¬®¦Ya ?¬Yai aa a?cYa?ai ?a®¤®«¦?aY«i®aai. ?!eY?aea «®? «i®©?a®¤®«¦?aY«i®aaii ¦?§?, ? cY  §ec Y¬eY ¤? ¬?cYa??¬? «®? «ie¬??YaY¬Ye¬?, ¬YYY  ¤Y¦- e. ?? a®§¤ iaai c aaY?Y (?«? c aYF?aaaY) ?a? ca®¤Y c ®!e- Y¬«ie?© ?a !«®? ?«? aea?ae?i. ˜a? cea®¤Y ?a®Fa ¬¬e ?§ a ?®F® !«®?  ?«? aea?ae?? ®? a?ca®¦ iaai. ?!eY?ae a «®? «i®© ?a®- ¤®«¦?aY«i®aaii ¤®«¦e !eai ??ae? «?§?a®c e ic®;c ?a®a?c- ®¬ a«ac Y ?a ?aa®¤®Y a®¤Ya¦?¬®Y Y?aY¤a? §aY¬®. ?!eY?ae a «®? «i®© ?a®¤®«¦?aY«i®aaii caYF¤  ¤®«¦e ?¬Yai «®? «ie© ?®aY?aa ?«? ?®aY?aa aea?ae??.˜a? ®!eic«Y?? ?YaY¬Yea «®- ? «i®© ?a®¤®«¦?aY«i®aa? ¬®¦® ?a?®«i§®c ai a?Yae?ae?? a®a ?« aa  ? ¬ia? auto, ®¤ ?® ® ic«iYaai ?§!ea®ce¬, ?®a?®«i?a auto ¤«i ?YaY¬Yea, ®!eic«Yea c !«®?Y, caYF¤  ic«iYaai a¬®«c ?Y¬. ˜a? ®!eic«Y?? ?YaY¬Yea ( ?a?¬Ya, int, char, float) a?Yae?ae?? a®a ?« aa  ? ¬ia? register a ?¦Y?®¤a §a¬Yc Ya auto, ®¤ ?® ?®¬??«ia®aa ?a? ia®¬ ?YaY¤ Yaai § ?a®a (?«? aY?®¬Y- ¤ ae?i) ® a®¬, ca® ?a? c®§¬®¦®aa? ¤ e© ®!eY?a ¦Y« aY«i® a §¬Yaa?ai c aYF?aaaY. Turbo C++¬®¦® aaa ®c?ai a ??¬ ®!a - §®¬, ca®!e ® a a?aY¤Y«i« aYF?aaa«®? «i®© ?aYFa «i®© ?Y- aY¬Y®©?«? ?YaY¬Y®© a??  a? § aY«i, Ya«? ? ?®©-«?!® aY- F?aaa ac®!®¤Y. …a«? ac®!®¤ea aYF?aaa®c Ya, a® ?YaY¬Y i a a?aY¤Y«iYaai ? ? auto, ?«? ¤? ¬?cYa??© «®? «ie© ®!eY?a, !Y§ ce¤ c? ?aY¤a?aY¦¤Y?i ?«? FYYa ae?? ®e?!??. „? ¬?cYa? i ?a®¤®«¦?aY«i®aai (dynamic) ?!eY?ae a ¤? ¬?cYa?®© ?a®¤®«¦?aY«i®aaii ¦?§? a®§¤ - iaai ? a §aae iaai ?®?aYae¬? ce§®c ¬? aea?ae?© ?a? ce?®«Y- ?? ?a®Fa ¬¬e. ?¬ a a?aY¤Y«iYaai ? ¬iai?§ a?Yae? «i®F® aY- §Yac  ? ¬ia?,  §ec Y¬®F® ?acY©, ?a? ?®¬®e? «?!® aa ¤ aaea !?!«?®aYcea aea?ae?©, ? ? ?a?¬Ya malloc, «?!® ?a? ?®¬®e? ®?Ya ae?? ‘++ new. ‘®®acYaaacaie i ®a¬Y  a a?aY¤Y«Y?i ce- ?®«iYaai ?a? ?®¬®e? free ?«? delete. …¤??aee aa a«iae?? ’Ya¬? Y¤??ae  aa a«iae?? ®a®a?aai ? ae ©«a ?aa®¤®F® ?®¤  c¬YaaY a c?«ic Y¬e¬? ae ©« ¬?, ® !Y§?aa®¤ea aaa®?, ®?aeYea aa«®ce¬? ¤?aY?a?c ¬? ?aY?a®aeYaa®a . ‘?a ?a?cYa?? Y¤??ae  aa a«iae?? ®?aY¤Y«iYaai ? ? ?®a«Y¤®c aY«i®aai cYe- ?a ®!eic«Y?©: Y¤??ae -aa a«iae??: cYeYY-®!eic«Y?Y Y¤??ae -aa a«iae?? cYeYY-®!eic«Y?Y cYeYY-®!eic«Y?Y: ®?aY¤Y«Y?Y-aea?ae?? ®!eic«Y?Y - 33 - ‘«®c® external ?¬YYa c ‘ Ya?®«i?® § cY?©; c ¤ ®¬ a«ac Y ®® ®a®a?aai ? ®!eic«Y?i¬,  a®¤ie?¬ai cY ? - ??a-«?!® aea?ae?©, ? ?®a®aeY, a«Y¤®c aY«i®, ?¬Yia ?®aY?aa ae ©« . (?a¤Y«ie¬ ac®©aac®¬ ic«iYaai cYe?© a?? ?®¬?®®c??; a¬.a«Y¤aie?© a §¤Y«, "?®¬?®®c? ".) ‹i!®Y ®!eic«Y?Y, a ?¦Y aY§Yac?aaieYY ? ¬iai ¤«i ®!eY?a  ?«? aea?ae??,  §ec Yaai ®?- aY¤Y«Y?Y¬ (?«? ®!eic«Y?Y¬ ®?aY¤Y«Y?i). ˜®«YY ?®¤a®!ai ?ae®a¬ ae?i a¬. c a §¤Y«Y "‚Ye?Y ®!eic«Y?i ? ®?aY¤Y«Y?i"   aaa.36 ®a?F? « . ?®¬?®®c?  ‚e?®«iY¬ i ?a®Fa ¬¬  ®!ec® a®§¤ Yaai ?®¬??«iae?Y© Ya- ?®«i??a Y§ c?a?¬ea Y¤??ae aa a«iae??,   § aY¬ ?®¬?®®c?®© ?®«ac?ce?aai ®!eY?aea ae ©«®c a a¦Y aaeYaacaie?¬? !?!«?®aY- ? ¬?. ˜a®!«Y¬  c®§?? Ya, ?®F¤  ®¤? ? a®a ¦Y ?¤Ya?ae?? a®a ®!eic«Y c a §ea ?®aY?aa a ( ?a?¬Ya, c a §«?cea ae ©« a), «?!® ®!eic«Y !®«YY ®¤®F® a §  c ®¤®¬ ? a®¬ ¦Y ?®aY?aaY. ?®¬?®®c?  ia® ?a®aeYaa, ?®a®ae© ?®§c®«iYa?a c?«i® aci§ ai- ? ¦¤®Y ca®¦¤Y?Y ?¤Ya?ae?? a®a  a ®¤?¬ ?®?aYae¬ ®!eY?a®¬ ?«? aea?ae?Y©. ‚aY ?¤Ya?ae?? a®ae ?¬Yia ®¤? ?§ aaYa  aa?!a- a®c?®¬?®®c??, aYa® aci§ ea a ?a ?®aY?aa®¬: cYeii ?®¬- ?®®c? , caaaYii ?®¬?®®c?  ?«? ®aaaaaac?Y ?®¬?®®c??. ˜a?  aa?!aae ®?aY¤Y«iiaai ¬Yaa®?®«®¦Y?Y¬ ? ae®a¬ a®¬ ®!eic- «Y?©,   a ?¦Y ice¬ (?«? Yice¬ ?® a¬®«c ?i) ?a?®«i§®c - ?Y¬ a?Yae?ae?? a®a  ?« aa  ? ¬ia? static ?«? extern. ? ¦¤®Y ca®¦¤Y?Y ?®?aYa®F® ?¤Ya?ae?? a®a  a a??®¬ ?®¬?®®c?? external ?aY¤aa c«iYa a®a ¦Y a ¬e© ®!eY?a ?«? aea?ae?i c® caY¬ ¬®¦YaacY ae ©«®c ? !?!«?®aY?, a®aa c«iie?a ?a®Fa ¬¬a. ? ¦¤®Y ca®¦¤Y?Y ?®?aYa®F® ?¤Ya?ae?? a®a  a a?- ?®¬ ?®¬?®®c?? internal ?aY¤aa c«iYa a®a ¦Y a ¬e© ®!eY?a ?«? aea?ae?i a®«i?® c ?aY¤Y« a ®¤®F® ae ©« . ?¤Ya?ae?? a®ae a a?- ?®¬ ?®¬?®®c?? no (®aaaaaac?Y) ?aY¤aa c«iYa a?? «ieY i«Y- ¬Yae ?a®Fa ¬¬e. ˜?¦Y ?a?c®¤iaai?a c?«  cYeY© (external) ? caaaYY© (internal) ?®¬?®®c??: 1. ‹i!®© ?¤Ya?ae?? a®a ®!eY?a  ?«? ae ©« , ?¬Yie?© ae ©- «®ce© ?®aY?aa, !a¤Ya ?¬Yai caaaY?© a?? ?®¬?®®c??, Ya«? YF® ®!eic«Y?Y a®¤Ya¦?a a?Yae?ae?? a®a ?« aa  ? ¬ia? static. „«i ‘, Ya«? ®¤? ? a®a ¦Y ?¤Ya?ae?? a®a c ?aY¤Y« a ®¤- ®F® ae ©«  ?®ic«iYaai ? a caaaY?¬, ? a cYe?¬ a??®¬ ?®¬- ?®®c??, a® ?¤Ya?ae?? a®a !a¤Ya ?¬Yai caaaY?© a?? ?®¬?®- ®c??. 2. …a«? ®!eic«Y?Y ?¤Ya?ae?? a®a  ®!eY?a  ?«? aea?ae?? a®¤Ya¦?a a?Yae?ae?? a®a ?« aa  ? ¬ia? extern, a® ?¤Ya?ae?? a®a ?¬YYa a®a ¦Y a?? ?®¬?®®c??, ca® ? c?¤?¬®Y ®!eic«Y?Y ?¤Y- a?ae?? a®a  a ae ©«®ce¬ ?®aY?aa®¬. …a«? a ?®F® c?¤?¬®F® ®!e- ic«Y?i Y ?¬YYaai, a® ?¤Ya?ae?? a®a !a¤Ya ?¬Yai cYe?© a?? ?®¬?®®c??. 3. …a«? aea?ae?i ®!eic«Y  !Y§ a?Yae?ae?? a®a  ?« aa  ? - ¬ia?, a® YY a?? ?®¬?®®c?? ®?aY¤Y«iYaai, ? ? Ya«? !e !e« ?a- ?®«i§®c  a?Yae?ae?? a®a ?« aa  ? ¬ia? extern. 4. …a«? ?¤Ya?ae?? a®a ®!eY?a  a ae ©«®ce¬ ?®aY?aa®¬ ®!eic«Y !Y§ a?Yae?ae?? a®a  ?« aa  ? ¬ia?, a® ?¤Ya?ae?? a®a ?¬YYa cYe?© a?? ?®¬?®®c??. ‘«Y¤aie?Y ?¤Ya?ae?? a®ae Y ?¬Yia  aa?!aa  a??  ?®¬?®- ®c??: 1. ‹i!®© ?¤Ya?ae?? a®a, ®!eic«Ye© ? cY, cY¬ ®!eY?a - 34 - ?«? aea?ae?i ( ?a?¬Ya, ?¤Ya?ae?? a®a typedef). 2. ˜ a ¬Yaae aea?ae??. 3. ?¤Ya?ae?? a®ae a ?®aY?aa®¬ !«®?  c a«ac Y ®!eY?a®c, ®!eic«Yea !Y§ a?Yae?ae?? a®a  ?« aa  ? ¬ia? extern. ‘?a ?a?a ®!eic«Y?i ‚aY eYaai c§ ?¬®aci§ ea  aa?!aa  (?« aa ? ¬ia?, a??, ?®aY?aa, c?¤?¬®aai,?a®¤®«¦?aY«i®aai ? a?? ?®¬?®®c??) ¬®- Faa !eai a §e¬? a?®a®! ¬? ®?aY¤Y«Ye ?a? ?®¬®e? ®!eic«Y?©. ?!eic«Y?i ¬®Faa !eai ®!eic«Y?i¬? ®?aY¤Y«Y?i(?a ®!ec- ® ?a®aa®  §ec ia ®!eic«Y?i¬?) ? ®!eic«Y?i¬? aae«?? (?®F¤   §ec Y¬e¬? Y®?aY¤Y«iie?¬? ®!eic«Y?i¬?). ?!eic«Y- ?Y ®?aY¤Y«Y?i, ? ? ? a«Y¤aYa ?§  §c ?i, ce?®«iYa ¤cY aea?ae??, ®!eic«Y?i ? ®?aY¤Y«Y?i; Y®?aY¤Y«iie?Y ¦Y ®!eic- «Y?i aaY!aia  «?c?i F¤Y-«?!® ¤ «YYc ?a®Fa ¬¬Y ®?aY¤Y«Y?©. ?!eic«Y?Y aae«?? ?a®aa® cc®¤?a c ?a®Fa ¬¬a ®¤® ?«? !®«YY ?¬Y ?¤Ya?ae?? a®a®c.??aY¤Y«Y?Y ae ?a?cYa?? a a?aY¤Y«iYa ®!eY?aa ? ¬iai ? aci§ec Ya ?¤Ya?ae?? a®a a ia?¬ ®!eY?a®¬. ˜aY¤c a?aY«ieY ®?aY¤Y«Y?i ‘a ¤ aaANSI C cc®¤?a ®cai?®aeY?ae?i: ?aY¤c a?aY«i®Y ®?aY¤Y«Y?Y. ‹i!®Y ®!eic«Y?Y cYe?a ¤ ea, Y ?¬YieYY a?Yae?ae?? a®a ?« aa  ? ¬ia? ? ??ae? «?§ a®a , a aa¬ aa?c Yaai ? ? ?aY¤c a?aY«i®Y ®?aY¤Y«Y?Y. …a«?®!eic«Ye© ?¤Ya?ae?? - a®a ?®ic«iYaai c ?®a«Y¤aieY¬®?aY¤Y«Y??, a® ?aY¤c a?aY«i®Y ®?aY¤Y«Y?Y a aa¬ aa?c Yaai,? ? Ya«? !e ?¬Y«ai a?Yae?ae?? a®a ?« aa  ? ¬ia? extern .„aaF?¬? a«®c ¬?, ?aY¤c a?aY«i®Y ®?aY- ¤Y«Y?Y aa ®c?aai ?a®aae¬ ®!eic«Y?Y¬ aae«??. …a«? ¤®aa?Faa ?®Yae Y¤??aee aa a«iae??,   ¤«i ?¤Ya?- ae?? a®a  a ? ? Y !e«® caaaYcY® ®?aY¤Y«Y?i a ??ae? «?§ a®- a®¬, a® ?aY¤c a?aY«i®Y ®?aY¤Y«Y?Y aa ®c?aai ?®«e¬ ®?aY¤Y«Y?Y¬,   ¤«i ®?aY¤Y«Y®F® a ??¬ ®!a §®¬ ®!eY?a  aY- §Yac?aaYaai Y??ae? «?§?a®c  i (§ ?®«Y ia«i¬?) ®!« aai ? ¬ia?. ˜ ?a?¬Ya, int x; int x; /* ¤®?aaa?¬®, aY§Yac?aaYaai ®¤  ?®??i x */ int y; int y = 4; /* ¤®?aaa?¬®, y ??ae? «?§?aaYaai § cY?Y¬ 4 */ int z = 5; int z = 6; /* Y¤®?aaa?¬®, a.?. ®!  ®?aY¤Y«Y?i ??ae? «?§?a®c e */ ‚®§¬®¦eY ®!eic«Y?i ‚ c?a«® ®!eY?a®c, ?®a®aeY ¬®Faa !eai ®!eic«Ye, ca®¤ia: - ?YaY¬YeY - aea?ae?? - ?« aae ? ?®¬?®Yae ?« aa®c (‘++) - a??e - aYF? aaaa?aaa, ®!eY¤?Y?© ? ?YaYc?a«?¬ea ¤ ea - ?®¬?®Yae aaaa?aaa - ?®¬?®Yae ®!eY¤?Y?© - ¬ aa?ce ?a®c?a a??®c - ?YaYc?a«?¬eY ?®aa ae - ¬Ya?? ®?Ya a®a®c - ¬ ?a®ae ?aY?a®aeYaa®a  ˜®«e© a?a ?a?a ®!eic«Y?© ?®? §  c a«Y¤aie?a a !«?- - 35 - ae a. ˜Y?aaa?c i ?a?a®¤  a?a ?a?a  ®??a aY«Y© ?®§c®«iYa a®§¤ c ai a«®¦eY ®??a aY«?. „«i a«aceY?i c?a Y¬®aa? ¬e ?®e«?   ?a?®«i§®c ?Y ®?aY¤Y«iY¬®F® a??  (typedef). ‘?a ?a?a ®!eic«Y?© Turbo C++ ’ !«?ae  1.10 ----------------------------------------------------------- ®!eic«Y?Y:
®!eic«Y?Y-asm
®!eic«Y?Y-aea?ae??
a?Yae?ae?? ae?i-a?? -?®¬?®®c??

a?Yae?ae?? a®a-®!eic«Y?i:
a?Yae?ae?? a®a-?« aa -? ¬ia?
a?Yae?ae?? a®a-a?? 
a?Yae?ae?? a®a-aea?ae??
friend (a®«i?® ¤«i ‘++)
typedef

a?Yae?ae?? a®ae-®!eic«Y?i:
a?Yae?ae?? a®a-®!eic«Y?i

a?Yae?ae?? a®a-?« aa -? ¬ia?:
auto
register
static
extern

a?Yae?ae?? a®a-aea?ae??: (a®«i?® ¤«i ‘++)
inline
virtual

a?Yae?ae?? a®a-a?? :
?¬i-?a®aa®F®-a?? 
a?Yae?ae?? a®a-?« aa 
a?Yae?ae?? a®a-?YaYc?a«?¬ea-¤ ea
a?Yae?ae?? a®a-aa®cYaeYaac®c ®F®-a?? 
const
volatile

?¬i-?a®aa®F®-a?? :
?¬i-?« aa 
?¬i-typedef
char
short
int
long
signed
unsigned
float
double
void

a?Yae?ae?? a®a-aa®cYaeYaac®c ®F®-a?? :
?«ic-?« aa  ?¤Ya?ae?? a®a
?«ic-?« aa  ?¬i-?« aa 
enum ?¬i-?YaYc?a«?¬ea-¤ ea

?«ic-?« aa : (a®«i?® ¤«i ‘++)
class
struct
union

a??a®?-?YaYc?a«?¬ea-¤ ea:
a¬Ya a®a
a??a®?-a¬Ya a®a®ca¬Ya a®a

– 36 –
a¬Ya a®a:
?¤Ya?ae?? a®a
?¤Ya?ae?? a®a = cea ¦Y?Y-a?? -?®aa ae

cea ¦Y?Y-a?? -?®aa ae:
aa«®c®Y-cea ¦Y?Y

a?Yae?ae?? ae?i-a?? -?®¬?®®c??: (a®«i?® ¤«i ‘++)
extern aaa®?  (* *)
extern aaa®?  ®!eic«Y?Y

a??a®?-®!eic«Y?i:
®!eic«Y?Y
a??a®?-®!eic«Y?i ®!eic«Y?Y
———————————————————–

„«i a«Y¤aieY© a !«?aee ®a¬Ya?¬, ca®   ?®«?cYaac® ? ?®-
ai¤®? ¬®¤?ae?? a®a®c ? ?c «?ae?? a®a®c  «®¦Ye ®Fa ?cY?i.
?a®¬Y a®F®, ?YaYc?a«YeY ¬®¤?ae?? a®aeic«iiaai Y¤?aacYe¬-
¤®?®«Y?Y¬ a?a ?a?a  ¤Y?« a a®a , Y ca®¤ie?¬ c aa ¤ aa
ANSI C ? ‘++. ? ¦¤e© ¬®¤?ae?? a®a ?®¤a®!® ®??a ,  c? i a®
aaa.46 ®a?F? « .

‘?a ?a?a ¤Y?« a a®a  Turbo C++ ’ !«?ae  1.11
———————————————————–
a??a®?-¤Y?« a a®a :
??ae? «?§ a®a-¤Y?« a a®a
a??a®?-¤Y?« a a®a ??ae? «?§ a®a-¤Y?« a a®a

??ae? «?§ a®a-¤Y?« a a®a:
?¬i-¤Y?« a a®a 
a??a®?-¬®¤?ae?? a®a®c
®?Ya ae?i-a? § aY«i¤Y?« a a®a
¤Y?« a a®a (a??a®?-®!eic«Y?i-? a ¬Yaa®c)

(a??a®?-a®-?c «?ae?? a®a®c – a®«i?® ¤«i ‘++)
¤Y?« a a®a []

a??a®?-¬®¤?ae?? a®a®c:
¬®¤?ae?? a®a
a??a®?-¬®¤?ae?? a®a®c ¬®¤?ae?? a®a

¬®¤?ae?? a®a:
cdecl
pascal
interrupt
near
far
huge

®?Ya ae?i-a? § aY«i:
*
&
(a®«i?® ¤«i ‘++)
?¬i-?« aa  = *
(a®«i?® ¤«i C++)

a??a®?-a®-?c «?ae?? a®a®c:
a®-?c «?ae?? a®a

a®-?c «?ae?? a®a:
const
volatile

?¬i-¤Y?« a a®a :
?¬i
?¬i-?« aa  (a®«i?® ¤«i ‘++)
?¬i-?« aa  (a®«i?® ¤«i ‘++)
?¬i-typedef

– 37 –

?¬i-a?? :
a?Yae?ae?? a®a-a?? 

 !aaa ?ae©-¤Y?« a a®a:
®?Ya ae?i-a? § aY«i
(a??a®?- aFa¬Ya®c-®!eic«Y?i)

[]

a??a®?-®!eic«Y?i- aFa¬Ya®c:

a??a®?-®!eic«Y?i- aF, …
…(a®«i?® ¤«i ‘++)

a??a®?-®!eic«Y?i- aF:
®!eic«Y?Y- aFa¬Ya®c
a??a®?-®!eic«Y?i- aF ®!eic«Y?Y- aFa¬Ya®c

®!eic«Y?Y- aFa¬Ya®c:
a?Yae?ae?? a®ae-®!eic«Y?i ¤Y?« a a®a
a?Yae?ae?? a®ae-®!eic«Y?i ¤Y?« a a®a = cea ¦Y?Y (a®«i?®
¤«i ‘++)
a?Yae?ae?? a®ae-®!eic«Y?i
a?Yae?ae?? a®ae-®!eic«Y?i =ce-
a ¦Y?Y (a®«i?® ¤«i ‘++)

®?aY¤Y«Y?Y-aea?ae??:
¤Y?« a a®a ?ae? «?§ a®a>
aY«®-aea?ae??

aY«®-aea?ae??:
a®aa c®© ®?Ya a®a

??ae? «?§ a®a:
= cea ¦Y?Y
= (a??a®?-??ae? «?§ a®a®c)
(a??a®?-cea ¦Y?©) (a®«i?® ¤«i ‘++)

a??a®?-??ae? «?§ a®a®c:
cea ¦Y?Y
a??a®?-??ae? «?§ a®a®c , cea ¦Y?Y
(a??a®?-??ae? «?§ a®a®c)
———————————————————–
‚Ye?Y ®!eic«Y?i ? ®?aY¤Y«Y?i

‘?Yae?ae?? a®ae ?« aa  ? ¬ia? auto ? registerc® cYeY¬
®!eic«Y?? ?®ic?aiai Y ¬®Faa (a¬. “…¤??aee aa a«iae??”).
„«i ? ¦¤®F® ?¤Ya?ae?? a®a  c Y¤??aeY aa a«iae??, ®!eic«Y®©
a cYe?¬ a??®¬?®¬?®®c??, ¬®¦Ya aaeYaac®c ai Y !®«YY ®¤®-
F® cYeYF® ®?aY¤Y«Y?i.

‚YeYY ®?aY¤Y«Y?Y – ia® cYeYY ®!eic«Y?Y, ?®a®a®Y
a ?¦Y ®?aY¤Y«iYa ®!eY?a ?«? aea?ae?i;a ??¬ ®!a §®¬, ®® a ?¦Y
a a?aY¤Y«iYa ? ¬iai. …a«? ?¤Ya?ae?? a®a, ®!eic«Ye© a cYe-
?¬ a??®¬?®¬?®®c??, ?a?®«i§aYaai c cea ¦Y?? (Y ic«iieY¬ai
c aaii ®?Ya ae?? sizeof), a® c® caY© ?a®Fa ¬¬Y ¤®«¦® ?¬Yai-
aic a®c®aa? ®¤® cYeYY ®?aY¤Y«Y?Y ¤ ®F® ?¤Ya?ae?? a®-
a .

Turbo C++ ?®§c®«iYa § aY¬ ?YaY®!eic«Y?Y cYe?a ?¬Y,
a ??a ? ? ¬ aa?ce, aaaa?aaae ? ®!eY¤?Y?i, ¤®! c«ii ?ae®a-
¬ ae?i ? a YY ce?®«Ye¬ ®!eic«Y?i¬. ˜ ?a?¬Ya,

int a[] // Ya a §¬Ya 
struct mystruct; // a®«i?® aYF, !Y§ ®!eic«Y?i ?®¬?®Ya®c

– 38 –
int a[3] = [1, 2, 3]; // § ¤ ?Y a §¬Ya  ? ??ae? «?§ ae?i
struct mystruct (*
int i, j;
*); // ¤®! c«Y?Y ¤Y?« a a®a®c ?®¬?®Ya®c

?!eic«Y?i ?« aa®c Turbo C++ (a®«i?® ‘++) ’ !«?ae  1.12
———————————————————–
a?Yae?ae?? a®a-?« aa :
§ F®«®c®?-?« aa  ()

§ F®«®c®?-?« aa :
?«ic-?« aa  ¤Ya?ae?? a®a>
?«ic-?« aa  ?¬i-?« aa 

a??a®?-?®¬?®Ya®c:
®!eic«Y?Y-?®¬?®Ya 
a?Yae?ae?? a®a-¤®aaa?  :

®!eic«Y?Y-?®¬?®Ya :
;
®?aY¤Y«Y?Y-aea?ae??
?c «?ae?ae?a®c ®Y-?¬i;

a??a®?-¤Y?« a a®a -?®¬?®Ya®c:
¤Y?« a a®a-?®¬?®Ya 
a??a®?-¤Y?« a a®a -?®¬?®Ya®c, ¤Y?« a a®a-?®¬?®Ya 

¤Y?« a a®a-?®¬?®Ya :
¤Y?« a a®a ¤Ya?ae?? a®a> : cea ¦Y?Y-a?? -?®aa ae

pure-a?Yae?ae?? a®a:
=0

! §®ce©-a?Yae?ae?? a®a:
:! §®ce©-a??a®?

! §®ce©-a??a®?:
! §®ce©-a?Yae?ae?? a®a
! §®ce©-a??a®?, ! §®ce©-a?Yae?ae?? a®a

! §®ce©-a?Yae?ae?? a®a:
?¬i-?« aa 
virtual ?¬i-?« aa 
a?Yae?ae?? a®a-¤®aaa?  ?virtual> ?¬i-?« aa 

a?Yae?ae?? a®a-¤®aaa? :
private
protected
public

?¬i-aea?ae??-?aY®!a §®c ?i:
operator ?¬i-a?? -?aY®!a §®c ?i

?¬i-a?? -?aY®!a §®c ?i:
a?Yae?ae?? ae?i-a?? 

??ae? «?§ a®a-?®aaaa?a®a :
: a??a®?-??ae? «?§ a®a®c-? ¬ia?

a??a®?-??ae? «?§ a®a®c-? ¬ia?:
??ae? «?§ a®a-? ¬ia?
??ae? «?§ a®a-? ¬ia?, a??a®?-??ae? «?§ a®a®c-? ¬ia?

??ae? «?§ a®a-? ¬ia?:
?¬i-?« aa  ()
?¤Ya?ae?? a®a (
)

– 39 –

?¬i-aea?ae??-®?Ya ae??:
operator ®?Ya ae?i

®?Ya ae?i: ®¤® ?§
new delete sizeof

+ – * /% ^
& \! !=
+= -= *= /=%= ^=
&= \!= >>>= =&& \!\!
++ — , ->*-> ()
[] .*
———————————————————–

‘?Yae?ae?? a®ae a?? 

‘?Yae?ae?? a®a a??  a ®¤?¬ ?«? !®«YY ®?ae?® «ie¬ ¬®¤?-
ae?? a®a®¬ ?a?®«i§aYaai ¤«i § ¤ ?i a??  ®!eic«iY¬®F® ?¤Ya?-
ae?? a®a :

int i; // ®!eic«Y?Y i ? ? aeY«®F® a® § ?®¬
unsigned char ch1, ch2; // ®!eic«Y?Y ¤caa a?¬c®«iea
!Y§ § ? 

˜® aaa®iceY©ai aa ¤?ae??, Ya«? a?Yae?ae?? a®a a??  ®?aeY,
a® ?® a¬®«c ?i  § c Yaai a?? signed int (?«?, ca® i?c?c –
«Ya®, int). ?¤ ?®, c ‘++ caaaYc iaai a?aa ae??, ?®F¤  ®a-
aaaaac?Y a?Yae?ae?? a®a  a??  cY¤Ya ? a?a ?a?cYa?®© Y®¤®§-
 c®aa?, ?®ia®¬a c ?a ?a??Y a !®ae a ‘++ ?a?®«i§aYaai ice©
cc®¤ caYa a?Yae?ae?? a®a®c a??  int.

’ ?a®®¬?i a?? 

‘aeYaacaYa cYaeaY ! §®ceY ? aYF®a?? a?? : void, scalar,
function ? aggregate. ’??e scalar ? aggregate ¬®Faa ¤ «YY
?®¤a §¤Y«iaiai a«Y¤aie?¬ ®!a §®¬:

– Scalar:  a?ae¬Ya?cYa??©, ?YaYc?a«?¬e©, a? § aY«i ? c ‘
++ aae«??

– Aggregate: ¬ aa?c, aaaa?aaa , ®!eY¤?Y?Y ? c ‘++ ?« aa

’??e ¤Y«iaai   aea¤ ¬Ya «ieY ? ?a®?§c®¤eY. ? aea¤ –
¬Ya «ie¬ ®a®aiaai: void, char, int, float ? double a®c-
¬Yaa® a short, long, signed,   a ?¦Y Y?®a®aeY c a? ae a
?¬? unsigned. ˜a®?§c®¤eY a??e c?«ic ia c aY!i a? § aY«? ?
aae«??   ¤aaF?Y a??e,¬ aa?ce ¤aaF?a a??®c, a??e aea?ae?©,
a??e ?« aa®c, aaaa?aaae ? ®!eY¤?Y?i.

‘++: ?!eY?a ?« aa  ¬®¦Ya,  ?a?¬Ya, a®¤Ya¦ ai Y?®a®a®Y
c?a«® ®!eY?a®c a §«?cea a??®c c¬YaaY aaea?ae?? ¬ ??a«iae??
ia?¬? ®!eY?a ¬?, ?«ia ¬Ya ?§¬ ?®aa®«i ¤®aaa?  ?  a«Y¤®c –
?i ®a ¤aaF?a ?« aa®c.

‡ ¤ c Y-?aaa®©a?? type (a Y?®a®ae¬? ?aY¤®aa®a®¦®aai-
¬?), ¬®¦® ®!eic«iai ?a®?§c®¤eY a??e a«Y¤aie?¬ ®!a §®¬:

– 40 –

?!eic«Y?Y a??®c ’ !«?ae  1.13
———————————————————–
type t; ?!eY?a a??  type

type array[10]; „Yaiai a??®c: array[0]-array[9]

type *ptr; ptr ia® a? § aY«i a?? 

type &ref=t; ref = aae«?    a?? (C++)

type func(void); func c®§ca e Ya § cY?Y a??  type

void func1(type t); func1 ?a??¬ Ya ? a ¬Yaa a??  type

struct st (type t1; type t2); aaaa?aaa  st a®¤Ya¦?a ¤c  a?? 
————————————————————

˜?¦Y ?®? § ®, ? ? ?a®?§c®¤eY a??e ¬®Faa !eai ®!eic«Y-
e c ?aY¤Y« a ?« aa :

class cl (* // ?« aa cl a®¤Ya¦?a a? § aY«i ptr   a??, ?«ia
// aea?ae?i, ?a??¬ ieai ? a ¬Yaa type (C++)
type *ptr;
public:
void func(type*);

’?? void

Void ia® a?Yae? «ie© a?Yae?ae?? a®a a?? , a? §ec ie?©  
®aaaaaac?Y ? ??a-«?!® § cY?©. ? § ¤ Yaai c a«Y¤aie?a a?-
aa ae?ia:

– ˜aaa®© a??a®? ? a ¬Yaa®c c ®!eic«Y?? aea?ae??:

int func(void); // aea?ae?i Y ?a??¬ Ya  aFa¬Ya®c

‘++ ®!a ! aec Ya 0 a?Yae? «ie¬ ®!a §®¬. ‘¬. a §¤Y«
“?!eic«Y?i ? ?a®a®a??e”   aaa.60 ? ?a?¬Yae ?®¤    aaa.61
®a?F? « .

– ?®F¤  ®!eic«Y i aea?ae?i Y c®§ca e Ya § cY?©:

void func(int n); // c®§ca e Y¬®Y § cY?Y ®aaaaaacaYa

– ‚ ? cYaacY a®¤®c®F® a? § aY«i. “? § aY«i   void ic-
«iYaai a®¤®ce¬ a? § aY«Y¬   caY ca® aF®¤®:

void *ptr; // ¤ «YY ptr ¬®¦Ya !eai aaa ®c«Y   «i!®©
// ®!eY?a

– ‚ea ¦Y?i a ?a®cYa?®© a?? :

extern int errfunc(); // c®§ca e Ya ?®¤ ®e?!??

(void) errfunc(); // § cY?Y c®§ca a  aYaiYaai
”a¤ ¬Ya «ieY a??e

signed ? unsigned – ia® ¬®¤?ae?? a®ae, ?a?¬YiY¬eY ? ?-
aYFa «ie¬ a?? ¬.

”a¤ ¬Ya «ieY a?Yae?ae?? a®ae a??  a®§¤ iaai ?§ a«Y¤ai-

– 41 –
e?a ?«icYcea a«®c:

char int signed
double long unsigned
float short

˜  ! §Y ia?a ?«icYcea a«®c ce ¬®¦YaY ?®aaa®?ai
?aYFa «ieY a??e ? a??e a ?« c ieY© a®c?®©, ?®a®aeY c a®c®-
?a?®aa?  §ec iaai  a?ae¬Ya?cYa??¬? a?? ¬?. ‚?«ic Y¬e©
ae ©«limits.h a®¤Ya¦?a ®?aY¤Y«Y?i ¤? ? §®®c § cY?© ¤«i
caYa aea¤ ¬Ya «iea a??®c.

?aYFa «ieY a??e

’??e char, short, int ? long,   a ?¦Y ?a c a? ae
unsigned  §ec iaai ?aYFa «ie¬? a?? ¬?. ˜?¦Y ?a?c®¤iaai
a?Yae?ae?? a®ae ?aYFa «iea a??®c a ?®¬YeYe¬? c a®© ¦Y
aaa®?Y a?®?¬ ¬?.

?aYFa «ieY a??e ’ !«?ae  1.14
———————————————————–
char,signed char …a«? ?® a¬®«c ?i char aaa ®c«Y ? ?
signed, a® ia® a?®?¬e
unsigned char
char,unsigned char …a«? ?® a¬®«c ?i char aaa ®c«Y ? ?
unsigned, a® ia® a?®?¬e
signed char
int,signed int
unsigned,unsigned int
short,short int,signed short int
unsigned short,unsigned short int
long,long int,signed long int
unsigned long,unsigned long int
———————————————————–

‘ a?? ¬? char,short, int ?«? long ¬®¦® ?a?®«i§®c ai
«?!® signed, «?!® unsigned. …a«? ¦Y ?a?®«i§®c ai a®«i?® a ¬?
?«icYceY a«®c  signed ?«? unsigned, a® ®? ®§ c ia signed
int ?«? unsigned int, a®®acYaaacY®.

‚ ®aaaaaac?Y a«®c  unsigned ®!ec® ?a??¬ Yaai a??
signed. ?a?«icY?Y c®§?? Yac a«ac Y char. Turbo C++ ?®§c®-
«iYa aaa  c«?c ai¤«i char a¬®«c ?Y signed ?«? unsigned.
(…a«? ce Y aaa  c«?c «? ia® a¬®«c ?Y a ¬?, a® ia® a¬®«c –
?Y !a¤Ya a c® signed). …a«? a¬®«c ?Y aaa ®c«Y® c § cY-
?Y unsigned, a® ®!eic«Y?Y char ch ®!eic?a ch ? ? unsigned.
„«i ?YaY®?aY¤Y«Y?Y ia®F®a¬®«c ?i a¦® § ¤ ai signed char
ch. ? «®F?ce¬ ®!a §®¬, Ya«? ¤«i char aaa ®c«Y® a¬®«c ?Y
signed, a® ¤«i ®!eic«Y?i ch ? ? unsigned char a«Y¤aYa ic®
a? § ai unsigned char ch.

‘ int ¬®¦® ?a?®«i§®c ai «?!® long, «?!® short. …a«?
?«icYceY a«®c long ?«? short ?a?®«i§®c e a ¬? ?® aY!Y, a®
®? ®§ c ia long int ?«? short int, a®®acYaaacY®.

ANSI C Y aaa  c«?c Yaa §¬Yae caaaYYF® ?aY¤aa c«Y-
?i ia?a a??®c, §  ?a?«icY?Y¬ a®F®, ca® a §¬Yae ¤ ea
short, int ? long ®!a §aia Ya!ec ieai ?®a«Y¤®c aY«i-
®aai”short - 42 - 1 - ®aa?ae aY«i®Y (ca® ®!eiaiYa ¤? ? §®Y, ?a?cY¤YeY c a !«?aeY 1.9). ‚ cYaa?ia unsigned ¤«iaa Y?i c?a«  ?a?®«i§a- iaai caY !?ae, ca® ¤ Ya ¤? ? §® 0-(2^n-1), F¤Y n = 8,16 ?«? 32. ’??e a ?« c ieY© a®c?®© ˜aY¤aa c«Y?i ? ¬®¦Yaac  ?a??¬ Y¬ea § cY?© ¤«i a?- ?®c a ?« c ieY© a®c?®© § c?aia ®a ?®?aYa®© aY «?§ ae??; a® Yaai ? ¦¤ i ®c i aY «?§ ae?i ?®¬??«ia®a  ‘ ac®!®¤  ®?aY¤Y- «iai ?a ?®-ac®Y¬a. TurboC++ ?a?®«i§aYa ae®a¬ ae a ?« c ieY© a®c?®© IEEE. (˜a?«®¦Y?Y ?, "‘a ¤ aae ANSI, § c?a?¬eY ®a aY «?§ ae??" a®¤Ya¦?a !®«YY ?®¤a®!ai ?ae®a¬ ae?i ?® ia®¬a c®?a®aa.) float ?double?aY¤aa c«iia a®!®© 32- ? 64-a §ai¤eY a??e ¤ ea a ?« c ieY© a®c?®©, a®®acYaaacY®. long ¬®¦® ?a- ?®«i§®c ai a double ¤«i ?®«acY?i 80-a §ai¤®© a®c®aa? ?aY¤aa c«Y?i ?¤Ya?ae?? a®a  a ?« c ieY© a®c?®©: long double test_case,  ?a?¬Ya. ˜ a?aY¤Y«iY¬ i ¤«i a??®c a ?« c ieY© a®c?®© ? ¬iai ?®- ? §   c a !«?aeY 1.9. ‘a ¤ aaeY ?aY®!a §®c ?i ˜a? ?a?®«i§®c ??  a?ae¬Ya?cYa??a cea ¦Y?©, a ??a ? ? a +b, F¤Y a ? b - ia® ¤ eY a §«?cea  a?ae¬Ya?cYa??a a??®c, Turbo C++ ce?®«iYa ?YaY¤cec?a«Y?Y¬®?aY¤Y«YeY caaaY?Y ?aY®!a §®c ?i. ˜a? aa ¤ aaeY ?aY®!a §®c ?i c?«ic ia c aY!i ?YaYc®¤ "?§e?a" a??®c c "ceae?Y" c ?aYaYa a a®c®aa? ?aY¤aa c«Y?i ? Y?a®a?c®aYc?c®aa? ¤ ea. ˜?¦Y ?a?c®¤iaai e F?, ce?®«iY¬eY Turbo C++¤«i ?aY®!a - §®c ?i ®?Ya ¤®c c  a?ae¬Ya?cYa??a cea ¦Y?ia: 1. ‚aY ¬ «eY ?aYFa «ieY a??e ?aY®!a §®cec iaai a®F- « a® a !«?aeY 1.15. ˜®a«Y ia®F® «i!eY ¤c  § cY?i, ac aaca- ie?Y c ®?Ya ae??, aa ®ciaai «?!® Int (c?«ic i ¬®¤?ae?? a®ae long ? unsigned), «?!® double, float ?«? long double. 2. …a«? ®¤? ?§ ®?Ya ¤®c ?¬YYa a?? long double, a® ca®a®© ®?Ya ¤ a ?¦Y !a¤Ya ?aY®!a §®c  ? a??a long double. 3. ? cY, Ya«? ®¤? ?§ ®?Ya ¤®c ?¬YYa a?? double, a® ca®a®© ®?Ya ¤ a ?¦Y !a¤Ya ?aY®!a §®c  ? a??a double. 4. ? cY, Ya«? ®¤? ?§ ®?Ya ¤®c ?¬YYa a?? float, a® ca®a®© ®?Ya ¤ a ?¦Y !a¤Ya ?aY®!a §®c  ? a??a float. 5. ? cY, Ya«? ®¤? ?§ ®?Ya ¤®c ?¬YYa a?? unsigned long, a® ca®a®© ®?Ya ¤ a ?¦Y !a¤Ya ?aY®!a §®c  ? a??a unsigned long. 6. ? cY, Ya«? ®¤? ?§ ®?Ya ¤®c ?¬YYa a?? long, a® ca®a®© ®?Ya ¤ a ?¦Y !a¤Ya ?aY®!a §®c  ? a??a long. 7. ? cY, Ya«? ®¤? ?§ ®?Ya ¤®c ?¬YYa a?? unsigned, a® ca®a®© ®?Ya ¤ a ?¦Y !a¤Ya ?aY®!a §®c  ? a??a unsigned. 8. ‚ ?a®a?c®¬ a«ac Y ®!  ®?Ya ¤  ?¬Yia a?? Int. ˜Y§a«ia a cec?a«Y?i cea ¦Y?i !a¤Ya a®F® ¦Y a?? , ca® ? ®!  ac aacaie?a c Y¬ ®?Ya ¤ . - 43 - ?Ya®¤e aa ¤ aaea  a?ae¬Ya?cYa??a ?aY®!a §®c ?© ’ !«?ae  1.15 ------------------------------------------------------------ ’?? ˜aY®!a §®c ?Y c?Ya®¤ ------------------------------------------------------------ char int˜ ae?aY?Y a«Y¬ ?«? § ?®¬ (c § c?a?¬®aa? ®a a¬®«c ?i ¤«i a??  char) unsigned char int‡ ?®«Y?Y aa aeYF® ! ©a  a«Y¬ (caYF¤ ) signed char int˜ ae?aY?Y § ?®¬ (caYF¤ ) short int’® ¦Y § cY?Y unsigned short unsigned int ’® ¦Y § cY?Y enum int’® ¦Y § cY?Y ------------------------------------------------------------ ‘?Yae? «ieY ?aY®!a §®c ?i a??®c char, int ? enum ?!aa¦¤ Y¬eY c ¤ ®¬ a §¤Y«Y ?aY®!a §®c ?i a?Yae?ae?ce ¤«i Turbo C++. ˜a?ac ?c ?Y ®!eY?a  a??  signed char ( ?a?¬Ya,?YaY- ¬Y®©) ?aYFa «i®¬a®!eY?aa ce§ec Ya  ca®¬ a?cYa?®Y a ae?- aY?Y § ?®¬. ?!eY?ae a??  signed char ?a?®«i§aYaa ae?aY?Y § ?®¬ caYF¤ ; ®!eY?ae a?? unsigned char?a? ?aY®!a §®c ?? cint caYF¤  aaa  c«?c ia aa ae?© ! ©a c ®«i. ˜aY®!a §®c ?Y !®«YY ¤«?ea ?aYFa «iea a??®c ? !®«YY ?®a®a??¬ a?? ¬ cY¤Ya ? aaYcY?i aa ae?a !?a®c, ®aa c«ii ¬« ¤e?Y !Y§ ?§¬YY?i. ˜aY®!a §®c ?Y !®«YY ?®a®a?®F® ?aYF- a «i®F® a??  ? !®«YY ¤«?®¬a «?!® a ae?aiYa «?e?Y !?ae ®c®F® § cY?i § ?®¬, «?!® § ?®«iYa ?a a«Y¬, c § c?a?- ¬®aa? ®a a®F®, ic«iYaai «? !®«YY ?®a®a??© a?? signed ?«? unsigned, a®®acYaaacY®. ??ae? «?§ ae?i ??ae? «?§ a®ae aaa  c«?c ia ?aa®¤®Y § cY?Y,aa ?¬®Y c ®!eY?aY (?YaY¬YeY,¬ aa?ce, aaaa?aaae, ? a.¤.). …a«? ce Y ??ae? «?§?aaYaY ®!eY?a, ? ® ?¬YYa aa a?cYa?ai ?a®¤®«¦?- aY«i®aai aaeYaac®c ?i, a® ® !a¤Ya ??ae? «?§?a®c  ?® a¬®«c ?i, a«Y¤aie?¬ ®!a §®¬: - a«Y¬, Ya«? ia® ®!eY?a  a?ae¬Ya?cYa?®F® a??  - null, Ya«? ca® a? § aY«i ‚ a«ac Y  ca®¬ a?cYa?®F® a a?aY¤Y«Y?i ? ¬ia? ?aa®¤®Y § cY?Y ¤? ¬?cYa?®© «®? «i®© ?YaY¬Y®© Y?aY¤a? §aY¬®. ‘?a ?a?a ??ae? «?§ a®a®c a«Y¤aie?©: ??ae? «?§ a®a = cea ¦Y?Y = (*a??a®?-??ae? «?§ a®a®c*)*)
(a??a®? cea ¦Y?©)

a??a®?-??ae? «?§ a®a®c
cea ¦Y?Y
a??a®?-??ae? «?§ a®a®c, cea ¦Y?Y
(*a??a®?-??ae? «?§ a®a®c*)*)

˜?¦Y ?a?c®¤iaai ?a c?« , a?a c«iie?Y ??ae? «?§ a®a ¬?:

– 44 –

1. —?a«® ??ae? «?§ a®a®c c a??a?Y ??ae? «?§ a®a®c Y
¬®¦Ya ?aYcee ai c?a«® ??ae? «?§?aaY¬ea ®!eY?a®c.

2. ??ae? «?§?aaY¬e© i«Y¬Ya ¤®«¦Y !eai a??  ®!eY?a 
?«? ¬ aa?c®¬ Y?§cYaa®© a §¬Ya®aa?.

3. ‚aY cea ¦Y?i ¤®«¦e ic«iaiai ?®aa a ¬?, Ya«? ®?
 a®¤iaai c ®¤®¬ ?§ a«Y¤aie?a ¬Yaa:

 . c ??ae? «?§ a®aY ®!eY?a , ?¬YieYF® aa a?cYa?ai ¤«?-
aY«i®aai (c Turbo C++ Y aaY!aYaai)

b. c a??a?Y ??ae? «?§ a®a®c ¤«i ¬ aa?c , aaaa?aaae ?«?
®!eY¤?Y?i (a ?¦Y ¤®?aaa?¬e cea ¦Y?i a ?a?®«i§®c ?Y¬
sizeof)

4. …a«? ®!eic«Y?Y ?¤Ya?ae?? a®a  ?¬YYa ?®aY?aa !«®? ,
? ?¤Ya?ae?? a®a ?¬YYa cYeii ?«? caaaYii ?®¬?®®c?a,
®!eic«Y?Y Y ¬®¦Ya ?¬Yai ??ae? «?§ a®a ¤«i ?¤Ya?ae?? a®a .

5. …a«? c® c§ia®¬ c ae?FaaeY a?®!?? a??a?Y ??ae? «?§ –
a®a®c ¬YieY, cY¬ i«Y¬Ya®c aaaa?aaae, a® ®aa ce iai c aai
aaaa?aaae Yic® ??ae? «?§?aaYaai a ??¬ ¦Y ®!a §®¬, ? ? ?
®!eY?ae a® aa a?cYa?®© ?a®¤®«¦?aY«i®aaii aaeYaac®c ?i c
? ¬ia?.

‘? «iaeY a??e ??ae? «?§?aaiaai c ®¤®¬cea ¦Y??, ?®a®-
a®Y ®?ae?® «i® ¬®¦® § ?«ic?ai c ae?FaaeY a?®!??. ?aa®¤®Y
§ cY?Y ®!eY?a  !YaYaai ?§ cea ¦Y?i; ¤Y©aacaia aY ¦Y ®Fa –
?cY?i   a?? ? ce?®«iY¬eY ?aY®!a §®c ?i, ca® ? ¤«i ?a®a-
aea ?a?ac ?c ?©.

„«i ®!eY¤?Y?© § ?«icYe© c ae?FaaeY a?®!?? ??ae? «?-
§ a®a ??ae? «?§?aaYa ?®¬?®Ya, ?®ic«iie?©ai c a??a?Y
®!eic«Y?i ®!eY¤?Y?i ?Yace¬. „«i aaaa?aaa ? ®!eY¤?Y?© a
 ca®¬ a?cYa??¬ a §¬YeY?Y¬ c ? ¬ia? ??ae? «?§ a®a ¤®«¦Y
!eai ®¤?¬ ?§:

– a??a?®¬ ??ae? «?§ a®a®c, ? ? ®??a ® c a«Y¤aieY¬ a §-
¤Y«Y
– ®a¤Y«ie¬ cea ¦Y?Y¬ a a??®¬, a®c¬Yaa?¬e¬ a ®!eY¤?Y-
?Y¬ ?«? aaaa?aaa®©. ‚ ia®¬ a«ac Y ?aa®¤®Y § cY?Y ®!eY?a 
!YaYaai ?§ cea ¦Y?i.

? aa?ce, aaaa?aaae ? ®!eY¤?Y?i

‚e ??ae? «?§?aaYaY ¬ aa?ce ? aaaa?aaae (Ya«? a®a?aY, a®
c® caY¬i ®!eic«Y?i) ?a? ?®¬®e? § ?«icY®F® c ae?FaaeY
a?®!?? a??a?  ??ae? «?§ a®a®c ¤«i ?®¬?®Ya®c ?«?i«Y¬Ya®c
a aa¬ aa?c Y¬®F® ®!eY?a . ??ae? «?§ a®ae ¤ iaai ?® c®§a aa –
?i ?¤Y?a  ¬ aa?c®c ?«? ®¬Ya®c ?®¬?®Ya®c. ??ae? «?§ ae?i
®!eY¤?Y?©ce?®«iYaai § ?«icYe¬ c ae?FaaeY a?®!?? ??ae? –
«?§ a®a®¬ ¤«i ?Yac®F® ?®¬?®Ya  ®!eY¤?Y?i. ˜ ?a?¬Ya, ce
¬®¦YaY ®!eic?ai ¬ aa?c days, ?aY¤ § cYe© ¤«i ?®¤acYa 
a®F®, a?®«i?® a § ? ¦¤e© ¤Yi Y¤Y«? !e« c a®¬ ?«? ?®¬ ¬Y-
aiaeY (?aY¤?®« F i, ca® ? ¦¤e© ¤Yi Y¤Y«? !e« c ¬YaiaeY a®ai
!e ®¤? a §), a«Y¤aie?¬ ®!a §®¬:

int days[7] = (* 1, 1, 1, 1, 1, 1, 1)

˜a?¬? ?a c?« ¬? ¬®¦®c®a?®«i§®c aiai ¤«i ??ae? «?§ ae??
a?¬c®«iea ¬ aa?c®c ? e?a®??a a?¬c®«iea ¬ aa?c®c:

1. ?®¦® ??ae? «?§?a®c ai ¬ aa?ce a?¬c®«i®F® a??  a
?®¬®eii aaa®?? «?aYa «®c, ®?ae?® «i® § ?«icY®© c ae?FaaeY
a?®!??. ? ¦¤e© a?¬c®« aaa®??, c?«ic i a«Yc®© aYa¬? a®a,

– 45 –
??ae? «?§?aaYa ?®a«Y¤®c aY«i® a a?®«®¦YeY i«Y¬Yae ¬ aa?-
c . ˜ ?a?¬Ya, ce ¬®F«? ®!eic?ai:

char name[] = (* “Unknown” *);

aaa ®c?c aY¬ a ¬e¬ ¬ aa?c ?§ c®ai¬? i«Y¬Ya®c, i«Y¬Y-
ae ?®a®a®F® a ce ‘U'(¤«i name[0]), ‘n’ (¤«i name[1]), ?
a.¤. (c?«ic i a«Yc®© aYa¬? a®a.)

2. ‚e ¬®¦YaY ??ae? «?§?a®c ai e?a®??© a?¬c®«ie© ¬ aa?c
(a® Yaai a®c¬Yaa?¬e© a wchar_t), ?a?®«i§ai e?a®??© aaa®?®ce©
«?aYa «, ®?ae?® «i® § ?«icYe© c ae?FaaeY a?®!??. ? ? ? c
a«ac Y a?¬c®«iea ¬ aa?c®c, ?®¤e e?a®?®F® a?¬c®«i®F® «?aY-
a «  ?®a«Y¤®c aY«i® ??ae? «?§?aaia i«Y¬Yae ¬ aa?c .

˜?¦Y ?a?c®¤?aai ?a?¬Ya ??ae? «?§ ae?? aaaa?aaae:

struct mystruct (*
int i;
char str[21];
double d;
*) s = (* 20, “Borland”, 3.14 *);

‘«®¦eY ?®¬?®Yae aaaa?aaae,a ??Y? ? ¬ aa?ce?«? aaaa?-
aaae, ¬®Faa!eai??ae? «?§?a®c e a®®acYaaacaie?¬? cea ¦Y?i¬?
c® c«®¦Yea ae?Faaea a?®!®?. ?®¦® a!a ai ae?FaaeY a?®!??,
® a®F¤  ?a?a®¤?aai ce?®«iai ¤®?®«?aY«ieY ?a c?« , ? a –
? i ?a ?a??  Y aY?®¬Y¤aYaai.

˜a®aaeY ®!eic«Y?i

˜a®aaeY ®!eic«Y?i ?¤Ya?ae?? a®a®c ?YaY¬Yea ?¬Yia
a«Y¤aie?© e !«®:

a??-¤ ea ?YaY¬1 , ?YaY¬2 ,…;

F¤Y ?YaY¬1, ?YaY¬2, … ia® ?a®?§c®«i i ?®a«Y¤®c aY«i-
®aai ®a¤Y«iea ?¤Ya?ae?? a®a®c a ®?ae?® «ie¬? ??ae? «?§ –
a®a ¬?. ? ¦¤ i ?§ ?YaY¬Yea ®!eic«iYaai a a? § e¬ a?-
?®¬-¤ ea. ˜ ?a?¬Ya,

int x = 1, y = 2;

a®§¤ Ya ¤cY aeY«®c?a«Yea ?YaY¬Yea x ? y (?
??ae? «?§?aaYa ?a § cY?i¬? 1 ? 2, a®®acYaaacY®).

˜a® !e«?®!eic«Y?i ®?aY¤Y«Y?i; ?a? ia®¬ a a?aY¤Y«i« ai
? ¬iai ? ce?®«i« ai ??ae? «?§ ae?i.

??ae? «?§ a®a ¤«i ¤? ¬?cYa?®F® «®? «i®F® ®!eY?a  ¬®-
¦Ya ?aY¤aa c«iai a®!®© «i!®Y cea ¦Y?Y, ¤ ieYY ?a? cec?a«Y-
?? a®c¬Yaa?¬®Y a a??®¬ ac aacaieY©c ?a?ac ?c ?? ?YaY¬Y®©
§ cY?Y. ??ae? «?§ a®ae ¤«i aa a?cYa??a ®!eY?a®c ¤®«¦e ic-
«iaiai ?®aa a ¬? ?«? cea ¦Y?i¬? a ?®aa a ¬?.

‚ C++ ??ae? «?§ a®a aa a?cYa?®F® ®!eY?a  ¬®¦Ya ic«iaiai
«i!e¬ cea ¦Y?Y¬, c?«ic ie?¬ c aY!i ?®aa ae ? a YY ®?aY-
¤Y«YeY ?YaY¬YeY ? aea?ae??.

‘?Yae?ae?? a®ae ?« aa  ? ¬ia?

‘?Yae?ae?? a®a ?« aa  ? ¬ia?,?«? a?Yae?ae?? a®a a?? , ®!i-
§ aY«i® ¤®«¦Y ?a?aaaaac®c ai c ®!eic«Y??. ‘?Yae?ae?? a®a
?« aa  ? ¬ia? ¬®¦Ya !eai ®¤?¬ ?§ a«Y¤aie?a ?«icYcea a«®c:

auto register typedef
extern static

– 46 –

?a?®«i§®c ?Y a?Yae?ae?? a®a  ?« aa  ? ¬ia? auto

‘?Yae?ae?? a®a ?« aa  ? ¬ia? auto ?a?®«i§aYaai a®«i?® c
®!eic«Y?ia ?YaY¬Yea a «®? «ie¬ ?®aY?aa®¬. ? ?®¤a §a¬Y-
c Ya «®? «iai ( ca®¬ a?cYa?? ®?aY¤Y«iY¬ai) ?a®¤®«¦?aY«i-
®aai, ® ?®a?®«i?a ia® Yaai a¬®«c ?Y ¤«i caYa ®!eic«Y?©
?YaY¬Yea «®? «i®F® ?®aY?aa , a® ?a?®«i§®c ?Y YF® aY¤?®.

?a?®«i§®c ?Y a?Yae?ae?? a®a  ?« aa  ? ¬ia? extern

‘?Yae?ae?? a®a ?« aa  ? ¬ia? extern ¬®¦Ya !eai ?a?®«i§®-
c  c ®!eic«Y?ia aea?ae?© ? ?YaY¬Yea a ?®aY?aa®¬ ae ©«  ?
a «®? «ie¬ ?®aY?aa®¬ ¤«i ®!®§ cY?i cYeYF® a??  ?®¬?®-
®c??. ‚ a«ac Y ?YaY¬Yea a?®aY?aa®¬ ae ©«  a?Yae?ae?? a®a
?« aa  ? ¬ia? extern ic«iYaai a¬®«c ?Y¬.˜a? ?a?®«i§®c ??
a?YaY¬Ye¬? extern a? §ec Ya   a®,ca® ¤  i ?YaY¬Y i
?¬YYaaa a?cYa?ai ?a®¤®«¦?aY«i®aai. (˜®¬?aY, ca® aea?ae??
caYF¤  ?¬Yiaaa a?cYa?ai ?a®¤®«¦?aY«i®aai).

?a?®«i§®c ?Y a?Yae?ae?? a®a  ?« aa  ? ¬ia? register

‘?Yae?ae?? a®a ?« aa  ? ¬ia? register¤®?aaa?¬ a®«i?® c
®!eic«Y?ia «®? «iea ?YaY¬Yea ? ? a ¬Yaa®c aea?ae?©. ?
i?c?c «YaY ?« aa  auto, §  ?a?«icY?Y¬ a®F®, ca® ?®¬??«i-
a®aa c ¤ ®¬ a«ac Y ¤Y« Yaai § ?a®a ® a §¬YeY?? ?a? c®§-
¬®¦®aa? ¤ ®© ?YaY¬Y®© c aYF?aaaY. ˜ a?aY¤Y«Y?Y ¤«i ?Y-
aY¬Y®© aYF?aaa  ¬®¦Ya § c?aY«i® a¬Yie?ai a §¬Ya
?a®Fa ¬¬e ? acY«?c?ai a?®a®aai YY ce?®«Y?i c® ¬®F?a a«a-
c ia. ?¤ ?®, ?®a?®«i?a TurboC++ ?a ? ?aY¤?a??¬ Ya ¬Yae¤«i
c®§¬®¦®F® a §¬YeY?i ?YaY¬Yea c aYF?aaaY, Y®!a®¤?¬®aai c
ic®¬ § ¤ ?? ?«icYc®F® a«®c  register c®§?? Ya aY¤?®.

Turbo C++ ?®§c®«iYa c ¬ ce!a ai ®?ae?? a §¬YeY?i ?YaY-
¬Yea c aYF?aaa a c ¤? «®F®c®¬ ?®«Y Options \! Compiler \!
Optimization. ˜a? ce!®aY ®?ae?? Automatic TurboC++ a¤Y« Ya
?®?ea?a a a?aY¤Y«?ai aYF?aaae ¤ ¦Y Ya«?a?Yae?ae?? a®ae ?« aa 
? ¬ia? register Y § ¤ c «?ai.

?a?®«i§®c ?Y a?Yae?ae?? a®a  ?« aa  ? ¬ia? static

‘?Yae?ae?? a®a ?« aa  ? ¬ia? static ¬®¦Ya ?a?®«i§®c aiai
c ®!eic«Y?ia aea?ae?© ? ?YaY¬Yea a ?®aY?aa®¬ ae ©«  ? «®-
? «ie¬ ?®aY?aa®¬ ¤«i ®!®§ cY?i caaaYYF® a?? ?®¬?®®c-
??. Static a ?¦Y a? §ec Ya, ca® ?YaY¬Y i ¤®«¦  ?¬Yaiaa –
a?cYa?ai ?a®¤®«¦?aY«i®aai aaeYaac®c ?i. ˜a? ®aaaaaac??
?®aaaa?a®a®c?«? icea??ae? «?§ a®a®c aa a?cYa??Y ?YaY¬YeY
??ae? «?§?aaiaai 0 ?«? null.

‚ ‘++ ?®¬?®Yae ?« aa ,aa a?cYa??Y ¤ eY, ?¬YYa a® ¦Y
§ cY?Y ¤«icaYa ca®¦¤Y?© ?« aa . —«Ye ?« aa , aa a?cYa??Y
aea?ae??, Y § c?aia ®a ¤aaF?a ca®¦¤Y?© ?« aa .

?a?®«i§®c ?Y a?Yae?ae?? a®a  ?« aa  ? ¬ia? typedef

?«icYc®Y a«®c® typedef ®§ c Ya, ca® ce Y ®!eic«iYaY
®!eY?a,   ®?aY¤Y«iYaY a?Yae?ae?? a®a ®c®F® a??  ¤ ea.
typedef c?«ic Yaai c ? cYaacY a?Yae?ae?? a®a  ?« aa  ? ¬ia?
ca«Y¤aac?Y a?a ?a?cYa??a,   Y aea?ae?® «iea   «®F?©.

static long int biggy;
typedef long int BIGGY;

˜Yac®Y ®!eic«Y?Y a®§¤ Ya 32-!?a®ce© ®!eY?a a??  long
int, a® aa a?cYa?®© ?a®¤®«¦?aY«i®aaii aaeYaac®c ?i ? ?¬Y-
Y¬ biggy. ‚a®a®Y ®!eic«Y?Y aaa  c«?c Ya ?¤Ya?ae?? a®a
BIGGY c ? cYaacY a?Yae?ae?? a®a ®c®F®a?? , Y a®§¤ c i ?a?

– 47 –
ia®¬? ?®F®-«?!® ®!eY?a  caY¬Y? ce?®«Y?i. BIGGY ¬®¦® ?a-
?®«i§®c ai c ?®a«Y¤aie?a ®!eic«Y?ia,a ¬, F¤Y ¤®?aaa?¬® § –
¤ c aia?Yae?ae?? a®a a?? . ˜ ?a?¬Ya,

extern BIGGY salary;

?¬YYa a®a ¦Y iaeaeY?a, ca® ?

extern long int salary;

•®ai ¤ e© ?a®aa®© ?a?¬Ya ¬®¦Ya !eai a ce¬ ®!a §®¬
aY «?§®c  ?a? ?®¬®e? #define BIGGY long int, c !®«YY a«®¦-
ea a«ac ia typedef ?®§c®«iYa ¤®!?aiai !®«ieYF®, Y¦Y«? a
?®¬®eii aY?aa®cea ?®¤aa ®c®?.

‚ ¦®Y § ¬Yc ?Y!

typedef Y a®§¤ Ya ®cea a??®c ¤ ea; ia® ?«icYc®Y
a«®c® ?a®aa® a®§¤ Ya ?®«Y§eY ¬Y¬®?cYa??Y a?®?¬e, ?«?
 «? ae,¤«i aaeYaacaie?a a??®c. ˜a® ®a®!Y® ?®«Y§® ¤«i a?-
a®eY?i a«®¦ea ®!eic«Y?©:

typedef double (*PFD)();
PFD array-pfd[10];
/* array_pfd ia® ¬ aa?c ?§ 10 a? § aY«Y©   aea?ae??,
c®§ca e ie?Y § cY?i a??  double */

˜Y«i§i ?a?®«i§®c ai ?¤Ya?ae?? a®ae typedef a® a?Yae?ae?-
? a®a ¬? ¤aaF?a a??®c:

unsigned BIGGY pay; /* ˜…„?˜“‘’??? */
?®¤?ae?? a®ae

˜®¬?¬® ?«icYcea a«®c a?Yae?ae?? a®a  ?« aa  ? ¬ia?, ®!e-
ic«Y?Y ¬®¦Ya?a?®«i§®c ai ?®?aYaeY ¬®¤?ae?? a®ae,
?aY¤ § cYeY ¤«i ?§¬YY?i Y?®a®aea  a?Y?a®c a a?aY¤Y«Y-
?i ? ¬ia? ?¤Ya?ae?? a®a / ®!eY?a . ‚ a«Y¤aieY© a !«?aeY acY-
¤Ye ¬®¤?ae?? a®ae, ?¬Yie?Yai c Turbo C++.

?®¤?ae?? a®ae Turbo C++ ’ !«?ae  1.16
———————————————————–
?®¤?ae?? a®a ?a?®«i§aYaai a ?a?®«i§®c ?Y
———————————————————–
const ’®«i?® ?YaY¬Ye¬? ˜aY¤®aca e Ya ?§¬YY?i ®!eY?a 

volatile ’®«i?® ?YaY¬Ye¬? ˜aY¤®aca e Ya a a?aY¤Y«Y?Y
aYF?aaa®c ? Y?®a®aeY c?¤e ®?a?¬?§ ae??. ˜aY¤a?aY¦¤ Ya ?®¬??-
«ia®a ® a®¬, ca® ®!eY?a ?a? cec?a«Y?? ¬®¦Ya ?®«ac?ai ? ??Y-
«?!® ?§¬YY?i ?§cY.

‚ ‘++ const ? volatile a ae?aYe ? c?«ic ia ?« aae ?
aea?ae??.

˜ ae?aY?i Turbo C++

cdecl ”a?ae?? “aa  c«?c Ya a®F« eY?i ‘ ?YaY-
¤ c?  aFa¬Ya®c

cdecl ˜YaY¬YeY “aa  c«?c Ya acYa aYF?aaa  ?¤Y-
a?ae?? a®a  ? cY¤ae?Y § ?? ?®¤cYa-
??c ?i

pascal ”a?ae?? “aa  c«?c Ya a®F« eY?i ?YaY-
¤ c?  aFa¬Ya®c ˜ a? «i

pascal ˜YaY¬YeY ®a¬YiYa acYa aYF?aaa  ?¤Ya?ae?-

– 48 –
? a®a  ? cY¤ae?Y § ?? ?®¤cYa??-
c ?i

interrupt ”a?ae?? ”a?ae?i ?®¬??«?aaYaai a ¤®?®«?-
aY«ie¬ ?®¤®¬ a?a c«Y?i aYF?-
aaa®¬, Y®!a®¤?¬e¬? ?a?  ??a ??
®!a !®ac??®c ?aYaec ?©

near, ˜YaY¬YeY ˜YaY®?aY¤Y«iYa a¬®«c ?Y a?? 
far, a? § aY«? a? § aY«i, § ¤ c Y¬®Y aY?aeY©
huge ¬®¤Y«ii ? ¬ia?

_cs, ˜YaY¬YeY “? § aY«? aYF¬Ya ;
_ds, a? § aY«? a¬. aaa.199 ®a?F? « 
_es,
_seg,
_ss

near, ”a?ae?? ˜YaY®?aY¤Y«iYa a¬®«c ?Y a?? 
far, aea?ae??, § ¤ c Y¬®Y aY?aeY©
huge ¬®¤Y«ii ? ¬ia?

near, ˜YaY¬YeY ??aY¤Y«iYa a §¬YeY?Y ®!eY?a  c
far, ? ¬ia?

_export ”a?ae?? ’®«i?® OS/2. Turbo C++ ia®
?F®a?aaYa

_loadds ”a?ae?? “aa  c«?c Ya aYF?aaa DS  
aY?ae?© aYF¬Ya ¤ ea

_saveregs ”a?ae?? ˜aY¤®aa iYa caY § cY?i aYF?a-
aa®c (?a®¬Y § cY?© c®§ca a )
c® caY¬i ce?®«Y?i aea?ae??
———————————————————–
?®¤?ae?? a®a const

?®¤?ae?? a®a const ?aY¤®aca e Ya «i!eY ?a?ac ?c ?i ¤ –
®¬a ®!eY?aa,   a ?¦Y ?a®c?Y ?®!®ceY iaeaeY?ae, a ??Y ? ? ?-
?aY¬Ya ?«? ¤Y?aY¬Ya ®!eY?a . “? § aY«i const Y¬®¦Ya !eai
¬®¤?ae?ae?a®c , a®ai a ¬ ®!eY?a,   ?®a®ae© ® a? §ec Ya, ¬®-
¦Ya. ˜ aa¬®aa?¬ a«Y¤aie?Y ?a?¬Yae:

const float pi= 3.1415926;
const maxint = 32767;
char *const str= “Hello, world!”; // a? § aY«i ?®aa a 
char const *str2= “Hello, world!”; // a? § aY«i  
?®aa aa

?a?®«i§®c ?Y ®¤®F® a®«i?® ¬®¤?ae?? a®a const i?c?c –
«Ya® const int.

‘ acYa®¬ ia®F®, a«Y¤aie?Y ®?Ya a®ae ic«iiaai Y¤®?aaa?¬e¬?:

pi= 3.0; /* ?a?ac®Y?Y § cY?i ?®aa aY */
i= maxint++; /* ??aY¬Ya ?®aa ae */
str = “Hi, there!”; /* aaa ®c?  a? § aY«i str  
ca®-a® YeY

?¤ ?®, ®a¬Ya?¬, ca® ce§®c aea?ae?? strcpy(str,”Hi,
there!”) ic«iYaai ¤®?aaa?¬e¬, ?®a?®«i?a ® ce?®«iYa ?®a?¬-
c®«i®Y ?®??a®c ?Y ?§ aaa®?®c®F® «?aYa «  “Hi, there!” c
 ¤aYa ? ¬ia?, a? §ec Y¬e© str.

‚ ‘++ const a ?¦Y “a?aec Ya” ®!eY?a const ? ?aY¤®aca –
e Ya cYeii ?®¬?®®c?a. ˜a? Y®!a®¤?¬®aa? a¦® ?a?®«i§®-
c ai extern const. “? § aY«i   const Y ¬®¦Ya !eai ?a?ac®Y

– 49 –
a? § aY«i   Yconst (c ?a®a?c®¬ a«ac Y § cY?i const ¬®F-
«® !e«® !eai ce?®«Y® ?a?ac®Y?Y ?a? ?®¬®e? a? § aY«i   Y
-const.) ˜ ?a?¬Ya,

char *str3 = str2 /* § ?aYeY® */

?®¤?ae?? a®a aea?ae?? ?aYaec ?i interrupt

?®¤?ae?? a®a interrupt a?Yae?ae?cY ¤«i Turbo C++. ”a?ae??
?aYaec ?i ?aY¤ § cYe ¤«i a !®ae a cY?a®a ¬? ?aYaec ?i
8086/8088. Turbo C++ ?®¬??«?aaYa aea?ae?i interrupt a ¤®?®«-
?aY«ie¬ ?®¤®¬ ca®¤  ? cea®¤ , a ??¬ ®!a §®¬, ca®!e a®aa –
i«?ai aYF?aaae AX, BX, CX, DX, SI, DI, ES ?DS. ˜a®c?Y aY-
F?aaae (BP, SP, SS, CS ? IP) a®aa iiaai ? ? c aai
ce§ec ieY© ?®a«Y¤®c aY«i®aa? ‘ ?«? ? ? c aai a ¬®F® ®!a –
!®ac?? ?aYaec ?©. „«i c®§ca a aea?ae?i ?a?®«i§aYa ?®¬ ¤a
Iret, ?®ia®¬a aea?ae?i ¬®¦Yaa«a¦?ai ¤«i ®!a«a¦?c ?i  ?? a a-
ea ?«??a®Fa ¬¬ea ?aYaec ?©. ˜?¦Y ?®? §  ?a?¬Ya a???c®F®
®?aY¤Y«Y?i interrupt:

void interrupt myhandler()
(*

*)

‚e ¤®«¦e ®!eic«iai aea?ae?? ?aYaec ?i a a??®¬ void.
”a?ae?? ?aYaec ?i ¬®Faa !eai ®!eic«Ye a «i!®© ¬®¤Y«ii ? –
¬ia?. „«i caYa ¬®¤Y«Y© ? ¬ia?, ?a®¬Y huge, DS aaa  c«?c Ya-
ai   aYF¬Ya ¤ ea ?a®Fa ¬¬e. ‚ a«ac Y ¬®¤Y«? huge DS aa-
a  c«?c Yaai  aYF¬Ya ¤ ea ¬®¤a«i.

?®¤?ae?? a®a volatile

‚ C++ volatile ?¬YYaa?Yae? «i®Y § cY?Y ¤«i aea?ae?©
?®¬?®Ya®c ?« aa . …a«? ce ®!eic?«? ®!eY?a volatile, ce ¬®-
¦YaY ?a?®«i§®c ai ¤«i YF® a®«i?® aea?ae?? ?®¬?®Ya®c
volatile.

?®¤?ae?? a®a volatile a? §ec Ya, ca® ¤ e© ®!eY?a ¬®¦Ya
!eai ¬®¤?ae?ae?a®c  Y a®«i?® c ¬?, ® a ?¦Y ? ?§cY c eY©
?a®Fa ¬¬e,  ?a?¬Ya, ?®¤?a®Fa ¬¬®© ?aYaec ?i ?«? ?®aa®¬
cc®¤ /cec®¤ . ?!eic«Y?Y ®!eY?a  volatile ?aY¤a?aY¦¤ Ya ?®¬-
??«ia®a, ca® a®a Y ¤®«¦Y ¤Y« ai ¤®?aeY?© ®a®a?aY«i®
§ cY?i ®!eY?a  c® caY¬i a acYa  a®¤Ya¦ e?a YF® cea ¦Y?©,
?®a?®«i?a YF® § cY?Y (aY®aYa?cYa??) ¬®¦Yac «i!®© ¬®¬Ya
?§¬Y?aiai. ?®¬??«ia®a a ?¦Y Y !a¤Ya ¤Y« ai a ?ai ?YaY¬Y-
ai aYF?aaa®c®© ?YaY¬Y®©.

volatile int ticks;
interrupt timer()
(*
ticks++;
*)
wait(int interval)
(*
ticks = 0;
while (ticks - 50 - ?®¤?a®Fa ¬¬e,  ??a eY   ¤aaF?a i§e? a, ?  ®!®a®a.˜a? a¬Ye ®¬ ?a®Fa ¬¬?a®c ?? ?a?a®¤?aai ?¬Yai ¤Y«® a ¤ca¬i c ¦e¬? c®?a®a ¬?: ?¤Ya?ae?? a®ae ? ?YaY¤ c  ? a ¬Yaa®c. ‚ Turbo C++ caY F«®! «ieY ?¤Ya?ae?? a®ae a®aa iiaai c ac®Y¬ ?aa®¤®¬ c?¤Y (aaa®ceY, § F« ceY!a?ce ? ?a ?®¬!? - ae??) a ?a?a®Y¤?Ye¬ c  c «Y ?¤Ya?ae?? a®a  § ?®¬?®¤cYa- ??c ?i (_), Ya«? ce Y ce!YaYaY ®?ae?i-u- (GenerateUnderbars...Off) c ¤? «®F®c®¬ ?®«Y Options \! Compiler \! Code Generation). ˜  aaa.32 ®a?F? «  a aa? § ®, ? ? ?a?®«i§®c ai extern,ca® ?®§c®«iYa aae« aiai   ?¬Y  ‘ ?§ ?a®Fa ¬¬e   C+ +. pascal ‚ ˜ a? «Y F«®! «ieY ?¤Ya?ae?? a®ae Y a®aa iiaai c ac®Y¬ ?aa®¤®¬ c?¤Y ? Y ?¬Yia ?Yace¬ a?¬c®«®¬ § ? ?®¤cYa- ??c ?i. Turbo C++ ?®§c®«iia ®!eic«iai «i!eY ?¤Ya?ae?? a®ae ? ? ?¬Yie?Y a?? pascal; a®F¤  a ?®©?¤Ya?ae?? a®a ?aY®!a §®- cec Yaai ? cYaaY¬a aYF?aaaa, ? Y¬a Y?aY¤eYaacaYa § ? ?®¤- cYa??c ?i. (…a«? ?¤Ya?ae?? a®a ic«iYaai aea?ae?Y©,a® ca® a ?¦Y c«?iYa   ?a?®«i§aY¬ai ?®a«Y¤®c aY«i®aai ?YaY¤ c? ? - a ¬Yaa®c;?®¤a®!®aa? a¬.   aaa. 51 ®a?F? « , "?®¤?ae?? a®ae a??  aea?ae??".) ??ae?i ?®¬??«ia®a  -p (Calling Convention...Pascal c ¤?-  «®F®c®¬ ?®«Y Options \! Compiler \!Code Generation) ce§ec - Ya ®!a !®a?a aea?ae?© (? a? § aY«Y©   ia? aea?ae??) ? ? Ya«? !e ®? ?¬Y«? a?? pascal. ?®¤?ae?? a®a pascal a?Yae?ae?cY ¤«i Turbo C++; ® ?aY¤-  § cY ¤«i aea?ae?© (? a? § aY«Y© aea?ae?©), ?a?®«i§aie?a ?®a«Y¤®c aY«i®aai ?YaY¤ c? ? a ¬Yaa®c ˜ a? «i. ?a®¬Y a®F®, aea?ae??, ®!eic«YeY a a??®¬ pascal, ¬®Faa aY¬ Y ¬YYY ce- §ec aiai ?§ ?®¤?a®Fa ¬¬ ‘, Ya«? ?®a«Y¤?¬ ?§cYaa®, ca® ¤ -  i aea?ae?i ?¬YYa a?? pascal. pascal putnums(int i, int j, int k) (* printf("And the answers are: %d, %d, and %j\n",i,j,k); *) ”a?ae?? a??  pascal Y¬®Faa ?a??¬ ai ?YaY¬Y®Y c?a«®  aFa¬Ya®c, c ®a«?c?Y ®a a ??a aea?ae?©, ? ? printf. ˜®ia®¬a c ®?aY¤Y«Y?? aea?ae?? a??  pascal ?a?®«i§®c ai ¬®F®a®c?Y (...) Y«i§i. cdecl ˜a®Fa ¬¬  main ¤®«¦  !eai ®!eic«Y  ? ? cdecl, ?®a- ?®«i?a § Faa§®ce© ?®¤ ‘ caYF¤  ?ea Yaai ce§c ai F« cai ?a®aeY¤aaa (main) ?® a®F« eY?i¬ ‘. ˜®a«Y ?®¬??«iae?? ?a®Fa ¬¬e a ®?ae?Y© -pc ¬ ¬®¦Ya ?® ¤®- !?aiai,ca®!e Y?®a®aeY ?¤Ya?ae?? a®ae a®aa ?«? aYF?aaa, c ?®a®a®¬ ®? !e«? ?Yac® c «i®  !a e, ? cY¤ae?© § ? ?®¤- cYa??c ?i, ®a®!Y® Ya«? ia® ?¤Ya?ae?? a®ae ‘ ?§ ¤aaF®F® ae ©« . ˜a® ¬®¦® a¤Y« ai, ®!eic?c ia??¤Ya?ae?? a®ae? ? cdecl. (˜a® a ?¦Y c«?iYa   ?YaY¤ ca ? a ¬Yaa®c aea?ae?i¬). ? ? ? pascal, ¬®¤?ae?? a®a cdecl a?Yae?ae?cY ¤«i Turbo C+ +. ? ?a?®«i§aYaai a aea?ae?i¬? ? a? § aY«i¬? aea?ae?©. ˜a®a- ¬®¤?ae?? a®a ?YaY®?aY¤Y«iYa ¤?aY?a?ca ?®¬??«ia®a  -p ? ?®§c®- «iYa ce§ec ai a ?ai aea?ae?i ? ? ?a c?«iai aea?ae?i ‘. ˜ ?a?- ¬Ya, Ya«? ce ?®¬??«?aaYaY ?aY¤e¤aeai ?a®Fa ¬¬aa - 51 - aaa ®c«Y®© ®?ae?Y© -p, ® ¦Y« YaY ?a?®«i§®c ai printf, a® a¦® a¤Y« ai a«Y¤aieYY: extern cdecl printf(); putnums(int i, int j, int k); cdecl main() (* putnums(1,4,9); *) putnums(int i, int j, int k) (* printf("And the answers are: %d, %d, and %j\n",i,j,k); *) ˜a? ?®¬??«iae?? a ?®© ?a®Fa ¬¬e a ®?ae?Y© -p caY aea?ae?? ?§ !?!«?®aY?? ?a?®«iieY© a?aaY¬e ¤®«¦e ?¬Yai ®!eic«Y?Y cdecl. …a«? ce ?®a¬®aa?aY ae ©«e § F®«®c?  (a ??Y ? ? stdio.h), ce ac?¤?aY, ca® a acYa®¬ ia®F® ? ¦¤ i aea?ae?i ®?- aY¤Y«Y  a ¬ ? ? cdecl. ?®¤?ae?? a®ae a? § aY«Y© Turbo C++ ?¬YYa c®aY¬i ¬®¤?ae?? a®a®c, c«?iie?a   ®?Y- a ae?i ®!a eY?i ?®aae«?Y, a® Yaai   ¬®¤?ae?? ae?i a? § aY«Y© c ¤ eY. ˜a? ¬®¤?ae?? a®ae: near, far, huge, _cs, _ds, _es, _seg ? _ss. ‘ ?®§c®«iYa ce?®«iai ?®¬??«iae?i a ?a?®«i§®c ?Y¬ ®¤®© ?§ Ya?®«i??a ¬®¤Y«Y© ? ¬ia?. ?a?®«i§aY¬ i c ¬? ¬®¤Y«i ®?aY- ¤Y«iYa (?®¬?¬® caYF® ?a®cYF®) caaaY?© ae®a¬ a a? § aY«Y©. ˜ ?a?¬Ya, ?a? ?a?®«i§®c ??¬ «®© ¤ ea small (tiny, small, medium)caY a? § aY«? ¤ ea a®¤Ya¦ a 16-!?a®c®Y a¬YeY?Y aY- F?aaa  aYF¬Ya  ¤ ea (DS). ˜a? ?a?®«i§®c ?? !®«ie®© ¬®¤Y- «? ¤ ea (compact, large, huge)caY a? § aY«? ¤ ea ?¬Yia ¤«?a 32 !?a  ? a®¤Ya¦ a ? ?  ¤aYa aYF¬Ya , a ? ? a¬YeY?Y. ?®F¤ , ?a?®«i§ai ®¤? a §¬Ya ¬®¤Y«? ¤ ea, c ¬ ¬®¦Ya ?® ¤®!?aiai®!eic?ai a? § aY«i, a §¬Ya ?«? ae®a¬ a ?®a®a®F® ®a«?cY ®a aY?aeYF®?® a¬®«c ?i.˜a® ¤Y« Yaaia ?®¬®eii ¬®¤?- ae?? a®a®c a? § aY«Y©. “F«a!«Y®Y a aa¬®aaY?Y a? § aY«Y© near, far ? huge a¬.   aaa. 192 ®a?F? «  c F« cY 4,   ®??a ?Y ®a¬ «?§®- c ea a? § aY«Y© a¬.   aaa. 193 ®a?F? « . ?a®¬Y a®F®, a¬.   aaa. 199 ®a?F? «  ®!aa¦¤Y?Y _cs, _ds, _es, _seg ? _ss. ?®¤?ae?? a®ae a??  aea?ae?? ?®¤?ae?? a®ae near, far ? huge ¬®Faa a ?¦Y ?a?®«i§®c ai- ai? ? ¬®¤?ae?? a®ae a??  aea?ae??; a.Y., ®? ¬®Faa ¬®¤?ae?ae?a®- c ai, ?®¬?¬® a? § aY«Y© ¤ ea, aea?ae?? ? a? § aY«? aea?ae?©. ?a®¬Y a®F®,¤«i ¬®¤?ae?? ae?? aea?ae?© ¬®Faa a«a¦?ai ¬®¤?ae?? a®- ae _export, _loadds ? _saveregs. ?®¤?ae?? a®ae aea?ae?© near, far ? huge ¬®Faa ?®¬!??a®- c aiai a ¬®¤?ae?? a®a ¬? cdecl ?«? pascal, ® Y a interrupt. ”a?ae?? a??  huge ?®«Y§e ¤«i ?aYaaeY©a  a ?®¤ ¬?   i§e?Y  aaY¬!«Ya , Y ?a?®«i§aie?¬? a ?®Y ¦Y,? ? cTurbo ‘++, a a?aY¤Y«Y?Y ? ¬ia?. ”a?ae??,Y ?¬Yie?Y ¬®¤?ae?? a®a  interrupt, ¬®Faa !eai ®!eic«Ye ? ? near,far ?«? hugea aY¬, ca®!e ?YaY®?aY¤Y«?ai aaa ®c?? aY?aeY© ¬®¤Y«? ? ¬ia? ?® a¬®«c ?i. ”a?ae?i near ?a?®«i§aYa !«?¦?Y (near) ce§®ce; aea?- ae?ifar ?«? huge ?a?®«i§aYa ¤ «i?Y (far) ?®¬ ¤e ce§®c . - 52 - ‚ a«ac Y ¬®¤Y«Y© ? ¬ia? tiny, small ? compact aea?ae?i, F¤Y ia® Y !e«® § ¤ ® ic®, ?¬YYa ?® a¬®«c ?i a?? near. ‚ ¬®¤Y«ia medium ? large ?® a¬®«c ?i aea?ae?i ?¬YYa a?? far. ‚ ¬®¤Y«? ? ¬ia? huge ?® a¬®«c ?i ?a?®«i§aYaai a?? huge. ”a?ae?i huge   «®F?c  aea?ae?? far, §  ?a?«icY?Y¬ a®- F®, ca® ?a? ca®¤Y caea?ae?i huge aYF?aaaDS aaa  c«?c Yaai    ¤aYa aYF¬Ya  ¤ ea ?aa®¤®F® ¬®¤a«i, ®¤«i aea?ae?? far ®aa Yaai Yaaa ®c«Ye¬. ?®¤?ae?? a®a _export «Y?a?cYa??   «?§?aaYaai, ® ?F®- a?aaYaai. ? ®!Ya?Yc?c Ya a®c¬Yaa?¬®aai a ?aa®¤e¬? ¬®¤a«i- ¬?,  ??a e¬? ¤«i OS/2. „«i ?a®Fa ¬¬ c DOS ¬®¤?ae?? a®a _export ?? ?®F® § cY?i Y ?¬YYa. ?®¤?ae?? a®a _loadds a? §ec Ya, ca® aea?ae?i ¤®«¦  aaa -  c«?c aiaYF?aaa DS   «®F?c® a®¬a, ? ? ia® ¤Y« Ya aea?ae?i huge, ® Y ?®¤a §a¬Yc Ya ce§®c®c near ?«? far. ’ ??¬ ®!a - §®¬, _loadds far i?c?c «Ya® ®!eic«Y?i huge. ?®¤?ae?? a®a _saveregs§ aa c«iYa aea?ae?i a®aa ?aicaY § cY?i aYF?aaa®c ? § aY¬ c®aaa ®c?ai ?a ?YaY¤ c®§ca - a®¬(§  ?a?«icY?Y¬ icea § cY?© c®§ca a , ?YaY¤ c Y¬ea c a ??a aYF?aaa a AX ?«? DX.) ?®¤?ae?? a®ae _loadds ?_saveregs ?®«Y§e ?a?  ??a ?? ?®¤?a®Fa ¬¬ ?aYaaeY©a  ?¦YF® aa®ci, ? ?  ?a?¬Ya, ?®¤?- a®Fa ¬¬e ?®¤¤Ya¦?? ¬ee?. ‘«®¦eY ®!eic«Y?i ? ¤Y?« a a®ae ‘?a ?a?a ¤Y?« a a®a  a¬.   aaa.35 ®a?F? « .??aY¤Y«Y- ?Y c?«ic Ya c aY!i ¤Y?« a a®ae ?¤Ya?ae?? a®a®c ? aea?ae?©. ˜a®aaeY®!eic«Y?i a®¤Ya¦ a a??a®? a §¤Y«Yea § ?iae¬? ?¤Ya?ae?? a®a®c, §  ?®a®ae¬? a«Y¤aia®?ae?® «ieY a?Yae?ae?? - a®ae ?« aa  ? ¬ia?, a?Yae?ae?? a®ae a??  ? ?a®c?Y ¬®¤?ae?? a®- ae. ‘«®¦®Y ®!eic«Y?Y ?a?®«i§aYa a §¤Y«Ye© § ?iae¬? a??- a®? ¤Y?« a a®a®c,§  ?®a®ae¬? a«Y¤aia a §«?ceY a?Yae?ae?? a®ae ? ¬®¤?ae?? a®ae. ‚ ? ¦¤®¬ ¤Y?« a a®aY a®¤Ya¦?aaia®c® ®¤? ?¤Ya?ae?? a®a,   ?¬Y® ®!eic«iY¬e© ?¬ ?¤Ya?ae?? a®a. ? ¦¤e© ?§ ¤Y?« a a®a®cc a??a?Y aci§  acY¤ae?¬ ?« aa®¬ ? ¬ia? ? a?Yae?ae?? a®a®¬ a?? . ”®a¬ a ¤Y?« a a®a  a? §ec Ya   a®, ? ??¬ ®!a §®¬ ®!e- ic«Y®Y ?¬i-¤Y?« a a®a  ¤®«¦® ?aYa?aYa?a®c aiai ?a? ?a- ?®«i§®c ?? c cea ¦Y?ia. …a«? type ia® «i!®© a??,   a?Yae?- ae?? a®a-?« aa -? ¬ia? ia® «i!®© a?Yae?ae?? a®a ?« aa  ? ¬ia?, a® ®!eic«Y?Y a?Yae?ae?? a®a-?« aa -? ¬ia?type D1, D2; a? §ec Ya, ca® ? ¦¤®Y ca®¦¤Y?Y D1 ?«? D2 c cea ¦Y?Y !a¤Ya a aa¬ aa?c aiai ? ? ®!eY?a a??  "type" ? a § ¤ e¬ "?« aa®¬-? ¬ia?". ’?? ?¬Y?-¤Y?« a a®a , ca®¤ieYF® c ¤Y?« - a a®a, ¤®«¦® !eai Y?®a®a®© aea §®©, a®¤Ya¦ eY© type,  ?a?- ¬Ya "type", "pointer to type", "array of type", "function returning type" ?«? "pointer to function returning type", ? a.¤. ˜ ?a?¬Ya, c ®!eic«Y?ia int n, nao[], naf[3], *pn, *apr[], (*pan)[], &nr=n - 53 - int f(void), *frp(void), (*pfn)(void); ? ¦¤e© ?§ ¤Y?« a a®a®c ¬®F !e !eai ?a?®«i§®c  c ? - cYaacY § cY?i ?YaY¬Y®© (?a c®© c aa?) (?«?, c®§¬®¦®, c Y?®a®aea a«ac ia c ? cYaacY ?¬YaieYF® cea ¦Y?i («Yc®© c aa?) ) c cea ¦Y?ia, F¤Y ¤®?aaa?¬ ®¤? ®!eY?a int. ’??e caaa®Yea ?¤Ya?ae?? a®a®c !Yaaaai ?§ ?a ¤Y?« a a®a®c a«Y¤a- ie?¬ ®!a §®¬: ‘«®¦eY ®!eic«Y?i ’ !«?ae  1.17 ------------------------------------------------------------ ‘?a ?a?a ˜®¤a §a¬Yc Y¬e© a?? ?¬Y? ˜a?¬Ya ------------------------------------------------------------ type ?¬i; type int count; type ?¬i[] (®a?aeae©) ¬ aa?c array of type int count[1]; type ?¬i[3]; ”??a?a®c e© ¬ aa?c ?§ aaYa int count[3]; i«Y¬Ya®c a??  type (name[0],name[1],name[3]) type *?¬i; “? § aY«i   type int *count; type *?¬i[]; (®a?aeae©) ¬ aa?c a? § aY«Y© int *count[]; type *(?¬i[]) ’® ¦Y a ¬®Y int *(count[]); type (*?¬i)[]; “? § aY«i   (®a?aeae©) ¬ aa?c int (*count)[]; a??  type type &?¬i; ‘ae«?    a?? type (a®«i?® ‘++) int &count; type ?¬i(); ”a?ae?i, c®§ca e ie i a?? type int count(); type *?¬i(); ”a?ae?i, c®§ca e ie i a? § aY«i int *count();   a?? type type *(?¬i()); ’® ¦Y a ¬®Y int *(count()); type (*?¬i)(); “? § aY«i   aea?ae?i, c®§ca e ieai int (*count)(); a?? type ------------------------------------------------------------ ?a¬Ya?¬ Y®!a®¤?¬®aai ?aaF«ea a?®!®? c (*?¬i)[] ? (*?¬i)(), ?®a?®«i?a ?a?®a?aYa ¤Y?« a a®a  ¬ aa?c  [] ? ¤Y?- « a a®a  aea?ae?? () ceeY, cY¬ ¤Y?« a a®a  a? § aY«i *. ?aaF- «eY a?®!?? c *(?¬i[]) ®?ae?® «ie. “? § aY«? ?!aa¦¤Y?Y a®§¤ ?i aae«®? ? ®!a eY?i ?® aae«? ¬ (a - §e¬Y®c ?i) a¬.   aaa.80 ®a?F? « . “? § aY«? ¤Y«iaai   ¤cY ®a®ceY ? aYF®a??: a? § aY«? ®!eY?a®c ? a? § aY«? aea?ae?©. “? § aY«? ®!®?aa??®c ?aY¤aa c- «iia a®!®© a?Yae? «ieY ®!eY?ae, aa ie?Y  ¤aYa  ? ¬ia?. „c  ia??« aa a? § aY«Y© ?¬Yia ®a«?ceY ¤aaF ®a ¤aaF  ac®©aac ,  § cY?i ? ?a c?«  ¬ ??a«?a®c ?i, a®ai ? aY ? ¤aaF?Y a §¤Y«iia ¬Y¦¤a a®!®©®?aY¤Y«YeY ®?Ya ae??Turbo C++. ‚®®!eY F®c®ai, a? § aY«? aea?ae?© ?a?®«i§aiaai ¤«i ¤®aaa?  ? aea?ae?i¬ ? ¤«i ?YaY¤ c?®¤?a aea?ae?©¤aaF?¬ c ? cYaacY aFa- ¬Ya®c; ce?®«Y?Y  a?ae¬Ya?cYa??a ®?Ya ae?©a a? § aY«i¬?aea?- ae?© Y ¤®?aa? Yaai. ?  ?a®a?c, a? § aY«?®!eY?a®c ?a? a? ?- a®c ?? ¬ aa?c®c ?«? !®«YY a«®¦ea aaaa?aaa ? ¬ia? aYFa«ia® ??aY¬Ya?aaiaai ? ¤Y?aY¬Ya?aaiaai. •®ai a? § aY«? a®¤Ya¦ a c?a«  a!®«ie?aac®¬ a a ?aYa?a- a?? a?? unsigned int, ®? ?¬Yia ac®? a®!aacYeY ?a c?«  ? ®Fa ?cY?i   ?a?ac®Y?i, ?aY®!a §®c ?i ?ce?®«Y?Y a ?¬?  a?ae¬Ya?cYa??a ¤Y©aac?©. ˜a?¬Yae c a«Y¤aie?a Ya?®«i??a a §- ¤Y« a ?««iaaa?aaia ia? ?a c?«  ? ®Fa ?cY?i. “? § aY«? ®!eY?a®c - 54 - "“? § aY«i   ®!eY?a a??  type" a®¤Ya¦?a  ¤aYa (a® Yaai a? §ec Ya) ®!eY?a  a a??®¬ type. ˜®a?®«i?a a? § aY«i a ¬ ?® aY!Y ic«iYaai ®!eY?a®¬, a® ce ¬®¦YaY aaa ®c?ai a? § aY«i   a? § aY«i (? a.¤.). ‚ c?a«® ?a®c?a ®!eY?a®c,  ?®a®aeY ®!ec- ® aaa  c«?c Yaai a? § aY«i, ca®¤ia ¬ aa?ce, aaaa?aaae,®!e- Y¤?Y?i ? ?« aae. ˜ §¬Ya a? § aY«Y© ®!eY?a®c § c?a?a ®!ec® ®a ¬®¤Y«? ? - ¬ia?, a §¬Ya  ? a a?®«®¦Y?i aYF¬Ya®c ¤ ea,   a ?¦Y, c®§¬®¦®, ®a ®?ae?® «iea ¬®¤?ae?? a®a®c a? § aY«Y© (ia®a c®?a®a a aa¬ aa?c Yaai   aaa.51 ®a?F? « ). “? § aY«? aea?ae?© “? § aY«i aea?ae?? «aceY caYF® a aa¬ aa?c ai ? ?  ¤aYa, ®!ec® c ?®¤®c®¬ aYF¬YaY, F¤Y a a?®« F Yaai ce?®«iY¬e© ?®¤ aea?ae??; ia®  ¤aYa, ?® ?®a®a®¬a ?YaY¤ Yaai a?a c«Y?Y ?a? ce§®cY aea?ae??. ˜ §¬Yae ? a a?®«®¦Y?Y ?®¤®cea aYF¬Ya®c ?a®Fa ¬¬e ®?aY¤Y«iYaai ¤Y©aacaieY© ¬®¤Y«ii ? ¬ia?, ? c ac®i ®cYaY¤i ®?aY¤Y«iia a §¬Ya a? § aY«Y© aea?ae?©, ?®a®aeY a¦e ¤«i ce§®c  aea?ae?©. “? § aY«i aea?ae?? ?¬YYa a?? "a? § aY«i aea?ae??, c®§ca - e ieY© a?? type", F¤Y type Yaai a?? c®§ca e Y¬ea aea?ae?Y© ¤ ea. ‚ ‘++, F¤Y ?®aa®«i a??®c ¤ ea !®«YYaaa®F?©, a? § - aY«i aea?ae?? ?¬YYa a?? "a? § aY«i aea?ae?? ?a??¬ ieY©  Faa- ¬Yae a??  type ? c®§ca e ieY© a?? type". „Y©aac?aY«i®, c ‘ aea?ae?i, ®?aY¤Y«Y i a a?? ¬?  aFa¬Ya®c, a ?¦Y !a¤Ya ?¬Yai ¤ e©, !®«YY a§??© a??. ˜ ?a?¬Ya, void (*func)(); ‚ ‘ ia® !a¤Ya a? § aY«i aea?ae??, Y c®§ca e ieY© ?? - ??a § cY?©. ‚ ‘++ ia® a? § aY«i aea?ae??, Y ?a??¬ ieY© ?? ??a  aFa¬Ya®c ? Y c®§ca e ieY© ?? ??a § cY?©. ‚ ?a?¬YaY void(*func)(int); *func ia® a? § aY«i aea?ae??, ?a??¬ ieY©  aFa¬Ya int ? Y c®§ca e ieY© ?? ??a § cY?©. ?!eic«Y?i a? § aY«Y© ˜®¤a®!®Y ®??a ?Y a??  void a¬.   aaa.39 ®a?F? « . ?!eic«Y?Y a? § aY«i caYF¤  ¤®«¦® aaa  c«?c ai YF®   Y?®a®ae© ?®?aYae© a??, ¤ ¦Y Ya«? ia®a a?? void (ca® ae ?- a?cYa??®§ c Ya a? § aY«i   «i!®© a??). ?¤ ?®, a¦Y ?®a«Y ®!eic«Y?i a? § aY«i ®!ec® ¬®¦Ya !eai ?YaY § cY   ®!e- Y?a ¤aaF®F® a?? . Turbo C++ ?®§c®«iYa ?YaY § c ai a? § aY- «? !Y§ ?a?cY¤Y?i c a®®acYaaac?Y a?? , ® ?®¬??«ia®a ce¤ aa ?a? ia®¬ ?aY¤a?aY¦¤Y?Y, Ya«? a®«i?® ?Yac® c «i® a? § aY«i Y !e« ®!eic«Y a a??®¬ void. ‚ ‘ (® Y c ‘++) ce ¬®¦YaY  § c?ai a? § aY«i void*   a? § aY«i, Y ?¬Yie?© a?? void*. …a«? type Yaai «i!®© ?aY¤®?aY¤Y«Ye© ?«? ®?aY¤Y«Ye© ?®«i§®c aY«Y¬ a??, c?«ic i void, a® ®!eic«Y?Y type *ptr;/* ?? a® - Y??ae? «?§?a®c e© a? § aY«i */ - 55 - ®!eic?a ptr ? ? "a? § aY«i   a?? type". ? ®!eic«Y®¬a a ??¬ ®!a §®¬®!eY?aa ptr ?a?¬Y?¬e caY ?a c?« , aci§ eY a ?®aY?aa®¬, ?a®¤®«¦?aY«i®aaii ? c?¤?¬®aaii. “? § aY«i a® § cY?Y¬ null ia®  ¤aYa, F a a?a®c ® ®a«?ce© ®a «i!®F® ¤®?aaa?¬®F® a? § aY«i, ?a?®«i§aY¬®F® c ?a®Fa ¬¬Y. ˜a?ac®Y?Y a? § aY«i aeY«®© ?®aa ae 0 ?a?ac ?c - Ya a? § aY«i § cY?Y null. “? § aY«i a??  "a? § aY«i   void" Y a«Y¤aYa ?aa ai a a«Yce¬ (null) a? § aY«Y¬. ?!eic«Y?Y void *vptr; ®!eic«iYa, ca® vptr - ia® a®¤®c®© a? § aY«i, ?®a®a®¬a- ¬®¦Ya !eai ?a?ac®Y® «i!®Y § cY?Y "a? § aY«i   a?? type" !Y§ ce¤ c? ?®¬??«ia®a®¬ a®®!eY?©. ˜a?ac®Y?i !Y§ ?a c?«i®- F® ?a?cY¤Y?i a??®c ¬Y¦¤a "a? § aY«Y¬   a?? type1" ? "a? - § aY«Y¬   a?? type2", F¤Y type1 ? type2 ia® a §«?ceY a??e, ¬®¦Ya ce§c ai ?aY¤a?aY¦¤Y?Y ?«? ®e?!?a ?®¬??«ia®a . …a«? type1 ia® aea?ae?i,   type2 Ya (?«?  ®!®a®a), ?a?ac ?c ?i a? § aY«Y© Y¤®?aaa?¬e. …a«? type1 ia® a? § aY«i   void, ?a?cY¤Y?i a??®c Y aaY!aYaai. …a«? type2 ia® a? § aY«i   a?? void, a® c ‘ ?a?cY¤Y?Y Y a¦®. ?Fa ?cY?i ?a?ac®Y?i a ?¦Y aaeYaacaia ®a®a?aY«i® a? § aY«Y© a §ea a §¬Ya®c (near, far ? huge). ?®¦® ?a?ac®- ?ai ¬Yie?© a? § aY«i !®«ieY¬a, Y ce§c c ®e?!??, ® Y«i§i ce?®«?ai ®!a aai ®?Ya ae?i, Y ce?®«?c icai ®?Ya ae?i ?a?- cY¤Y?i. ˜ ?a?¬Ya, char near *ncp; char far *fcp; char huge *hcp; fcp = ncp; // ¤®?aaa?¬® hcp = fcp; // ¤®?aaa?¬® fcp = hcp; // Y¤®?aaa?¬® scp = fcp; // Y¤®?aaa?¬® scp = (char nesr*)fcp; // aY?Yai ¤®?aaa?¬® “? § aY«? ? ?®aa ae “? § aY«? ?«? a? §ec Y¬eY ?¬? ®!eY?ae ¬®Faa !eai ®!eic- «Ye a ¬®¤?ae?? a®a®¬ const. ˜a?ac®Y?Y ®!eY?aa, ®!eic«Y®- ¬a? ? const, Y ¤®?aa? Yaai. ’ ?¦Y Y ¤®?aa? Yaai a®§¤ ?Y a? § aY«i, ?®a®ae© ¬®¦Ya  aae?ai § ?aYeY?Y   ¬®¤?ae?? ae?i ®!eY?a  a??  ?®aa ae. ˜ aa¬®aa?¬ a«Y¤aie?Y ?a?¬Yae: int i; // i ia® aeY«®Y; int * pi; // pi ia® a? § aY«i   i // (Y??ae? «?§?a®c e©) int * const cp = &i; // cp ia® a? § aY«i-?®aa a    int // const int ci = 7; // ci ia® ?®aa a  int const int * pci; // pci ia® a? § aY«i  ?®aa aa ci const int * const cpc = &ci; // cpc ia® a? § aY«i-?®a- a a  //   ?®aa aa int ‘«Y¤aie?Y ?a?ac®Y?i ¤®?aaa?¬e: i = ci; // ˜a?ac®?ai const int ?YaY¬Y®© int *cp = ci; // ˜a?ac®Y?Y const int ®!eY?aa,   // ?®a®ae© a? §ec Ya // a? § aY«i-?®aa a  ++pci; // ??aY¬Ya a? § aY«i   ?®aa aa pci = cpc; // ˜a?ac®Y?Y ?®aa ae-a? § aY«i-  // ?®aa aa a? § aY«i- -?®aa aa - 56 - ‘«Y¤aie?Y ?a?ac®Y?i Y¤®?aaa?¬e: ci = 0; // ˜a?ac®Y?Y § cY?© ?®aa aY // const int Y¤®?aaa?¬® ci--; // ?§¬YY?Y ?®aa ae Y¤®?aaa?¬® *pci = 3; // ˜a?ac®Y?Y ®!eY?aa,   ?®a®ae© // a? §ec Ya a? § aY«i- -?®aa aa // Y¤®?aaa?¬® cp = &ci; // ˜a?ac®Y?Y ?®aa aY-a? § aY«i, // ¤ ¦Y Ya«? YY § cY?Y Y !a¤Ya // ?§¬YY®, Y¤®?aaa?¬® cpc++; // ?§¬Yiai a? § aY«i-?®aa aa // Y¤®?aaa?¬® pi = pci; // …a«? !e a ?®Y ?a?ac®Y?Y !e«® // a §aYeY®, ce ¬®F«? !e ?a?ac ?c ai // *pci (?®aa aY), ?a?ac ?c i *pi // ca® Y¤®?aaa?¬® ? «®F?ceY ?a c?«  ®a®aiaai ? ? ¬®¤?ae?? a®aa volatile.?a¬Ya?¬, ca® const ? volatile ¬®Faa ?®ic«iaiai c ? cYaacY ¬®¤?ae?? a®a®c ®¤®F® ? a®F® ¦Y ?¤Ya?ae?? a®a . ?a?ae¬Ya?cYa??Y ®?Ya ae?? a a? § aY«i¬? ‚aaaY?Y  a?ae¬Ya?cYa??Y ®?Ya ae?? a a? § aY«i¬?§ c?aia ®a ¤Y©aacaieY© ¬®¤Y«? ? ¬ia? ?  «?c?i ?YaY®?aY¤Y«iie?a ¬®- ¤?ae?? a®a®c a? § aY«i. ˜ §®aai ¬Y¦¤a ¤ca¬i § cY?i¬? a? - § aY«Y© ?¬YYa a¬ea« a®«i?® c a®¬ a«ac Y, Ya«? ®!  ®? a? §e- c ia   ®¤? ¬ aa?c. ?a?ae¬Ya?cYa??Y ®?Ya ae?? a a? § aY«i¬? ®Fa ?cYe a«®¦Y?Y¬, cec?a ?Y¬ ? aa cY?Y¬. ?a?ae¬Ya?cYa??Y ®?Ya ae?? a a? § aY«i¬? ®!eY?a®c a??  "a? § aY«i   a?? type"  ca®¬ - a?cYa?? ac?aec ia a §¬Ya ia®F®a?? , a® Yaai c?a«® ! ©a, Y- ®!a®¤?¬®Y ¤«i aa Y?i c ? ¬ia? ®!eY?a  ¤ ®F® a?? . ˜a? ce?®«Y??  a?ae¬Ya?cYa??a ®?Ya ae?© a a? § aY«i¬? ?aY¤?®« F Yaai, ca® a? § aY«i a? §ec Ya   ¬ aa?c ®!eY?a®c. ’ ??¬ ®!a §®¬, Ya«? a? § aY«i ®!eic«Y ? ? a? § aY«i   type, a® ?a?! c«Y?Y ? Y¬a aeY«®c?a«Y®F® § cY?i ?YaY¬Y- e Ya a? § aY«i   a®®acYaaacaieYY ?®«?cYaac® ®!eY?a®c type. …a«? type ?¬YYa a §¬Ya 10 ! ©a®c, a® ?a?! c«Y?Y aeY«®F® c?a- «  5 ? a? § aY«i ia®F® a??  ?YaY¬Ye Ya a? § aY«i c ? ¬ia?   50 ! ©a. ˜ §®aai ?aY¤aa c«iYa a®!®© c?a«® i«Y¬Ya®c ¬ aa?- c , a §¤Y«iie?a ¤c  § cY?i a? § aY«Y©. ˜ ?a?¬Ya, Ya«? ptr1 a? §ec Ya   aaYa?© i«Y¬Ya ¬ aa?c ,   ptr2   ¤Yaiae©, a® aY§a«ia a®¬ ce?®«Y?i cec?a ?i ptr2 - ptr1 !a¤Ya 7i ?®F¤  a "a? § aY«Y¬   a?? type" ce?®«iYaai ®?Ya ae?i a«®¦Y?i ?«? cec?a ?Y aeY«®F® c?a« , a® aY§a«ia a a ?¦Y !a- ¤Ya "a? § aY«Y¬   a?? type". …ae«? type Yic«iYaai ¬ aa?c®¬, a® ®?Ya ¤ a? § aY«i !a¤Ya a aa¬ aa?c aiai ? ? a? § aY«i   ?Yace© i«Y¬Ya "¬ aa?c  a??  type" ¤«?®© sizeof(type). ?®Yc®, a ?®F® i«Y¬Ya , ? ? "a? § aY«i   a«Y¤aie?© §  ?®a«Y¤?¬ i«Y¬Ya", ®¤ ?® a? § aY«i ¬®¦Ya ?a??¬ ai ia® § cY?Y. …a«? P a? §ec Ya   ?®a«Y¤?© i«Y¬Ya ¬ aa?c , a® § cY?Y P+1 ¤®?aaa?¬®, ® P+2 Y®?aY¤Y«Y®. …a«? P a? §ec - Ya   i«Y¬Ya §  ?®a«Y¤?¬ i«Y¬Ya®¬ ¬ aa?c , a® ¤®?aaa?¬® § cY?Y P-1, ?®F¤  a? § aY«i aaa ®c«Y   ?®a«Y¤?© i«Y- ¬Ya ¬ aa?c . ?¤ ?® aaa ®c?  a? § aY«i   i«Y¬Ya §  ?®a- «Y¤?¬ i«Y¬Ya®¬ ¬ aa?c  cY¤Ya ? Y?aY¤a? §aY¬e¬ aY§a«ia a ¬ a !®ae ?a®Fa ¬¬e. „«i ?ae®a¬ ae??:P+n ¬®¦® ?aY¤aa c?ai aY!Y ? ? ?YaY¬YeY- ?Y a? § aY«i   (n*sizeof(type)) ! ©a c?YaY¤, ?®?  a? § - - 57 - aY«i ®aa Yaai c ¤®?aaa?¬ea Fa ?ae a (Y ¤ «YY ?Yac®F® §  ?®ae®¬ ¬ aa?c  i«Y¬Ya ). ‚ec?a ?Y ¬Y¦¤a¤ca¬i a? § aY«i¬?   i«Y¬Yae ®¤®F® ? a®F® ¦Y ¬ aa?c  ¤ Ya ?aYFa «i®Y § cY?Y a??  ptrdiff_t, ®?aY¤Y«Y®Y c stddef.h (signed long ¤«i a? § aY«Y© huge ? far; signed int¤«i caYa ?a®c?a). „ ®Y § cY?Y ?aY¤aa c«i- Ya a®!®© a §®aai ¬Y¦¤a ?¤Y?a ¬? ¤caa a? § ea i«Y¬Ya®c, ?a? aa«®c?? ca®¦¤Y?i c ¤? ? §®Y ptrdiff_t. ‚ cea ¦Y?? P1P2, F¤Y P1 ? P2 ia® a? § aY«?   a?? type (?«? a? § aY«?   ?c «?ae?ae?a®c e© a??), P1 ? P2 ¤®«¦e a? §ec ai   aa- eYaacaie?Y i«Y¬Yae ?«?   a«Y¤aie?© §  ?®a«Y¤?¬ i«Y¬Ya. Ya«? P1 a? §ec Ya   i-© i«Y¬Ya,   P2 a? §ec Ya   j-© i«Y- ¬Ya, a® P1-P2 ?¬YYa § cY?Y (i-j). ˜aY®!a §®c ?i a? § aY«Y© “? § aY«? ®¤®F® a??  ¬®Faa !eai?aY®!a §®c e c a? § - aY«? ¤aaF®F® a??  ?a? ?®¬®e? a«Y¤aieYF® ¬Ya ?§¬  ?a?cY¤Y?i a??®c: char *str int *ip str = (char*)ip; ‚ !®«YY ®!eY¬ c?¤Y, ?a?cY¤Y?Y (type*) ?aY®!a §aYa a? - § aY«i c a?? "a? § aY«i   a?? type". ?!eic«Y?i aae«®? c ‘++ ‘ae«®ceY a??e ‘++ aYa® aci§ e a a?? ¬? a? § aY«Y©. ‘ae«®ceY a??e a®§¤ ia  «? ae ®!eY?a®c ? ?®§c®«iia ?YaY¤ - c ai aea?ae?i¬  aFa¬Yae ?® aae«?Y. ’a ¤?ae?®® ?YaY¤ c   a- Fa¬Ya®c c ‘ ce?®«iYaai a®«i?® ?® § cY?i. ‚ ‘++ ?YaY¤ - c ai  aFa¬Yae ¬®¦® ? ? ?® § cY?i, a ? ? ?® aae«?Y. ˜®«ai ?ae®a¬ ae?i a¬. c a §¤Y«Y "‘ae«??"   aaa.98 ®a?F? - « . ? aa?ce „ e© a §¤Y«  c? Ya c aai F« ce, ?®acieYai a aa- ¬®aaY?i Fa ¬¬ a??? aaaa?aaae aea § i§e? ; ®??a ?Y a §«?c?© ¬Y¦¤a Fa ¬¬ a?cYa??¬? ?a c?« ¬? «Y?a??? ? aaaa?aaae aea § i§e?  a¬.   aaa.4. ?!eic«Y?Y type ¤Y?« a a®a []

®!eic«iYa ¬ a?c, a®aa®ie?© ?§ i«Y¬Ya®c a??  type. ? a-
a?c c ‘ a®aa®?a ?§ Y?aYaec®© ®!« aa? ? ¬ia?, ?® a §¬Yaa
?®§c®«iieY© c a®c®aa? a §¬Yaa?ai caY YF® i«Y¬Yae.

…a«? c ¤Y?« a a®aY ¬ aa?c  § ¤ ® cea ¦Y?Y, a® ?a?
YF®cec?a«Y?? ¤®«¦  ?®«ac aiai ?®«®¦?aY«i i aeY«®c?a«Y i
?®aa a . ˜®«ac?ceYYai § cY?Y ?aY¤aa c«iYa a®!®© c?a«®
i«Y¬Ya®c ¬ aa?c . ? ¦¤e© ?§ i«Y¬Ya®c¬ aa?c  a¬YaaYaai ®a
0 ¤® c?a«  i«Y¬Ya®c ¬ aa?c , ¬?aa Y¤??ae .

?®F®¬YaeY ¬ aa?ce a®§¤ iaai ?aaY¬ ®!eic«Y?i ¬ aa?c®c
?§ i«Y¬Ya®c a??  ¬ aa?c. ’ ??¬ ®!a §®¬, ¤ca¬Yae© ¬ aa?c ?§
?ia? aaa®? ? aY¬? aa®«!ae®c a ?¬YY¬ alpha ®!eic«iYaai a«Y¤a-
ie?¬ ®!a §®¬:

type alpha [5] [7];

‚ ®?aY¤Y«Y®¬ ?®aY?aaY ?Yace© ¤Y?« a a®a ¬ aa?c  ?§
Ya?®«i??a ¬®¦Ya Y ?¬Yai cea ¦Y?i c ?c ¤a aea a?®!? a.

– 58 –
’ ?®© ¬ aa?c ?¬YYa Y®?aY¤Y«Ye© a §¬Ya. ?®aY?aa®¬, F¤Y
¤®?aaa?¬® a ?®Y ?®«®¦Y?Y, ic«iYaai a®a a«ac ©, ?®F¤ ¤«i aY-
§Yac?a®c ?i ? ¬ia? a §¬Ya ¬ aa?c  Y aaY!aYaai. ˜ ?a?¬Ya,
¤«i ®!eic«Y?Y ®!eY?a  a??  ¬ aa?c  extern a®ce© a §¬Ya
¬ aa?c  Y aaY!aYaai; Y aaY!aYaai ® ? ?a? ?YaY¤ cY aea?ae??
? a ¬Yaa  a??  ¬ aa?c . ˜a¤ac? a?Yae? «ie¬ a ae?aY?Y¬ ANSI
C, Turbo C a ?¦Y ?®§c®«iYa ®!eic«iaic ? cYaacY ?®a«Y¤YF®
i«Y¬Ya  aaaa?aaae ¬ aa?c Y®?aY¤Y«Y®F® a §¬Ya . ’ ?®©
¬ aa?c Y acY«?c?c Ya a §¬Ya  aaaa?aaae,   ¤«i a®F®, ca®!e
®!Ya?Yc?ai ?a c?«i®Y cea c?c ?Y aaaa?aaae, YY ¬®¦® a?Y-
ae? «i® ¤®?®«?ai a?¬c®« ¬?-§ ?®«?aY«i¬?. ’ ??Y aaaa?aaae
®!ec® ?a?®«i§aiaai ?a? ¤? ¬?cYa?®¬ a a?aY¤Y«Y?? ? ¬ia?,
?®F¤  ¤«i ?a c?«i®F® aY§Yac?a®c ?i ®!« aa? ? ¬ia? ? a §¬Y-
aa aaaa?aaae a«Y¤aYa ic® ?a?! c?ai ae ?a?cYa??© a §¬Ya Y®!-
a®¤?¬®F® ¬ aa?c .

‡  ?a?«icY?Y¬ ?a?®«i§®c ?i ¬ aa?c  c ? cYaacY ®?Ya –
¤  ®?Ya ae?? sizeof ?«? &, cea ¦Y?Y a a??®¬ ¬ aa?c 
?aY®!a §aYaai c ?®aa aa-a? § aY«i   ?Yace© i«Y¬Ya ¬ aa?-
c .

”a?ae??

”a?ae?? ?aY¤aa c«iia a®!®© aeYaa «ie© c®?a®a ?a®Fa ¬-
¬?a®c ?i   Turbo C++. ’ ??Y i§e?? ?a®Fa ¬¬?a®c ?i, ? ?
˜ a? «i, ¤Y« ia a §«?c?Y ¬Y¦¤a ?a®aeY¤aa ¬? ? aea?ae?i¬?. ‚
Turbo C++ aea?ae?? ?Fa ia ®!Y a®«?.

?!eic«Y?i ? ®?aY¤Y«Y?i

? ¦¤ i ?a®Fa ¬¬  ¤®«¦  ?¬Yai ®¤a cYeii aea?ae?i
main, a®¤Ya¦ eai a®c?a ca®¤  c ?a®Fa ¬¬a. ?!ec® aea?ae??
®!eic«iiaai? ? ?a®a®a??e c aa ¤ aaea ?«? a®§¤ c Y¬ea ?®«i-
§®c aY«Y¬ ae ©« a § F®«®c? , «?!® c ae ©« a ?a®Fa ¬¬e. ˜®
a¬®«c ?i aea?ae?? ?¬Yia a?? extern, ? ¤®aaa? ? ?¬ c®§¬®¦Y
?§ «i!®F® ae ©«  ?a®Fa ¬¬e. ”a?ae?i ¬®¦Ya !eai ®Fa ?cY 
a?Yae?ae?? a®a®¬ ?« aa  ? ¬ia? static (a¬. aaa. 32 ®a?F? « ).

”a?ae?? ®!eic«iiaai c ?aa®¤ea ae ©« a, «?!® ¤Y« iaai
¤®aaa?e¬? ?a? ?®¬?®®c?Y a ®a?®¬??«?a®c e¬? !?!«?®aY? ¬?.

‚ ‘++ ce ¤®«¦e caYF¤  ?®«i§®c aiai ?a®a®a?? ¬? aea?-
ae??. ?e aY?®¬Y¤aY¬ a ?¦Y caYF¤  ?a?®«i§®c ai ?a ? c ‘.

„  i aea?ae?i ¬®¦Ya !eai ®!eic«Y  c ?a®Fa ¬¬Y Ya-
?®«i?® a §, ?a? aa«®c??, ca® ia? ®!eic«Y?ia®c¬Yaa?¬e. ˜Y®?-
aY¤Y«iie?Y ®!eic«Y?i aea?ae??, ?a?®«i§aie?Y ae®a¬ a ?a®a®a?? 
aea?ae?? ?aY¤®aa c«iia Turbo C++ ¤Ya «iai ?ae®a¬ ae?i ® ? a –
¬Yaa a, ca® ?®§c®«iYa «aceYY a?a c«Y?Y c?a«®¬  aFa¬Ya®c,
?®aa®«Y¬ ?a a??  ? ?aY®!a §®c ?i¬? a??®c.

‡  ?a?«icY?Y¬ ?YaYFaa§?? aea?ae?? c ‘++, ¤®?aaa?¬e¬ ic-
«iYaai a®«i?® ®¤® ®!eic«Y?Y ¤ ®© aea?ae?? c ?a®Fa ¬¬Y.
?!eic«Y?i, Ya«? ®? ?¬Yiaai, ¤®«¦e a®®acYaaac®c ai ®?aY¤Y-
«Y?i aea?ae??. (‘aeYaacYe¬ a §«?c?Y¬ ¬Y¦¤a ®?aY¤Y«Y?Y¬ ?
®!eic«Y?Y¬ ic«iYaai a®, ca® ®?aY¤Y«Y?Y a®¤Ya¦?a a®!aacY®
aY«® aea?ae??.)

?!eic«Y?i ? ?a®a®a??e

‚ ®a?F? «i®¬ aa?«Y ®!eic«Y?© ?Ya?Fi  ? ˜?ac? aea?-
ae?i ¬®F«  !eai «?!® ®!eic«Y  Yic®, ?® YY ce§®ca, «?!® ic-
®:

func()

F¤Y type – ia® ®?ae?® «ie© a?? c®§ca a , ?® a¬®«c ?i

– 59 –
a ce© int. ?®¦® ®!eic?ai aea?ae?i a «i!e¬ a??®¬ c®§ca a ,
§  ?a?«icY?Y¬a??®c ¬ aa?c  ?«? aea?ae??. ’ ?®© ?®¤a®¤ Y
?®§c®«iYa ?®¬??«ia®aa ?®aa®«?a®c ai a®®acYaaac?Y a??  ?«?
?®«?cYaac  ?a?®«i§aY¬ea?a? ce§®cY aea?ae??  aFa¬Ya®c ®!eic-
«Y?i.

˜a  § ¤ c  a?a®e Yaai !« F®¤ ai ccY¤Y?i ?a®a®a?? 
aea?ae?? a® a«Y¤aie?¬ a?a ?a?a®¬ ®!eic«Y?i:

func(a??a®?-¤Y?« a a®a®c-? a ¬Yaa®c)

˜a? ?®¬®e? IDE ?«? ®?ae?? ?®¬??«ia®a  ?®¬ ¤®© aaa®??
¬®¦® a §aYe?ai ce¤ ca a«Y¤aieYF® ?aY¤a?aY¦¤Y?i: “Function
called without a prototype” (“”a?ae?i ce§ec Yaai !Y§ ?a®a®-
a?? “).

„Y?« a a®ae ®?aY¤Y«iia a??e ? ¦¤®F® ? a ¬Yaa  aea?ae??.
?®¬??«ia®a ?a?®«i§aYa iaa ?ae®a¬ ae?i ¤«i ?®aa®«i ¤®aa®cYa-
®aa? ce§®c  aea?ae??. ?®¬??«ia®a a ?¦Y ¬®¦Ya ?a?c®¤?ai  aFa-
¬Yae ? a¦®¬a a??a. ˜aY¤?®«®¦?¬, ca® a c a ?¬YYaai a«Y¤ai-
e?© aea F¬Ya ?®¤ :

long lmax(long v1, long v2); /* ?a®a®a?? */
main()
(*
int limit = 32;
char ch = ‘A’;
long mval;
mval = lmax(limit,ch): /* ce§®c aea?ae?? */

˜®a?®«i?a ¤  i ?a®Fa ¬¬  ?¬YYa ?a®a®a?? aea?ae?? ¤«i
lmax, ¤  i ?a®Fa ¬¬  ?aY®!a §®cec Ya limit ? ch ? a??a
long ?® aa ¤ aae¬ ?a c?« ¬ ?a?ac®Y?i, ?aY¦¤Y cY¬ ?®¬Ya-
a?ai ?a c aaY?¤«i ce§®c  lmax.˜Y§ ?a®a®a??  aea?ae?? limit ?
ch !e«? !e ?®¬YeYe c aaY? ? ? aeY«®Y ? a?¬c®«i®Y § cY?i,
a®®acYaaacY®; c ia®¬ a«ac Y aaY?, ?YaY¤ e© lmax, Y a®-
®acYaaac®c « !e ?® a §¬Yaa ? a®¤Ya¦?¬®¬a a®¬a, ca® ®¦?¤ Ya
  ca®¤Y lmax, ca® ?a?cY«® !e ? c®§??®cY?i ?a®!«Y¬. ?« a-
a?cYa??© aa?«i ®!eic«Y?© Y ?®§c®«iYa ce?®«iai ?®aa®«i
a??  ? c?a«  ? a ¬Yaa®c, ?®ia®¬a ?a?®«i§®c ?Y ?a®a®a??®c
aea?ae?© aaeYaacY® a?a®e Ya ®aa«Y¦?c ?Y?a®Fa ¬¬ea ®e?!®?.

˜a®a®a??e aea?ae?© a ?¦Y a?a®e ia ¤®?a¬Ya?a®c ?Y ?®¤®c
?a®Fa ¬¬e. ˜ ?a?¬Ya, aea?ae?i strcpy ?a??¬ Ya ¤c  ? a ¬Yaa :
?aa®¤ai aaa®?a ? aaa®?a  § cY?i. ‚®?a®a, F¤Y ? ? i ?§
?a? ˜a®a®a?? aea?ae??

char *strcpy(char *dest, char *source);

?a®iaiYa ia®a c®?a®a. …a«? ae ©« § F®«®c?  a®¤Ya¦?a
?a®a®a??e aea?ae?©, ce ¬®¦YaY a a?Yc a ai ia®a ae ©« ? ?®«a-
c?ai !®«ieai c aai ?ae®a¬ ae??, ?®a®a i a¦ , ca®!e  ??a ai
?a®Fa ¬¬a, ?a?®«i§aieai ia? aea?ae??. …a«? c?«ic?ai c ? a –
¬Yaae ?a®a®a??  c e??¤Ya?ae?? a®ae, a® ®? !a¤aa ?a?®«i§®-
c aiai a®«i?® c a®®!eYia ®! ®e?!? a, ? a®«i?®.

„Y?« a a®a aea?ae?? c ?aaF«ea a?®!? a, a®¤Ya¦ e?© Y¤?a-
acY®Y a«®c®void, a? §ec Ya   aea?ae?i, c®®!eY Y
?a??¬ ieai  aFa¬Ya®c:

func(void);

‚ ‘++ func() a ?¦Y ®§ c Ya aea?ae?i, Y ?a??¬ ieai  a-
Fa¬Ya®c.

stdarg.h a®¤Ya¦?a ¬ ?a®ae, ?®a®aeY ¬®¦® ?a?®«i§®c ai c
aea?ae?ia, ®?aY¤Y«iY¬ea ?®«i§®c aY«Y¬, a ?YaY¬Ye¬ c?a«®¬

– 60 –
? a ¬Yaa®c.

˜a®a®a?? aea?ae?? ®!ec® ®!eic«iYa aea?ae?i, ?a??¬ ieai
ae??a?a®c ®Y c?a«® ? a ¬Yaa®c. „«i aea?ae?? ‘, ?a??¬ ieY©
?YaY¬Y®Y c?a«® ? a ¬Yaa®c ( ?a?¬Ya, printf) ?a®a®a??
aea?ae?? ¬®¦Ya § ? c?c aiai ¬®F®a®c?Y¬ (…),  ?a?¬Ya:

f(int *const, long total, …)

‚ a«ac Y ¤ ®© ae®a¬e ?a®a®a??  ae??a?a®c eY ? a ¬Yaae
?a®cYaiiaai c® caY¬i ?®¬??«iae??,   ?YaY¬YeY ? a ¬Yaae ?Y-
aY¤ iaai !Y§ ?®aa®«i a?? .

˜?¦Y ?a?c®¤iaai ?a?¬Yae ¤Y?« a a®a®c aea?ae?© ? ?a®a®a??e:

int f(); /* ‚ ‘ ia® aea?ae?i, c®§ca e e i int, !Y§ ?-
ae®a¬ ae?? ® ? a ¬Yaa a. ˜a® “?« aa?cYa??© aa?«i” ?Ya?Fi  ?
˜?ac? */

int f(); /* ‚ ‘++ ia® aea?ae?i, Y ?a??¬ ie i  aFa¬Ya®c */

int f(void); /* ”a?ae?i, c®§ca e ie i int ? Y ?a??¬ –
ie i ? a ¬Yaa®c */

int p(int,long) /* ”a?ae?i a a??®¬c®§ca a  int,?a??¬ –
ie i ¤c  ? a ¬Yaa , ?Yace© a??  int, ? ca®a®© a??  long */

int pascal q(void); /* aea?ae?i a??  pascal, c®§ca e i-
e i int ? Y ?a??¬ ie i ? a ¬Yaa®c */

char far *s(char *source, int kind); /* ”a?ae?i,
c®§ca e ie i ¤ «i?© a? § aY«i   char ? ?a??¬ ie i ¤c  ? –
a ¬Yaa : ?aYce© – ¤ «i?© a? § aY«i   char,   ca®a®© int */

int printf(char *format,…); /* ”a?ae?i, c®§ca e ie i
int ? ?a??¬ ie i ae??a?a®c e© ? a ¬Yaa a??  a? § aY«i  
char ? «i!®Y c?a«® ¤®?®«?aY«iea ? a ¬Yaa®c Y?§cYaa®F®
a??  */

int (*fp)(int); /* “? § aY«i   aea?ae?i, c®§ca e ieai
int ? ?a??¬ ieai ®¤? ? a ¬Yaa int */

?!eic«Y?i

?!e?© a?a ?a?a ¤«i ®?aY¤Y«Y?© cYe?a aea?ae?© ?a?c®-
¤?aai c a«Y¤aieY© a !«?aeY:

??aY¤Y«Y?i cYe?a aea?ae?© ’ !«?ae  1.18
———————————————————–
ae ©«:
cYeYY-®?aY¤Y«Y?Y
ae ©« cYeYY-®?aY¤Y«Y?Y

cYeYY-®?aY¤Y«Y?Y:
®?aY¤Y«Y?Y-aea?ae??
®!eic«Y?Y
asm-®?Ya a®a

®?aY¤Y«Y?Y-aea?ae??:
¤Y?« a a®a
a®aa c®©-®?Ya a®a
———————————————————–

‚ aeY«®¬, ®?aY¤Y«Y?Y aea?ae?? a®aa®?a ?§ a«Y¤aie?a a §-
¤Y«®c (Fa ¬¬ a??  ?®§c®«iYa a®§¤ ?Y ? !®«YY a«®¦ea ?®a-
aaa?ae?©):

– 61 –
1. ??ae?® «ieY a?Yae?ae?? a®ae ?« aa  ? ¬ia?: extern ?«?
static. “¬®«c ?Y¬ ic«iYaai extern.

2. ’?? c®§ca a , c®§¬®¦® void. “¬®«c ?Y¬ ic«iYaai
int.

˜«Y¬Yae ?§ ?a?a®c 1 ? 2 ¬®¦® c§ ?¬® ?®¬!??a®c ai.

3. ??ae?® «ieY ¬®¤?ae?? a®ae: pascal, cdecl, interrupt,
near, far, huge. “¬®«c ?Y § c?a?a ®a ¬®¤Y«? ? ¬ia? ? aaa –
®c«Yea ®?ae?© ?®¬??«ia®a .

4. ?¬i aea?ae??.

5. ‘??a®? ®!eic«Y?i ? a ¬Yaa®c, ?®a®ae© ¬®¦Ya !eai
?aaae¬, § ?«icYe© c ?aaF«eY a?®!??. ‚ a ?aY¤?®ca?aY«i®
®!®§ c ai ®aaaaaac?Y ? a ¬Yaa®c § ??aii func(void). ‚ ‘ ¤®-
?aa? Yaai ? aa ae© aa?«i § ??a? func(), ® ia® ¬®¦Ya ?a?c®-
¤?ai ? Y®¤®§ c®aai¬ ? c®§¬®¦e¬ ®e?!? ¬. ‚ ‘++ ce¤ Yaai
a®®acYaaacaieYY ?aY¤a?aY¦¤Y?Y.

6. ’Y«® aea?ae??, ?aY¤aa c«iieYY a®!®© ?®¤e, ce?®«iY¬eY
?a? ce§®cY aea?ae??.

?!eic«Y?i ae®a¬ «iea ? a ¬Yaa®c

‘??a®? ®!eic«Y?i ae®a¬ «iea ? a ¬Yaa®c ?¬YYa a?a ?-
a?a,   «®F?ce© a?a ?a?aa ®!ecea ®!eic«Y?© ?¤Ya?ae?? a®-
a®c. ?¦Y ?a?c®¤?aai Ya?®«i?® ?a?¬Ya®c:

int func(void) (* //  aFa¬Yae ®aaaaaacaia

‘++int func(T! t1, T2 t2, T3 t3=1) (*
// aa? ?a®aaea ? a ¬Yaa ,
// ®¤? ?§ ?®a®aea a  aFa¬Ya®
// ?® a¬®«c ?i

C++int func(T1* ptr1, T2& tref) (*
//  aFa¬Yae a? § aY«i ? aae«?

int func(register int i) (* // § ?a®a aYF?aaa  ¤«i  aFa¬Y

int func(char *str,…) (* /* ®¤? aaa®?®ce©  aFa¬Ya ??Y-
aY¬Y®Y c?a«® ?a®c?a  aFa¬Ya®c, «?!® ae??a?a®c –
®Y c?a«®  aFa¬Ya®c a ?YaY¬Ye¬? a?? ¬? */

‚ ‘++ ce ¬®¦YaY § ¤ c ai, ? ? ?®? § ®,  aFa¬Yae ?®
a¬®«c ?i. ˜ a ¬Yaae a® § cY?i¬? ?® a¬®«c ?i ¤®«¦e ic-
«iaiai ?®a«Y¤?¬? ? a ¬Yaa ¬? c a??a?Y. ’??e  aFa¬Ya®c ¬®-
Faa !eai a? «iae¬?, aaaa?aaa ¬?,®!eY¤?Y?i¬?, ?YaYc?a«?¬®-
F® a?? , a? § aY«i¬??«? aae«? ¬?   aaaa?aaae ?«?
®!eY¤?Y?i, ?«? a? § aY«i¬?   aea?ae?? ?«? ?« aae.

?®F®a®c?Y (…) ®§ c Ya, ca® aea?ae?i !a¤Ya ce§ec aiai c
a §ea a«ac ia a a §«?ce¬?  !®a ¬?  aFa¬Ya®c. ?®F®a®c?Y
¬®¦Ya a«Y¤®c ai §  ?®¤a??a?®¬ ®!eic«Y?© ?§cYaaea  aFa¬Y-
a®c. ’ ? i ae®a¬  ?a®a®a??  a¬Yie Ya c?a«® ce?®«iY¬ea ?®¬-
??«ia®a®¬ ?a®cYa®?.

‚aY ®!eic«YeY ? a ¬Yaae  ca®¬ a?cYa?? ?®«ac ia ?®aY?aa,  
a ?¦Y ¤«?aY«i®aai ¤ ®© aea?ae??. …¤?aacYe¬ ¤®?aaa?¬e¬
¤«i ?a ?« aa®¬ a?Yae?ae?? a®a  ic«iYaai register.

‚ ¤Y?« a a®a a ae®a¬ «iea ? a ¬Yaa®c ¬®Faa ?a?®«i§®c aiai
¬®¤?ae?? a®ae const ? volatile.

‚e§®ce aea?ae?© ? ?aY®!a §®c ?i  aFa¬Ya®c

– 62 –

”a?ae?i ce§ec Yaai a ae ?a?cYa??¬?  aFa¬Ya ¬?, ?®¬YeYe¬? c
a®© ¦Y ?®a«Y¤®c aY«i®aa?,ca® ? a®®acYaaacaie?Y ?¬ ae®a¬ «i-
eY  aFa¬Yae. ?aY®!a §®c ?i ae ?a?cYa??a  aFa¬Ya®c ce?®«-
iYaai,? ? Ya«? !e ®???ae? «?§?a®c «?ai § cY?i¬? ae®a¬ «i-
ea  aFa¬Ya®c ?a? ®!eic«Y?? a??®c.

˜?¦Y ?a?c®¤?aai ?a a?®Y ?§«®¦Y?Y ?a c?«, a?a c«iie?a
®!a !®a?®© c Turbo C++ ¬®¤?ae?? a®a®c i§e?  ? ae®a¬ «iea ? –
a ¬Yaa®c ?a? ce§®cY aea?ae?©, ? ? ?a?  «?c?? ?a®a®a?? , a ?
? ?a? YF® ®aaaaaac??:

1. ?®¤?ae?? a®ae i§e?  ¤«i ®?aY¤Y«Y?i aea?ae?? ¤®«¦e a®®a-
cYaaac®c ai ¬®¤?ae?? a®a ¬, ?a?®«i§aY¬e¬ c ®!eic«Y?? aea?-
ae??, ?a? caYa ce§®c a aea?ae??.

2. ”a?ae?i ¬®¦Ya ¬®¤?ae?ae?a®c ai § cY?i ac®?a ae®a¬ «iea
? a ¬Yaa®c, ® ia® Y c«?iYa   ae ?a?cYa??Y  aFa¬Yae c ce-
§ec ieY© ?a®Fa ¬¬Y, §  ?a?«icY?Y¬  aFa¬Ya®c a??  aae«?  c
C++.

…a«? a YY Y !e« ®!eic«Y ?a®a®a?? aea?ae??, Turbo C++ ?aY-
®!a §aYa ?aYFa «ieY  aFa¬Yae ?a? ce§®cY aea?ae?? c a®®a-
cYaaac?? a ?a c?« ¬? ?aYFa «i®F® a ae?aY?i, ®??a e¬? c
a §¤Y«Y “‘a ¤ aaeY ?aY®!a §®c ?i”   aaa.41 ®a?F? « .
˜a?  «?c?? c ?®aY?aaY ?a®a®a??  aea?ae?? Turbo C++ ?aY®!a –
§aYa ¤ eY  aFa¬Yae ? ®!eic«Ye¬ a?? ¬ ? a ¬Yaa®c, ? ?
?a? ®?Ya ae?? ?a?ac®Y?i.

…a«? ?a®a®a?? aea?ae?? c?«ic Ya c aY!i ¬®F®a®c?Y (…), a®
Turbo C++ ?aY®!a §aYa caY ¤ eY  aFa¬Yae aea?ae??, ? ? ? c
«i!®¬ ¤aaF®¬ ?a®a®a??Y (?a?®«i§aieY¬ ¬®F®a®c?Y). ?®¬??«ia®a
a ae?aiYa «i!eY  aFa¬Yae, § ¤ eY ?®¬?¬® ae??a?a®c ea ? –
a ¬Yaa®c, ?® ®!ece¬ ?a c?« ¬ ¤«i  aFa¬Ya®c aea?ae?? !Y§
?a®a®a??®c.

˜a?  «?c?? ?a®a®a??  c?a«®  aFa¬Ya®c c ?a®a®a??Y ?
aea?ae?? ¤®«¦® a®c? ¤ ai (?a? aa«®c??, ca® c ?a®a®a??Y Y
§ ¤ ® ¬®F®a®c?Y).’??e  aFa¬Ya®c ¤®«¦e ic«iaiai a®c¬Yaa?-
¬e c a ?®© aaY?Y?, ca®!e ®?Ya ae?i ?a?ac®Y?i ce?®«i« ai
?a c?«i®. ‚e caYF¤  ¬®¦YaY ?a?®«i§®c ai iceY ?a?cY¤Y?i,
ca®!e ?aY®!a §®c ai  aFa¬Ya ? a??a, ?a?Y¬«Y¬®¬a ¤«i ?a®a®-
a??  aea?ae??.

‚ ¦®Y § ¬Yc ?Y

…a«? ?a®a®a?? aea?ae?? Y a®®acYaaacaYa ae ?a?cYa?®¬a ®?-
aY¤Y«Y?i aea?ae??, Turbo C++ ®! aa¦?a ia® c a®¬ ? a®¬ a«a-
c Y, ?®F¤  ®?aY¤Y«Y?Y a®¤Ya¦?aai c a®© ¦Y Y¤??aeY
?®¬??«iae??, ca® ? ?a®a®a??. ˜a? a®§¤ ?? !?!«?®aY?? ?®¤?a®F-
a ¬¬ a a®®acYaaacaie?¬ ae ©«®¬ § F®«®c? ?a®a®a??®c Y§ !ec ©-
aY c?«ic ai ia®a ae ©« ?a? ?®¬??«iae?? !?!«?®aY??, a aY¬, ca®-
!e «i!eY a aa®¦¤Y?i ¬Y¦¤a ?a®a®a??®¬ ? ae ?a?cYa??¬?
®?aY¤Y«Y?i¬? aea?ae?? !e«? ®! aa¦Ye. ‘++ ®!Ya?Yc?c Ya ?a?
?®¬?®®c?Y ?®aa®«i a??®c, ?®ia®¬a caY a §«?c?i ¬Y¦¤a ®¦?¤ –
Y¬e¬? ? ¤Y©aac?aY«i® § ¤ e¬? ? a ¬Yaa ¬? !a¤aa ?®¬?®®c-
e??®¬ ®! aa¦Ye.

‘aaa?aaae

??ae? «?§ ae?i aaaa?aaae ®??a     aaa.42 ®a?F? « .

‘aaa?aaa  – ia® ?a®?§c®¤e© a?? ¤ ea, ®!ec® ?aY¤a-
a c«iie?© a®!®© ®?aY¤Y«iY¬e© ?®«i§®c aY«Y¬  !®a ?¬Y®c ea
?®¬?®Ya®c. ˜a? ?®¬?®Yae ¬®Faa !eai «i!®F® a?? , ? ? aea-
¤ ¬Ya «i®F®, a ? ? ?a®?§c®¤®F® (a Y?®a®ae¬? ®??aec Y¬e¬?

– 63 –
¤ «YY ®Fa ?cY?i¬?), ? a a?®« F aiai c «i!®© ?®a«Y¤®c aY«i-
®aa?. ?a®¬Y a®F®, ?®¬?®Ya aaaa?aaae ¬®¦Ya ?¬Yai a?? !?a®-
c®F® ?®«i, !®«YY ?F¤Y Y a §aYe Y¬®F®. ’?? aaaaaaae c Turbo
C++ ?®§c®«iYa ®!a ! aec ai a«®¦eY aaaa?aaae ¤ ea a ? ¦Y
«YF?®, ? ? ? ?a®aaeY ?YaY¬YeY.

‚ ‘++ a?? aaaa?aaae a aa¬ aa?c Yaai ? ? a?? ?« aa  (a
®?aY¤Y«Ye¬? a §«?c?i¬?: ¤®aaa? ?® a¬®«c ?i aaa  c«?c Ya-
ai public,   a¬®«c ?Y ¤«i ! §®c®F® ?« aa  a ?¦Y public).
˜a® ?®§c®«iYa ®aF ?§®cec ai !®«YY a«®¦®Y a?a c«Y?Y ?®¬?®-
Ya ¬? aaaa?aaae ?a? ?®¬®e? a?Yae?ae?? a®a®c ¤®aaa?  ‘++:
public (ia® a¬®«c ?Y), private ? protected. ˜®¬?¬® ¤ ®F®
®?ae?® «i®F® ¬Ya ?§¬  a?a c«Y?i ¤®aaa?®¬ ? a?®¬iaaea ?a-
?«icY?©, ¤ «YY a aa¬ aa?c Y¬eY a?a ?a?a ? ?a?¬YY?Y
aaaa?aaa ®a®aiaai a c® ? aaaa?aaa ¬ ‘ ? ‘++.

?!eic«Y?Y aaaa?aaa ce?®«iYaai ?a? ?®¬®e? ?«icYc®F®
a«®c  struct. ˜ ?a?¬Ya,

struct mystruct (* … *); // mystruct – ia® aYF aaaa?-
aaae

struct mystruct s, *ps, arrs[10];
/* s ?¬YYa a?? aaaa?aaae mystruct; ps ia® a? § aY«i  
a?? struct mystruct */
‘aaa?aaae !Y§ aYF®c ? ®?aY¤Y«Y?i a??®c (typedef)

‘aaa?aaae !Y§ ?®¬?®Ya®c ? ?®¬?®Yae ®!eY¤?Y?© ?a?
??ae? «?§ ae?? ?F®a?aaiaai.

…a«? aYF aaaa?aaae ®?aeY, a® ?®«ac Yaai aaaa?aaa  !Y§
aYF . ’ ?aiaaaa?aaaa ¬®¦® ?a?®«i§®c ai ¤«i ®!eic«Y?i ?¤Y-
a?ae?? a®a®c c a §¤Y«iY¬®¬ § ?iae¬? a??a?Y-?¤Ya?ae?? a®-
a®c-aaaa?aaae ? ? ?¬Yie?a ¤ e© a?? aaaa?aaae (?«? ic«ii-
e?aai ?a®?§c®¤e¬? ®a YF®), ® ®!eic«iai ®!eY?ae ia®F® a?? 
¤®?®«?aY«i® F¤Y-«?!® YeY Y«i§i:

struct (* …*) s, *ps, arrs[10]; //aaaa?aaa  !Y§ aYF 

˜a? ®!eic«Y?? aaaa?aaae, ? ? a aYF®¬, a ? ? !Y§ YF®,
¬®¦® a®§¤ ai typedef:

typedef struct mystruct (* … *) MYSTRUCT;
MYSTRUCT s, *ps, arrs[10]; // a® ¦Y, ca® ?
// struct mystruct s ? a.¤.
typedef struct (* … *) YRSTRUCT; // aYF ®aaaaaacaYa
YRSTRUCT y, *yp, arry[20];

?!ec® ? aYF, ? typedef ®¤®caY¬Y® Y a¦e; c®!eic-
«Y?ia aaaa?aaae ¬®¦Ya !eai ?a?®«i§®c  «i!®© ?§ ?a.

?!eic«Y?i ?®¬?®Ya®c aaaa?aaae

‘??a®?-®!eic«Y?i-?®¬?®Ya®c cae?Faaea a?®!? a ®!eic-
«iYa a??e ? ?¬Y  ?®¬?®Ya®c aaaa?aaae ?a? ?®¬®e? a?a ?a?-
a  ¤Y?« a a®a , ?®? § ®F® c a !«?aeY 1.11   aaa.36
®a?F? « .

?®¬?®Yae aaaa?aaae ¬®Faa !eai «i!®F® a?? , §  ¤ca¬i
?a?«icY?i¬?

1. ’?? ?®¬?®Ya  Y ¬®¦Ya !eai a®a ¦Y, ca® ? ®!eic«iY-
¬ i c aY?ae?© ¬®¬Ya aaaa?aaa :

struct mystruct (* mystruct s *) s1, s2;// Y¤®?aaa?¬®

?®¬?®Ya aaaa?aaae ¬®¦Ya ic«iaiai a? § aY«Y¬   ®!eic-

– 64 –
«iY¬ai aaaa?aaaa, ? ? c a«Y¤aieY¬ ?a?¬YaY:

struct mystruct (* mystruct *ps *) s1, s2; // a ? ¬®¦®

?a®¬Y a®F®, aaaa?aaa  ¬®¦Ya a®¤Ya¦ ai a YY ®!eic«YeY
a??e aaaa?aaa, ®!eic«ii ca®¦¤Y?i ®!eic«Yea a YY aaaa?-
aaa.

‚ ‘++ ?«icYc®Y a«®c® struct ¬®¦Ya !eai ®?aeY®.

2. ?a®¬Y ‘++, ?®¬?®Ya aaaa?aaae ?F¤Y Y ¬®¦Ya ?¬Yai
a?? “aea?ae?i, c®§ca e ie i …”, ® a?? “a? § aY«i   aea?-
ae?i, c®§ca e ieai …” ¤®?aaa?¬. ‚ ‘++ struct ¬®¦Ya ?¬Yai
?®¬?®Yae-aea?ae??.

‘aaa?aaae ? aea?ae??

”a?ae?i ¬®¦Ya ?¬Yai c®§ca e Y¬®Y § cY?Y a??  aaaa?aa-
ae ?«? a? § aY«i aaaa?aaae.

mystruct func1(void); // func1() c®§ca e Ya aaaa?aaaa
mystruct
*func29void); // func2() c®§ca e Ya a? § aY«i aaaa?aaae

‘aaa?aaa  ¬®¦Ya!eai ?YaY¤   aea?ae?? c ? cYaacY  aFa-
¬Ya , a«Y¤aie?¬ ®!a §®¬:

void func1 (mystruct s); // Y?®aaY¤aacY®
void func2 (mystruct *sptr); // cYaY§ a? § aY«i
void func3 (mystruct &sref); // ?® aae«?Y (a®«i?® ‘++)
„®aaa? ? ?®¬?®Yaa aaaa?aaae

„®aaa? ? ?®¬?®Ya ¬ aaaa?aaa ? ®!eY¤?Y?© ce?®«iYaai
®?Ya a®a ¬? ce!®a  . ? ->. ˜aY¤?®«®¦?¬, ca® ®!eY?a ?¬YYa a??
aaaa?aaae S,   sptr ia® a? § aY«i   S. ’®F¤ , Ya«? m ia®
?¤Ya?ae?? a®a a??  M, ®!eic«Y®F® c S, a® cea ¦Y?i s.m ?
sptr->m ?¬Yia a?? M ? ?aY¤aa c«iia ®!eY?a m – ?®¬?®Ya
aaaa?aaae s. ‚ea ¦Y?Y s->sptr ic«iYaai a¤®!e¬ a?®?¬®¬ (*
sptr).m.

??Ya ae?i .  §ec Yaai ?ai¬e¬ aY«Y?a®a®¬ ?®¬?®Ya 
aaaa?aaae; ®?Ya ae?i ->  §ec Yaai ?®acYe¬ aY«Y?a®a®¬ ?®¬-
?®Ya  (?«? a? § aY«Y¬) aaaa?aaae;  ?a?¬Ya,

struct mystruct (*
int i;
char str[21];
double d;
*) s, *sptr=&s;

s.i = 3; // ?a?ac®Y?i c«Y¬a i aaaa?aaae mystruct s
sptr->d = 1.23; // ?a?ac®Y?Y ?®¬?®Yaa d aaaa?aaae
mystruct s

‚ea ¦Y?Y s.m ic«iYaai ?¬YaY¬e¬ § cY?Y¬ (lvalue),
Ya«? s ia® Y ?¬YaY¬®Y § cY?Y ? s Y ?¬YYa a?? ¬ aa?c .
‚ea ¦Y?Y sptr->m ic«iYaai ?¬YaY¬e¬ cea ¦Y?Y¬, Ya«? m Y
?¬YYa a?? ¬ aa?c .
…a«? aaaa?aaa  B a®¤Ya¦?a ?®«Y, a?? ?®a®a®F® Yaai
aaaa?aaa  A, a® ¤®aaa? ? ?®¬?®Ya ¬ A ce?®«iYaai cYaY§ ¤c 
®¤®caY¬Y® § ¤ c Y¬ea aY«Y?a®a  ?®¬?®Ya  aaaa?aaae:

– 65 –

struct A (*
int j;
double x;
*)

struct B (*
int i;
struct A a;
double d;
*) s, *sptr;

s.i = 3; // ?a?ac®Y?Y ?®¬?®Yaa i aaaa?aaae B s.a.j =
2; // ?a?ac®Y?Y ?®¬?®Yaa j aaaa?aaae A sptr->d = 1.23; //
?a?ac®Y?Y ?®¬?®Yaa d aaaa?aaae B (sptr->).x = 3.14 //
?a?ac®Y?Y ?®¬?®Yaa x aaaa?aaae A

? ¦¤®Y ®!eic«Y?Y aaaa?aaae cc®¤?a a?? «ie© a??
aaaa?aaae, ?®ia®¬a c

struct A (*
int i,j;
double d;
*) a, a1;

struct B (*
int i,j;
double d;
*) b;

®!eY?ae a ? a1 ®!  ?¬Yia a?? struct A, ® ®!eY?ae a ? b
?¬Yia a §«?ceY a??e aaaa?aaae. ‘aaa?aaa ¬ ¬®¦Ya ce?®«iaiai
?a?ac ?c ?Y a®«i?® c a®¬ a«ac Y, Ya«? ? ?aa®¤ i aaaa?aaa ,
? aaaa?aaa   § cY?i ?¬Yia ®¤? ? a®a ¦Y a??:

a = a1;// a ? ¬®¦®; a?? ®¤? ? a®a ¦Y, ?®ia®¬a ¬®¦Ya
!eai // ce?®«Y® ?®?®¬?®Ya®Y ?a?ac®Y?Y aaaa?aaa
a = b;// a ? Y«i§i; a §eY ?®¬?®Yae
a.1 = b.1; a.j = b.j; a.d = b.d; // ®¤ ?® ?a?ac®Y?Y
¬®¦® // ce?®«iai   aa®cY ?®¬?®Ya®c aaaa?aaae

‚ea c?c ?Y ?® Fa ?aeY a«®c 

˜ ¬iai a a?aY¤Y«iYaai aaaa?aaaY ?®?®¬?®Ya®, a«Y-
c – ?a c®, ®a ¬« ¤eYF® ? aa aeY¬a  ¤aYaa ? ¬ia?. ‚ a«Y¤ai-
eY¬ ?a?¬YaY

struct mystruct (*
int i;
char str[2];

double d;
*) s;

®!eY?a s § ?¬ Ya ¤®aa a®c®Y ?®«?cYaac® ? ¬ia? ¤«i
a §¬YeY?i 2- ! ©a®c®F® aeY«®c?a«Y®F® § cY?i, 21-! ©a®c®©
aaa®?? ? 8-! ©a®c®F® § cY?i a??  double. ”®a¬ a ¤ ®F®
®!eY?a  c ? ¬ia? ®?aY¤Y«iYaai ®?ae?Y© Turbo C++ cea c?c ?i
?® Fa ?aeY a«®c . ?®F¤  ia  ®?ae?i ce?«icY  (?® a¬®«c ?i),
s !a¤Ya § ?¬ ai 31 ! ©a Y?aYaec®. …a«? ¦Y c?«ic?ai cea c-
?c ?Y ?® Fa ?aeY a«®c  ®?ae?Y© -a ?®¬??«ia®a  (?«? c ¤? «®-
F®c®¬ ?®«Y Options \! Compiler \! Code Generation), a® Turbo
C++ § ?®«iYa aaaa?aaae ! ©a ¬? a ??¬ ®!a §®¬, ca® aaaa?aaa 
!e«  cea cY  ?® a«Y¤aie?¬ ?a c?« ¬:

– 66 –
1. ‘aaa?aaa  ¤®«¦   c? aiai ?® Fa ?aeY a«®c  (cYae©
 ¤aYa).

2. ‹i!®© Y-a?¬c®«ie© i«Y¬Ya !a¤Ya ?¬Yai cYa®Y a¬Y-
eY?Y c ! ©a a ®a®a?aY«i®  c «  aaaa?aaae.

3. ‚ ?®Yae aaaa?aaae ?a? Y®!a®¤?¬®aa? ¤®! c«iYaai ?®-
Yce© ! ©a, a ??¬ ®!a §®¬, ca®!e cai aaaa?aaa  c aeY«®¬ § –
?¬ «  cYa®Y ?®«?cYaac® ! ©a®c.

…a«? ®?ae?i cea c?c ?i c?«icY , a®?a?cY¤Ye© ?a?¬Ya
aaaa?aaae ?¬Y« !e ¤®! c«Ye© ?YaY¤ double ! ©a, ? cYai ®!e-
Y?a c aeY«®¬ § ?¬ « !e 32 ! ©a .

˜a®aaa aac® ?¬Y aaaa?aaa

?¬Y  aYF®c aaaa?aaa a §¤Y«iia ®!eYY ?a®aaa aac® ?¬Y
aaYF ¬? ®!eY¤?Y?© ? ?YaYc?a«?¬ea ¤ ea (®¤ ?® c ‘++ ?¬Y-
  ca®¤ie?a c aaaa?aaaa ?YaYc?a«?¬ea ¤ ea  a®¤iaaic ¤aa-
F®¬  ¤aYa®¬ ?a®aaa aacY). ˜a® ®§ c Ya, ca® c ?aY¤Y« a ®¤-
®F® ?®aY?aa  a ??Y aYF? ¤®«¦e ?¬Yai a?? «ieY ?¬Y .
?¤ ?®, ?¬Y  aYF®c Y ®!i§ e ®a«?c aiai ®a ?¤Ya?ae?? a®-
a®c,  a®¤ie?aai c aaYa ¤aaF?a  ¤aYaea ?a®aaa aac a:
?a®aaa aacY ?¬Y ¬Ya®?, ?a®aaa aacY (?a®aaa aac a) ?¬Y
?®¬?®Ya®c ? Y¤?®¬  ¤aYa®¬ ?a®aaa aacY (?®a®a®Y a®aa®?a
?§ ?¬Y ?YaY¬Yea, aea?ae?©, ?¬Y typedef ? ?¬Ya a®a®c).

?¬Y  ?®¬?®Ya®c c ?aY¤Y« a ¤ ®© aaaa?aaae ?«? ®!e-
Y¤?Y?i «!i§ e !eai a?? «ie¬?, ® aaY¤? a §ea aaaa?aaa
?«? ®!eY¤?Y?© ®? ¬®Faa a®c? ¤ ai. ˜ ?a?¬Ya,

goto s;

struct s (* // a ? ¬®¦®; aYF? ? ?¬Y  ¬Ya®?  a®¤iaai
c a §ea //  ¤aYaea ?a®aaa aac a
int s; // a ? ¬®¦®; aYF?, ?¬Y  ¬Ya®? ? ?¬Y  ?®¬?®-
Ya®c // ¤iaai c a §ea  ¤aYaea ?a®aaa aac a
float s;// a ? Y«i§i: ?®ca®aY?Y ?¬Y? ?®¬?®Ya®c
aaaa?aaa *) s; // a ? ¬®¦®; ?a®aaa aac  ?¬Y ?YaY¬Yea
a §«?ce // ‚ ‘++ ia® ¤®?aaa?¬® a®«i?® Ya«? s Y ?¬YYa
// ?®aaaa?a®a .

union s (* // a ? Y«i§i: ?®ca®aY?Y ?¬Y c ?a®aaa a-
acY aYF®c int s; // a ? ¬®¦®: ®c®Y ?a®aaa aac® ?®¬?®Y-
a®c float f;
*) f; // a ? ¬®¦®: ?a®aaa aac® ?¬Y ?YaY¬Yea

struct t (*
int s; // a ? ¬®¦®: a«Y¤aieYY ?a®aaa aac® ?¬Y ?®¬?®-
Ya®

*) s; // a ? Y«i§i: ?®ca®aY?Y ?¬Y ?YaY¬Yea

˜Y?®«eY ®!eic«Y?i

“? § aY«i aaaa?aaae a??  ? ¤®?aaa?¬ c ®!eic«Y?? ¤aaF®©
aaaa?aaae ‚ ¤® ®!eic«Y?i aaaa?aaae ?:

struct A;// Y?®«®Y ®!eic«Y?Y struct B (* struct A
*pa *);
struct A (* struct B *pb *);

˜Yac®Y ®!eic«Y?Y ?  §ec Yaai Y?®«e¬, ?®a?®«i?a c
ia®© a®c?Y ®aaaaaacaYa ®?aY¤Y«Y?Y ?. ‚ ¤ ®© a?aa ae?? Y-
?®«®Y ®!eic«Y?Y ¤®?aaa?¬®, ?®a?®«i?a c ®!eic«Y?? ‚ a §¬Ya
? Y®!i§ aY«Y. ˜?a®ceY ?®«i

– 67 –
‘aaa?aaa  ¬®¦Yaa®¤Ya¦ ai «i!eY ?®¬!? ae?? !?a®cea ?®«Y©
a ¤ e¬? ¤aaF?a a??®c.

–Y«®c?a«YeY ?®¬?®Yae a??  signed ?«? unsigned ¬®¦®
®!eic?ai !?a®ce¬? ?®«i¬? e?a?®© ®a 1 ¤® 16 !?a. ??a?  !?-
a®c®F® ?®«i ? YF® ®?ae?® «ie© ?¤Ya?ae?? a®a § ¤ iaai a«Y¤a-
ie?¬ ®!a §®¬:

a?Yae?ae?? a®a-a??  ¤Ya?ae?? a®a-!?a®c®F® ?®«i>:e?a? ;

F¤Y a?Yae?ae?? a®a-a??  ia® char, unsigned char, int ?«?
unsigned int. ˜?a®ceY ?®«i a a?®« F iaai a ?¦YF® ? ?®c i
a ae?¬ !?a®¬ a«®c . ‚ea ¦Y?Y “e?a? ” ¤®«¦® !eai § ¤ ® ?
¤®«¦® ¤ c ai aeY«®c?a«Yai ?®aa aa a® § cY?Y¬ c ¤? ? –
§®Y ®a 0 ¤® 16.

…a«? ?¤Ya?ae?? a®a !?a®c®F® ?®«i ®?aeY, a® c?a«® !?-
a®c, § ¤ ®Y cea ¦Y?Y¬ “e?a? “, a a?aY¤Y«iYaai c ? ¬ia?,
® ?®«Y ?a? ia®¬ ®aa Yaai Y¤®aaa?e¬ ?a®Fa ¬¬Y. ˜a® ?®§c®-
«iYa a®§¤ c ai !?a®ceY e !«®e ¤«i,  ?a?¬Ya,  ?? a aea aY-
F?aaa®c ?®¬?iiaYa , c ?®a®aea Y?®a®aeY !?ae Y ?a?®«i§aia-
ai. ˜a?¬Ya:

struct mystruct (*
int i:2;
unsigned j:5;
int :4;
int k:1;
unsigned m:4;
*) a, b, c;

a®§¤ Ya a«Y¤aieYY a a?aY¤Y«Y?Y ? ¬ia?.

————————————————————
\! 15\! 14\! 13\! 12\! 11\! 10\! 9 \! 8 \! 7 \! 6 \! 5
\! 4 \! 3 \! 2 \! 1 \! 0 \!
————————————————————
\! x \! x \! x \! x \! x \! x \! x \! x \! x \! x \! x
\! x \! x \! x \! x \! x \!
————————————————————
\!\!\!\!\!\!
————————————————————
\! m \! k \!Y ?a?®«i§aYaai\! j \! i \!
————————————————————

–Y«®c?a«YeY ?®«i aa iaai c c?¤Y ¤®?®«Y?i ¤® ¤caa,
?a?cY¬ ?a ©?© «Yce© !?a ?®!Ye Yaai c MSB ( ?!®«YY § c e?©
!?a).„«i !?a®c®F® ?®«i a??  Int ( ?a?¬Ya, signed) MSB ?-
aYa?aYa?aaYaai ? ? § ?®ce© !?a. ˜?a®c®Y ?®«Y e?a?®© 2, a®-
¤Ya¦ eYY ¤c®?c®Y 11, !a¤Ya, a«Y¤®c aY«i®, c a«ac Y a?? 
unsigned ?aYa?aYa?a®c aiai? ? 3,   c a«ac Y Int ? ? -1. ‚
?aY¤e¤aeY¬ ?a?¬YaY ¤®?aaa?¬®Y cea ¦Y?Y a.i = 6 ?®¬Yaa?a c
a.i ¤c®?c®Y 10 = -2, Y ce¤ c i ? ??a-«?!® ?aY¤a?aY¦¤Y?©.
˜®«Y k a??  signed int e?a?®© 1 ¬®¦Ya a®¤Ya¦ ai a®«i?® § –
cY?i -1 ? 0, a ? ? ? !?a®ce© e !«® 1 !a¤Ya ?aYa?aYa?a®c 
? ? -1.

˜a?¬Yc ?Y

˜?a®ceY ?®«i ¬®Faa !eai ®!eic«Ye a®«i?® c aaaa?aaa a,
®!eY¤?Y?ia ? ?« aa a. „®aaa? ? ?¬ ce?®«iYaai aY¬? ¦YaY-
«Y?a®a ¬? ?®¬?®Ya®c (. ? ->), ca® ?a?®«i§aiaai ¤«i ¤®aaa? 
? ?®¬?®Ya ¬ ¤aaF?a a??®c. ?a®¬Y a®F®, !?a®ceY ?®«i ce§ec –
ia Y?®a®aeY ?a®!«Y¬e a a®§¤ ?Y¬ ?YaY®a?¬ea ?®¤®c, ?®a-
?®«i?a ®aF ?§ ae?i !?a®c c ! ©a a ? ! ©a®c c a«®c a § c?a?a
®a ?®?aYa®© ¬ e?e.

– 68 –

‚ea ¦Y?Y &mystruct.x Y¤®?aaa?¬®, a ? ? ? x ia® ?¤Y-
a?ae?? a®a !?a®c®F® ?®«i,   ?? ?®© F a a??, ca® mystruct.x
?¬YYa  ¤aYa   Fa ?aeY ! ©a , Ya.

?!eY¤?Y?i

?!eY¤?Y?i a®®acYaaacaia a?? ¬ c a? aea § ??aY© i§e-
?®c Pascal ? Modula-2.

’??e ®!eY¤?Y?© ic«iiaai ?a®?§c®¤e¬? a?? ¬?, a §¤Y«i-
ie?¬? ¬®F?Y a?a ?a?cYa??Y ? aea?ae?® «ieY ac®©aac  a??®c
aaaa?aaa. ?« c®Y ®a«?c?Y ¬Y¦¤a ?¬? a®aa®?a c a®¬, ca® ®!e-
Y¤?Y?Y ?®§c®«iYa !eai ” ?a?ce¬” ®¤®caY¬Y® a®«i?® ®¤®-
¬a ?®¬?®Yaa. ˜ §¬Ya ®!eY¤?Y?i a cY a ??¬ ®!a §®¬ a §¬Y-
aa ac®YF® ¬ ?a?¬ «i®F® ?®¬?®Ya . ?¤®caY¬Y® c ? ¬ia?
¬®¦Ya  a®¤?aiai § cY?Y a®«i?® ®¤®F® ?®¬?®Ya  «®!eY¤?-
Y?i. ‚ a«Y¤aieY¬ ?a®aa®¬ a«ac Y

union myunion (* /* aYF ®!eY¤?Y?i = myunion */
int i;
double d;
char ch;
*) mu, *muptr=μ

?¤Ya?ae?? a®a mu a??  union myunion ¬®¦Ya a«a¦?ai ¤«i
aa Y?i 2-! ©a®c®F® § cY?i int, 8-! ©a®c®F® § cY?i
double ?«? 1-! ©a®c®F® char, ® ®¤®caY¬Y® – a®«i?® ®¤®F®
?§ ia?a § cY?©.

?!Y ®?Ya ae?? sizeof(union myunion) ? sizeof (mu) c®§c-
a e ia § cY?Y 8, ® ?®F¤  mu a®¤Ya¦?a ®!eY?a a??  int, a®
6 ! ©a ®aa iaai Y?a?®«i§®c e¬? (aa¤  ?®¬Ye iaai a?¬c®-
«e-§ ?®«?aY«?),   ?®F¤  mu ae¤Ya¦?a ®!eY?a a??  char – a® 7
! ©a. „®aaa? ? ?®¬?®Ya ¬ ®!eY¤?Y?i ce?®«iYaai?a? ?®¬®e?
aY«Y?a®a®c ?®¬?®Ya  aaaa?aaae (. ? ->), ® aaY!aYaai a®!-
«i¤ ai ®aa®a®¦®aai:

mu.d = 4.016;
printf(“mu.d = %f\n”,mu.d);// ?®ai¤®?:   ¤?a?«YY mu.d
= 4.016
printf(“mu.i = %f\n”,mu.i);// § ! ce© aY§a«ia a !
mu.aa = ‘A’;
printf(“mu.ch = %c\n”,mu.ch); // ?®ai¤®?:   ¤?a?«YY
mu.ch = A
printf(“mu.d = %f\n”,mu.d); // § ! ce© aY§a«ia a !
muptr->i = 3; printf(“mu.i = %d\n”,mu.i); // ?®ai¤®?:  
¤?a?«YY mu.i = 3

‚a®a®© ®?Ya a®a printf ¤®?aaa?¬, ?®a?®«i?a mu.i aeY«®-
c?a«Y®F® a?? . ?¤ ?®, !?a®c i ?®¬!? ae?i c mu.i a®®acYaa-
acaYa c aa? a YY ?a?ac®Y®F® § cY?i a??  double ? Y
¤ aa ? ? ?a c?«® ?®«Y§®© aeY«®c?a«Y®© ?aYa?aYa ae??.

˜a? ?a c?«iea ?aY®!a §®c ?ia a? § aY«i ®!eY¤?Y?i
¬®¦Ya a? §ec ai   «i!eY YF® ?®¬?®Yae, ?  ®!®a®a.

?!eic«Y?i ®!eY¤?Y?©

?!e?© a?a ?a?a®!eic«Y?i ®!eY¤?Y?© c® ¬®F®¬  ?®¬?-
 Ya a?a ?a?a ®!eic«Y?i aaaa?aaa. ˜ §«?c?i a®aa®ia c a«Y-
¤aieY¬:

1. ?!eY¤?Y?i ¬®Faa a®¤Ya¦ ai !?a®ceY ?®«i, ®  ?a?c-
e¬ !ec Ya a®«i?® ®¤® ?§?a. ‚aY ®?  c? iaai c  c «Y
®!eY¤?Y?i.

– 69 –
2. ‘++ : ‚ ®a«?c?Y ®a aaaa?aaa ‘++, ®!eY¤?Y?i ‘++ Y
¬®Faa ?a?®«i§®c ai a?Yae?ae?? a®ae ?« aa  ¤®aaa? :public,
private ? protected. ‚aY ?®«i ®!eY¤?Y?i ?¬Yia ¤®aaa?
private.

3. ?!eY¤?Y?i ??ae? «?§?aaiaai cYaY§ ?®¬?®Ya, ®!eic-
«Ye© ?Yace¬

union local87 (*
int i;
double d;
*) a = (* 20*);

4. ‘++ : ?!eY¤?Y?Y Y ¬®¦Ya ac aac®c ai c ?Ya aa??
?« aa . ?® Y ¬®¦Ya ic«iaiai ?a®?§c®¤e¬ ®a ? ?®F®-«?!®
?« aa  ?«? !eai ! §®ce¬ ?« aa®¬. ?!eY¤?Y?Y ¬®¦Ya ?¬Yai
?®aaaa?a®a.

5. ‘++ : ?®?¬eY ®!eY¤?Y?i Y ¬®Faa ?¬Yai ?®¬?®Y-
ae-aea?ae??.
˜YaYc?a«?¬eY ¤ eY

’?? ?YaYc?a«?¬ea ¤ ea a«a¦?a ¤«i ®!Ya?YcY?i ¬Y¬®?-
cYa??a ?¤Ya?ae?? a®a®c  !®a  aeY«®c?a«Yea § cY?©. ˜ ?a?-
¬Ya, a«Y¤aieYY ®!eic«Y?Y:

enum days (* sun, mon, tues, wed, thur, fri, sat *)
anyday;

aaa  c«?c Ya a?? «ie© ?aYFa «ie© a??, enum days,
?YaY¬Yai anyday ia®F® a??  ?  !®a a¬Ya a®a®c
(sun,mon,…), ?®a®ae¬ a®®acYaaacaia aeY«®c?a«YeY ?®aa –
ae.

Turbo C++ ¬®¦Ya aa ?ai a¬Ya a®ae c ®¤®¬ ! ©aY, Ya«?
ia® ?®§c®«iYa ¤? ? §® § cY?© a¬Ya a®a®c, ?®F¤  ce?«icY 
®?ae?i -b (?® a¬®«c ?i ®  c?«icY ; ia® ®§ c Ya, ca® ¤ –
eY a??  enum caYF¤  int), ® ?a? ?a?®«i§®c ?? ?a c cea ¦Y-
?ia ce?®«iYaai ia?a ¤ ea ?aY®!a §®c ?i ? a??a int.
?¤Ya?ae?? a®ae, ?a?®«i§aY¬eY c a??a?Y a¬Ya a®a®c, Yic®
?®«ac ia a?? unsigned char ?«? int, c § c?a?¬®aa? ®a § cY-
?© a¬Ya a®a®c. …a«? caY § cY?i ¬®Faa !eai ?aY¤aa c«Ye
a??®¬ unsigned char, a® ia® ? !a¤Ya a??®¬ ? ¦¤®F® a¬Ya a®-
a .

C++ ‚ ‘ ?YaY¬Y®© ?YaYc?a«?¬®F® a??  ¬®¦Ya !eai ?a?a-
c®Y® «i!®Y § cY?Y a??  int – ?a®¬Y ia®F®, ?? ?®F® ?®a-
a®«i a??  Y ce?®«iYaai. ‚ ‘++ ?YaY¬Y®© ?YaYc?a«?¬®F®
a??  ¬®¦Ya ?a?ac ?c aiai a®«i?® § cY?Y ®¤®F® ?§ YY a¬Y-
a a®a®c. ’ ??¬ ®!a §®¬,

anyday = mon; // a ? ¬®¦®
anyday = 1; // a ? Y«i§i, ¤ ¦Y a®ai mon == 1

?¤Ya?ae?? a®a days ic«iYaai ®?ae?® «ie¬ aYF®¬ ?YaYc?a-
«?¬®F® a?? ,?®a®ae© ¬®¦® ?a?®«i§®c ai c ?®a«Y¤aie?a ®!eic-
«Y?ia ?YaY¬Yea ?YaYc?a«?¬®F® a??  enum days:

enum days payday, holiday; // ®!eic«Y?Y ¤caa ?YaY¬Yea

‘++ ‚ ‘++ ?«icYc®Y a«®c® enum ¬®¦® ®?aaa?ai, Ya«? c
?aY¤Y« a ¤ ®F® ?®aY?aa  ?¬i days Y ¤a!«?aaYaai.

? ? ? c a«ac Y ®!eic«Y?© struct ? union, Ya«? ¤ «YY
?YaY¬YeY ¤ ®F® a??  enum Y aaY!aiaai, aYF ¬®¦Ya !eai
®?aeY:

– 70 –
enum (* sun, mon, tues, wed, thur, fri, sat *) anyday;
/*  ®?¬e© a?? enum */

˜®¤a®!®Y ®??a ?Y ?®aa a ?YaYc?a«?¬®F® a??  a¬.  
aaa. 17 ®a?F? « .

˜a¬Ya a®ae, ?YaYc?a«YeY caaa? ae?Faaea a?®!®?,  §e-
c iaai ?YaYc?a«?¬e¬? ?®aa a ¬?. ? ¦¤®© ?§ ?a  § c Yaai
ae??a?a®c ®Y aeY«®c?a«Y®Y § cY?Y. ˜a? ®aaaaaac?? ic®
§ ¤ ea ??ae? «?§ a®a®c ?Yace© a¬Ya a®a (sun) aaa  c«?c –
Yaai c ®«i,   ? ¦¤e© ?®a«Y¤aie?© a¬Ya a®a ?¬YYa § cY?Y
  Y¤??aea !®«ieY, cY¬ ?aY¤e¤ae?© (mon = 1, tue = 2 ? a.¤.).

˜a?  «?c?? icea ?aYFa «iea ??ae? «?§ a®a®c ce ¬®¦Y-
aY aaa ®c?ai ®¤? ?«? !®«YY a¬Ya a®a®c c ?®?aYaeY § cY-
?i. ‹i!eY ?®a«Y¤aie?Y ?¬Y  !Y§ ??ae? «?§ a®a®c !a¤aa
?®«ac ai ?a?a eY?Y c Y¤??aea. ˜ ?a?¬Ya, c a«Y¤aieY¬ ®!eic-
«Y??

/* cea ¦Y?Y ??ae? «?§ a®a  ¬®¦Ya c?«ic ai c aY!i a¬Y-
a a®ae, ®!eic«YeY a YY */
enum coins (* penny = 1, tuppence, nickel = penny + 4,
dime =10, quarter = nickel * nickel *) smallchange;

tuppence ?a?¬Ya § cY?Y 2, nickel – § cY?Y 5,  
quarter – § cY?Y 25.

??ae? «?§ a®a ¬®¦Ya !eai «i!e¬ cea ¦Y?Y¬, ¤ ie?¬ ?®«®-
¦?aY«i®Y ?«? ®aa?ae aY«i®Y aeY«®c?a«Y®Y § cY?Y (?®a«Y,
c®§¬®¦®, Y?®a®aea aeY«®c?a«Yea ?aY®!a §®c ?©.) ?!ec®
a ??Y § cY?i !ec ia a?? «ie¬?, ® ¤a!«?a®c ?Y ?a a ?¦Y
Y § ?aYeY®.

’?? enum ¬®¦Ya ac aac®c ai c® caYa ?®aaaa?ae?ia,¤®?aa-
? ie?a ?a?®«i§®c ?Y a??®c int.

enum days (* sun, mon, tues, wed, thur, fri, sat *) anyday;
enum days payday;
typedef enum days DAYS;
DAYS *daysptr;
int i = tues;
anyday = mon; // a ? ¬®¦®
*daysptr = anyday; // a ? ¬®¦®
mon = tues; // YcYa®: mon – ia® ?®aa a 

’YF? ?YaYc?a«?¬ea a??®c a §¤Y«iia ?a®aaa aac® ?¬Y a
aYF ¬? aaaa?aaa ? ®!eY¤?Y?©. ˜a¬Ya a®ae a §¤Y«iia ?a®aa-
a aac® ?¬Y a ®!ece¬? ?¤Ya?ae?? a®a ¬? ?YaY¬Yea:

int mon = 11;
(*
enum days (* sun, mon, tues, wed, thur, fri, sat *) anyday;
/* a¬Ya a®a mon a?aec Ya cYeYY ®!eic«Y?Y int mon */
struct days (* int i, j;); // YcYa®: ¤a!«?aaYaai aYF days
double sat; // YcYa®: ?YaY®?aY¤Y«Y?Y sat
*)
mon = 12; // a®c  c ?®aY?aaY int mon

C++ ‚ ‘++ a¬Ya a®ae, ®!eic«YeY c ?aY¤Y« a ?« a-
a ,?¬Yia ?®aY?aa ia®F® ?« aa .

‚ea ¦Y?i

‚ a !«?aeY 1.19 ?®? § ®, ? ??¬ ®!a §®¬ ?®¬!??aaiaai
?¤Ya?ae?? a®ae ? ®?Ya ae?? ¤«i a®aa c«Y?i Fa ¬¬ a?cYa?? cYa-
ea “aea §”.

– 71 –
‚ea ¦Y?Y¬  §ec Yaai ?®a«Y¤®c aY«i®aai ®?Ya ae?©, ®?Y-
a ¤®c ? ?a?aa a®a®c, § ¤ ie?a ®?aY¤Y«Y®Y cec?a«Y?Y.
”®a¬ «ie© a?a ?a?a, ?®? § e© c a !«?aeY 1.19, ®!®§ c Ya,
ca® cea ¦Y?i ®?aY¤Y«iiaai aY?aaa?c®: ?®¤-cea ¦Y?i ¬®Faa
!eai c«®¦Ye !Y§ ae®a¬ «iea ®Fa ?cY?©. (?¤ ?®, Ya«? ?®¬-
??«ia®a Y a¬®¦Ya ®!a !®a ai ? ?®Y-«?!® a«?e?®¬ a«®¦®Y ce-
a ¦Y?Y, a® !a¤Ya ce¤ ® a®®!eY?Y ®! ®e?!?Y).

‚ea ¦Y?i Turbo C++ ’ !«?ae  1.19
———————————————————–
?Yac?c®Y-cea ¦Y?Y:
«?aYa «
?aYc¤®-?YaY¬Y i
(cea ¦Y?Y)
this (a®«i?® ‘++)
:: ?¤Ya?ae?? a®a (a®«i?® ‘++)
:: ?¬i-aea?ae??-®?Ya ae?? (a®«i?® ‘++)
?¬i

«?aYa «:
aeY«®c?a«Y i-?®aa a 
a?¬c®«i i-?®aa a 
?®aa a -a-?« c ieY©-a®c?®©
aaa®? 

?¬i:
?¤Ya?ae?? a®a:
?¬i-aea?ae??-®?Ya ae?? (a®«i?® ‘++)
?¬i-aea?ae??-?aY®!a §®c ?i (a®«i?® ‘++)
?c «?ae?ae?a®c ®Y-?¬i (a®«i?® ‘++)

?c «?ae?ae?a®c ®Y-?¬i: (a®«i?® ‘++)
?¬i-?« aa  :: ?¤Ya?ae?? a®a
?¬i-?« aa  :: ?¬i-aea?ae??-®?Ya ae??
?¬i-?« aa  :: ?¬i-aea?ae??-?aY®!a §®c ?i
?¬i-?« aa  :: ?¬i-?« aa 
?¬i-?« aa  :: – ?¬i-?« aa 

?®aaae??a®Y-cea ¦Y?Y:
?Yac?c®Y-cea ¦Y?Y
?®aaae??a®Y-cea ¦Y?Y[cea ¦Y?Y]
?®aaae??a®Y-cea ¦Y?Y ()
?®aaae??a®Y-cea ¦Y?Y (
) (a®«i?® ‘++)
?®aaae??a®Y-cea ¦Y?Y . ?¬i ?®aaae??a®Y-cea ¦Y?Y -> ?¬i
?®aaae??a®Y-cea ¦Y?Y ++ ?®aaae??a®Y-cea ¦Y?Y —

a??a®?-cea ¦Y?©:
cea ¦Y?Y-?a?ac ?c ?i
a??a®?-cea ¦Y?© , cea ¦Y?Y-?a?ac ?c ?i

a a®Y-cea ¦Y?Y:
?®aaae??a®Y-cea ¦Y?Y
++ a a®Y-cea ¦Y?Y
— a a®Y-cea ¦Y?Y
a a i-®?Ya ae?i cea ¦Y?Y-?a?cY¤Y?i
sizeof a a®Y-cea ¦Y?Y
sizeof (?¬i-a?? )
cea ¦Y?Y-a a?aY¤Y«Y?i (a®«i?® ‘++)
cea ¦Y?Y-®a¬Ye-a a?aY¤Y«Y?i (a®«i?® ‘++)

a a i-®?Ya ae?i: ®¤® ?§
& * + – a?«i¤  !

cea ¦Y?Y-a a?aY¤Y«Y?i: (a®«i?® ‘++)
<::> new ?¬i-®Fa ?cY®F®-a??  ?- ae? «?§ a®a <::> new ?¬i-a??  ?ae? «?§ a®a>

– 72 –

¬Yaa®?®«®¦Y?Y: (a®«i?® ‘++)
(a??a®?-cea ¦Y?©)

?¬i-®Fa ?cY®F®-a?? : (a®«i?® ‘++)
a?Yae?ae?? a®a-a?? 

¤Y?« a a®a-®Fa ?cY?i: (a®«i?® ‘++)
®?Ya ae?i-a? § aY«i
¤Y?« a a®a-®Fa ?cY?i []

cea ¦Y?Y-®a¬Ye-a a?aY¤Y«Y?i: (a®«i?® ‘++)
<::> delete cea ¦Y?Y-?a?cY¤Y?i
<::> delete [cea ¦Y?Y] cea ¦Y?Y-?a?cY¤Y?i

cea ¦Y?Y-?a?cY¤Y?i:
a a®Y-cea ¦Y?Y
(?¬i-a?? ) cea ¦Y?Y-?a?cY¤Y?i

cea ¦Y?Y-a?? -aae«??:
cea ¦Y?Y-?a?cY¤Y?i
cea ¦Y?Y-a?? -aae«?? .* cea ¦Y?Y-?a?cY¤Y?i (a®«i?® ‘
++) cea ¦Y?Y-a?? -aae«?? -> cea ¦Y?Y-?a?cY¤Y?i (a®«i?® ‘+
+)

cea ¦Y?Y-a?? -a¬®¦Y?i:
cea ¦Y?Y-a?? -aae«??
cea ¦Y?Y-a?? -a¬®¦Y?i * cea ¦Y?Y-a?? -aae«??
cea ¦Y?Y-a?? -a¬®¦Y?i / cea ¦Y?Y-a?? -aae«??
cea ¦Y?Y-a?? -a¬®¦Y?i % cea ¦Y?Y-a?? -aae«??

cea ¦Y?Y-a?? -a«®¦Y?i:
cea ¦Y?Y-a?? -a¬®¦Y?i
cea ¦Y?Y-a?? -a«®¦Y?i + cea ¦Y?Y-a?? -a¬®¦Y?i
cea ¦Y?Y-a?? -a«®¦Y?i – cea ¦Y?Y-a?? -a¬®¦Y?i

cea ¦Y?Y-a?? -a¤c?F :
cea ¦Y?Y-a?? -a«®¦Y?i
cea ¦Y?Y-a?? -a¤c?F  > cea ¦Y?Y-a?? -a«®¦Y?i

cea ¦Y?Y-®a®eY?i:
cea ¦Y?Y-a?? -a¤c?F 
cea ¦Y?Y-®a®eY?i cea ¦Y?Y-a?? -a¤c?F 
cea ¦Y?Y-®a®eY?i = cea ¦Y?Y-a?? -a¤c?F 

cea ¦Y?Y-a?? -a cYaac :
cea ¦Y?Y-®a®eY?i
cea ¦Y?Y-a?? -a cYaac  = cea ¦Y?Y-®a®eY?i
cea ¦Y?Y-a?? -a cYaac  != cea ¦Y?Y-®a®eY?i

cea ¦Y?Y-?:
cea ¦Y?Y-a?? -a cYaac 
cea ¦Y?Y-? & cea ¦Y?Y-a?? -a cYaac 

cea ¦Y?Y-?a?«ic ieYY-?‹?:
cea ¦Y?Y-?
cea ¦Y?Y-?a?«ic ieYY-?‹? cea ¦Y?Y-«®F?cYa?®Y-?

cea ¦Y?Y-c?«ic ieYY-?‹?:
cea ¦Y?Y-?a?«ic ieYY-?‹?
cea ¦Y?Y-c?«ic ieYY-?‹? \! cea ¦Y?Y-?a?«ic ieYY-?‹?

cea ¦Y?Y-«®F?cYa?®Y-?:
cea ¦Y?Y-c?«ic ieYY-?‹?

– 73 –
cea ¦Y?Y-«®F?cYa?®Y-? && cea ¦Y?Y-c?«ic ieYY-?‹?

cea ¦Y?Y-«®F?cYa?®Y-?‹?:
cea ¦Y?Y-«®F?cYa?®Y-?
cea ¦Y?Y-«®F?cYa?®Y-?‹? !! cea ¦Y?Y-«®F?cYa?®Y-?

aa«®c®Y-cea ¦Y?Y:
cea ¦Y?Y-«®F?cYa?®Y-?‹?
cea ¦Y?Y-«®F?cYa?®Y-?‹? ? cea ¦Y?Y : aa«®c®Y-cea ¦Y?Y

cea ¦Y?Y-?a?ac®Y?i:
aa«®c®Y-cea ¦Y?Y
a a®Y-cea ¦Y?Y ®?Ya ae?i-?a?ac®Y?i cea ¦Y?Y-?a?ac®Y?i

®?Ya ae?i-?a?ac®Y?i: ®¤® ?§
= *= /=%= += -=
- 74 - ?aa®ae? a?c®aai ? ?a?®a?aYae ®?Ya ae?© Turbo C++ T !«?ae  1.20 ------------------------------------------------------------ ??Ya ae?? ?aa®ae? a?c®aai ------------------------------------------------------------ () [] -> :: . ‘«Yc – ?a c®
! a?«i¤  – ++ — & * ‘?a c – «Yc®
sizeof new delete .* ->* / % ‘«Yc – ?a c®
+ – ‘«Yc – ?a c®
> ‘«Yc – ?a c®
>= ‘«Yc – ?a c®
& ‘«Yc – ?a c®
^ ‘«Yc – ?a c®
\! ‘«Yc – ?a c®
&& ‘«Yc – ?a c®
\!\! ‘«Yc – ?a c®
?:aa«®c®Y cea ¦Y?Y ‘?a c – «Yc®
= += /= %= += -= ‘?a c – «Yc®
&= ^= \!= , ‘«Yc – ?a c®
————————————————————

˜a?®a?aYae ®!®§ c iaai?®a«Y¤®c aY«i®aaii a a?®«®¦Y?i
c ¤ ®© a !«?aeY. ˜Yace© i«Y¬Ya a !«?aee ?¬YYa  ?ceae?©
?a?®a?aYa.

‚ea ¦Y?i ? Turbo C++

‘++ ?®§c®«iYa ?YaYFaa§?a Y?®a®aea aa ¤ aaea ®?Ya ae?©
‘, ? ? ®??a ®  c? i a® aaa.125 ®a?F? « . ˜YaYFaa¦Y®©
 §ec Yaai a ? i ®?Ya ae?i, ?®a®a i ?a?¬Y?aY«i® ? cea ¦Y?-
i¬ a??  ?« aa  cY¤Ya aY!i Y?®a®ae¬ a?Yae? «ie¬ ®!a §®¬.
˜ ?a?¬Ya, ®?Ya a®a ®a®eY?i == ¬®¦Ya !eai ®?aY¤Y«Y c ?« a-
aY complex ¤«i ?a®cYa?? a cYaac  ¤caa ?®¬?«Y?aeac?aY«,
?a?cY¬ ¤Y©aac?Y YF® ¤«i a??®c ¤ ea ¤aaF?a ?« aa®c ®aa Yaai
?aY¦?¬. ˜YaYFaa¦Ye© ®?Ya a®a aY «?§aYaai ? ? aea?ae?i; ia 
aea?ae?i ®?aY¤Y«iYa a?? ®?Ya ¤ , ?¬YaieYY cea ¦Y?Y
(lvalue) ? ?®a«Y¤®c aY«i®aai cec?a«Y?©, aaa  c«?c Y¬ i
?a? ?a?®«i§®c ?? ?YaYFaa¦Y®F® ®?Ya a®a . ?¤ ?®, ?YaYF-
aa§?  Y ¬®¦Ya ?§¬Yiai ?a?®a?aYae ®?Ya ae?©. ? «®F?ce¬ ®!-
a §®¬, ‘++ ?®§c®«iYa ce?®«iai ®?aY¤Y«iY¬eY ?®«i§®c aY«Y¬
?aY®!a §®c ?i ¬Y¦¤a ®!eY?a ¬? ?« aa  ? aea¤ ¬Ya «ie¬? a?-
? ¬?. “ca?aY, ca® Y?®a®aeY ?a c?«  ®a®a?aY«i® ®?Ya ae?© ?
?aY®!a §®c ?©, ®!aa¦¤ Y¬eY c ¤ ®¬ a §¤Y«Y, Y?a?¬Y?¬e ?
cea ¦Y?i¬ c ‘++.

˜®a«Y¤®c aY«i®aai cec?a«Y?©

˜®a«Y¤®c aY«i®aai cec?a«Y?i ®?Ya ¤®c c cea ¦Y?ia
Turbo C++ Y ®?aY¤Y«Y , Ya«? ?®Y ic® Y § ¤ ® ®?Ya ae?Y©.
?®¬??«ia®a ?ea Yaai aY®aF ?§®c ai cea ¦Y?Y a ??¬ ®!a §®¬,
ca®!e a«ace?ai ? cYaac® FYYa?aaY¬®F® ?®¤ . ‘«Y¤®c aY«i®,
Y®!a®¤?¬  ®aa®a®¦®aai?a? a !®aY a cea ¦Y?i¬?, c ?®a®aea
§ cY?Y ¬®¤?ae?ae?aaYaai !®«YY ®¤®F® a § . ‚ aeY«®¬,a«Y¤aYa
?§!YF ai a®§¤ ?i cea ¦Y?©, ?®a®aeY ®¤®caY¬Y® ? ¬®¤?ae?-
ae?aaia, ? ?a?®«i§aia § cY?Y ®¤®F® ? a®F® ¦Y ®!eY?a .
˜ aa¬®aa?¬ cea ¦Y?Y

i = v[i++]; // i Y®?aY¤Y«Y®

‡ cY?Y i § c?a?a ®a a®F®, ce?®«iYaai «? ??aY¬Ya?-
a®c ?Y ¤® ?«? ?®a«Y ?a?ac®Y?i. ? «®F?ce¬ ®!a §®¬,

int total = 0;

– 75 –
sum = [total = 3] + (++total);// sum = 4 ?«? sum = 7 ??

?¬YYa Y®¤®§ c®aai ?¤Ya?ae?? a®a®c sum ? total. ˜Y-
eY?Y a®aa®?a c a®¬, ca®!e a?a®aa?ai cea ¦Y?Y ?a? ?®¬®e?
caY¬Y®© ?YaY¬Y®©:

int temp, temp = 0;
temp = ++total;
sum = (total = 3) + temp;

?®F¤  a?a ?a?a?a?a¤?aY«i® aaa  c«?c Ya ?®a«Y¤®c –
aY«i®aai cec?a«Y?i ®?Ya ¤®c, a® ¬®¦YaacYeY cec?a«Y?i
c ®¤®© ?®aaaa?ae?? Y a®¤Ya¦ a ®? a®aa? Y®¤®§ c®aa?:

sum = (i = 3, i++, i++); // a ? ¬®¦®: sum = 4, i = 5

? ¦¤®Y ?®¤-cea ¦Y?Y ?«? cea ¦Y?Y a § ?iae¬? cec?a«i-
Yaai a«Yc – ?a c®, ? caY cea ¦Y?Y c aeY«®¬ cec?a«iYaai ?®-
 ?a c«Y?i ? a ¬®¬a ?a c®¬a § cY?i.

Turbo C++ ?YaYFaa???aaYa cea ¦Y?i, aY®aF ?§®cec i  a-
a®ae? a?ceY ? ?®¬¬aa a?ceY ®?Ya ae?? Y§ c?a?¬® ®a  «?c?i
?aaF«ea a?®!®?, a aY¬, ca®!e ?®«ac?ai iaeaeY?a?c® ?®¬??«?aaY-
¬®Y cea ¦Y?Y; aY®aF ?§ ae?i cea ¦Y?i ? c ?®Y¬ a«ac Y Y
c«?iYa   aY§a«ia acec?a«Y?i cea ¦Y?i.

?aaF«eY a?®!?? ¬®¦® ?a?®«i§®c ai ¤«i a®F®, ca®!e ?a?-
a¤?aY«i® § ¤ ai ?®ai¤®? cec?a«Y?© c cea ¦Y??. ˜ ?a?¬Ya,
Ya«? ?¬Yiaai ?YaY¬YeY a, b, c ? f, a® cea ¦Y?Y f=a+(b+c)
ce§ec Ya a c «  cec?a«Y?Y (b+c),   § aY¬ a¦Y a«®¦Y?Y aY-
§a«ia a  a a.

?e?!?? ? ?YaY?®«Y?i

‚® caY¬i cec?a«Y?i cea ¦Y?i Turbo C++ ¬®¦Ya caaaYa?ai
¬®F?Y ?a®!«Y¬ a?ceY a?aa ae??, ? ? a® ¤Y«Y?Y   ®«i ?«?
?®«acY?Y § cY?© a ?« c ieY© a®c?®©, cea®¤ie?a §  ?aY¤Y«e
¤®?aaa?¬®F® ¤? ? §® . ˜YaY?®«Y?Y aeY«®c?a«Yea § cY?©
?F®a?aaYaai (‘ ?a?®«i§aYa  a?ae¬Ya?cYa??Y ¤Y©aac?i ?® ¬®¤a«i
2 c n-a §ai¤ea aYF?aaa a), ®¤ ?® ®e?!??, ®! aa¦?c Y¬eY
¬ aY¬ a?cYa??¬? !?!«?®aYce¬? aea?ae?i¬?, ¬®Faa ®!a ! aec ai-
ai aa ¤ aae¬? ?«? ®?aY¤Y«iY¬e¬? ?®«i§®c aY«Y¬ ?®¤?a®Fa ¬-
¬ ¬?. ‘¬. matherr ? signal c ‘?a c®c??Y ?® ˜?!«?®aY?Y.

– 76 –
‘Y¬ a??  ®?Ya ae?©

???a eY §¤Yai ®?Ya ae?? Turbo C++ ic«iiaai ®?Ya ae?i¬?
aa ¤ aa  ANSI C.

…a«? ®?Ya ae?? Y ?YaYFaa¦Ye, a® a«Y¤aie i ?ae®a¬ ae?i
¤Y©aac?aY«i  ? ? ¤«i ‘, a ? ? ¤«i ‘++. ‚ ‘++ ce ¬®¦YaY ?Y-
aYFaa§?ai caY ia? ®?Ya ae??, §  ?a?«icY?Y¬ ®?Ya ae?? . (®?Y-
a ae?i § ¤ ?i ?®¬?®Ya ) ? ?: (aa«®c i ®?Ya ae?i) (a ?¦Y Y
¬®Faa !eai ?YaYFaa¦Ye ®?Ya ae?? ‘++ :: ? .*).

…a«? ®?Ya ae?i ?YaYFaa¦Y , a® ?a?c®¤?¬eY §¤Yai acY¤Y?-
i¤«i YY Y¤Y©aac?aY«ie.’ !«?ae  1.19   aaa.74 ®a?F? « 
?a?c®¤?a a?a ?a?a ¤«i caYa ®?Ya ae?© ? cea ¦Y?© a ®?Ya ae?i-
¬?.
˜®aaae??aeY ? ?aYae??aeY ®?Ya ae??

?Yaai ?®aaae??aea ®?Ya ae?© [] () . -> ++? — ?a?®«i§a-
iaai ¤«i ?®aaa®Y?i ?®aaae??aea cea ¦Y?©, ?®? § ea c a !-
«?aeY a?a ?a?a  cea ¦Y?© (a !«?ae  1.19). ??Ya ae??
??aY¬Ya  ? ¤Y?aY¬Ya  (++ ? –) a ?¦Y ic«iiaai ?aYae??ae¬?
? a ae¬? ®?Ya ae?i¬?;®? ®!aa¦¤ iaai,  c? i a® aaa.79
®a?F? « .

??Ya ae?i ?¤Y?a ae?? ¬ aa?c  [] ————————–

‚ cea ¦Y??

?®aaae??a®Y-cea ¦Y?Y [cea ¦Y?Y]

c ‘, ® Y ®!i§ aY«i® c ‘++, cea ¦Y?Y cea ¦1[cea ¦2]
®?aY¤Y«iYaai ? ?

*((cea ¦1) + (cea ¦2))

F¤Y «?!® cea ¦1 ia® a? § aY«i,   cea ¦2 ia® aeY«®c?a«Y-
®Y § cY?Y, «?!® cea ¦1 ia® ia® aeY«®c?a«Y®Y § cY?Y,  
cea ¦1 ia® a? § aY«i. (? ¦¤e© ?§ ?a?aa a®a®c [], * ? + ¬®-
¦Ya !eai ?YaYFaa¦Y c ‘++).

??Ya ae?i ce§®c  aea?ae?? ()

‚ea ¦Y?Y

?®aaae??a®Y-cea ¦Y?Y()

?aY¤aa c«iYa a®!®© ce§®c aea?ae??, § ¤ c Y¬®© ?®aaae??a-
e¬ cea ¦Y?Y¬. ‘??a®?- aFa¬Ya®c-cea ¦Y?i – ia® a §¤Y«iY-
¬e© § ?ia®© a??a®? cea ¦Y?i «i!®F® a?? , § ¤ ie?©
ae ?a?cYa??Y (?«? ¤Y©aac?aY«ieY)  aFa¬Yae aea?ae??. ‡ cY?Y
a ¬®F® cea ¦Y?i ce§®c  aea?ae??, Ya«? ®® c®®!eY ?¬YYa ¬Ya-
a®, ®?aY¤Y«iYaai ®?Ya a®a®¬ c®§ca a  c ®?aY¤Y«Y?? aea?ae??.
‘¬. “‚e§®ce aea?ae?© ? ?aY®!a §®c ?i  aFa¬Ya®c”   aaa.63
®a?F? « , F¤Y ?a?c®¤?aai !®«YY ?®a®!®Y ?§«®¦Y?Y ce§®c 
aea?ae?©.

??Ya ae?i § ¤ ?i ?®¬?®Ya  aaaa?aaae/®!eY¤?Y?i . (a®c? )

‚ cea ¦Y??

?®aaae??a®Y-cea ¦Y?Y . ?¤Ya?ae?? a®a

?®aaae??a®Y-cea ¦Y?Y¤®«¦® ?¬Yai a?? aaaa?aaae ?«?
®!eY¤?Y?i; ?¤Ya?ae?? a®a ¤®«¦Y ic«iaiai ?¬YY¬ ?®¬?®Ya 
¤ ®© aaaa?aaae ?«? ®!eY¤?Y?i. ‚ea ¦Y?Y ®!®§ c Ya ®!e-
Y?a – ?®¬?®Ya aaaa?aaae ?«? ®!eY¤?Y?i. ‡ cY?Y¬ ¤ ®F®
cea ¦Y?i !a¤Ya ic«iaiai § cY?Y ce!a ®F® a ??¬ ®!a §®¬
?®¬?®Ya ; ®® !a¤Ya ic«iaiai ?¬Yaie?¬ cea ¦Y?Y¬ (lvalue)

– 77 –
c a®¬ ? a®«i?® a®¬ a«ac Y, Ya«? ?¬Yaie?¬ cea ¦Y?Y¬ ic«iYa-
ai a ¬® ?®aaae??a®Y cea ¦Y?Y. ˜®¤a®!®Y ®??a ?Y ?a?®«i§®-
c ?i ®?Ya ae?© . ? -> ¤ Yaai   aaa.66 ®a?F? « .

?¬Yaie?Y cea ¦Y?i ®?aY¤Y«iiaai   aaa.28 ®a?F? « .

??Ya ae?i a? § aY«i aaaa?aaae/®!eY¤?Y?i ->

‚ cea ¦Y??

?®aaae??a®Y-cea ¦Y?Y -> ?¤Ya?ae?? a®a

¤®«¦® ?¬Yaia?? a? § aY«i aaaa?aaae ?«? a? § aY«i ®!e-
Y¤?Y?i; ?¤Ya?ae?? a®a ¦Y ¤®«¦Y !eai ?¬YY¬ ?®¬?®Ya 
ia®© aaaa?aaae?«? ®!eY¤?Y?i. ‚ea ¦Y?Y ®!®§ c Ya ®!eY?a –
?®¬?®Ya aaaa?aaae ?«? ®!eY¤?Y?i. ‡ cY?Y¬ ¤ ®F® cea –
¦Y?i !a¤Ya ic«iaiai § cY?Y ce!a ®F® a ??¬ ®!a §®¬ ?®¬-
?®Ya ; ®® !a¤Ya ic«iaiai ?¬Yaie?¬ cea ¦Y?Y¬ (lvalue) c
a®¬ ? a®«i?® a®¬ a«ac Y, Ya«? ?¬Yaie?¬ cea ¦Y?Y¬ ic«iYaai
a ¬® ?®aaae??a®Y cea ¦Y?Y.

??Ya ae?i ?®aaae??a®F® ??aY¬Ya  ++

‚ cea ¦Y??

?®aaae??a®Y-cea ¦Y?Y++
®?Ya ¤®¬ ic«iYaai ?®aaae??a®Y cea ¦Y?Y:
®® ¤®«¦® !eai a? «ia®F® a??  ( a?ae¬Ya?cYa?®F® ?«?
a??  a? § aY«i) ? ¤®«¦® ic«iaiai ¬®¤?ae?ae?aaY¬e¬ ?¬Yaie?¬
cea ¦Y?Y¬ (!®«YY ?®¤a®! i ?ae®a¬ ae?i ®! ?¬Yaie?a cea ¦Y-
?ia ?a?c®¤?aai   aaa.28 ®a?F? « .) ˜®aaae??a ++ a ?¦Y  –
§ec ia ®?Ya ae?Y© ?®aa??aY¬Ya . ‡ cY?Y¬ caYF® cea ¦Y?i
ic«iYaai § cY?Y ?®aaae??a®F® cea ¦Y?i ¤® ce?®«Y?i ??-
aY¬Ya . ˜®a«Y cec?a«Y?i ?®aaae??a®F® cea ¦Y?i ®?Ya ¤ ?-
?aY¬Ya?aaYaai   1.

‚Y«?c?  ??aY¬Ya  § c?a?a ®a a??  ®?Ya ¤ . ‡ cY?i
a??  a? § aY«i cec?a«iiaai ?® ?a c?« ¬  a?ae¬Ya?cYa??a ¤Y©a-
ac?© a a? § aY«i¬?.

˜®aaae??a i ®?Ya ae?i ¤Y?aY¬Ya  —

˜®aaae??a i ®?Ya ae?i ¤Y?aY¬Ya , a ?¦Y ?§cYaa i ? ?
?®aa¤Y?aY¬Ya, ?®¤c?iYaai aY¬ ¦Y ?a c?« ¬, ca® ? ®?Ya ae?i
?®aaae??a®F® ??aY¬Ya , §  ?a?«icY?Y¬ a®F®, ca® Y¤??ae 
?®a«Y cec?a«Y?icea ¦Y?i cec?a Yaai.

??Ya ae?? ??aY¬Ya  ? ¤Y?aY¬Ya 

˜Yace¬? ¤ca¬i a ae¬? ®?Ya ae?i¬? ic«iiaai ®?Ya ae?? ++
? –. ˜a? ®?Ya ae?? !ec ia ? ? ?®aaae??ae¬?, a ? ? ?aYae??ae-
¬?, ? ?®ia®¬a ®!aa¦¤ iaai c ¤ ®F¬a §¤Y«Y. ‡ aY¬ a aa¬ aa?-
c iaai ®aa «ieY eYaai ?aYae??aea ®?Ya ae?©.

??Ya ae?i ?aYae??a®F® ??aY¬Ya  ++

‚ cea ¦Y??

++ a a®Y-cea ¦Y?Y

®?Ya ¤®¬ ic«iYaai a a®Y cea ¦Y?Y:
®® ¤®«¦® !eai a? «ia®F® a??  ( a?ae¬Ya?cYa?®F® ?«?
a??  a? § aY«i) ? ¤®«¦® ic«iaiai ¬®¤?ae?ae?aaY¬e¬ ?¬Yaie?¬
cea ¦Y?Y¬. ??Ya ae?i ?aYae??a®F® ??aY¬Ya  a ?¦Y  §ec ia
®?Ya ae?Y© ?aY??aY¬Ya . ??Ya ¤ ??aY¬Ya?aaYaai   1 ¤®
cec?a«Y?i cea ¦Y?i; § cY?Y¬ caYF® cea ¦Y?i ic«iYaai ?-
?aY¬Ya?a®c ®Y § cY?Y ®?Ya ¤ . ‚Y«?c?  ??aY¬Ya  § –

– 78 –
c?a?a ®a a??  ®?Ya ¤ . ‡ cY?i a??  a? § aY«i cec?a«iiaai
?® ?a c?« ¬  a?ae¬Ya?cYa??a ¤Y©aac?© a a? § aY«i¬?.

˜aYae??a i ®?Ya ae?i ¤Y?aY¬Ya  —

˜aYae??a i ®?Ya ae?i ¤Y?aY¬Ya , a ?¦Y ?§cYaa i ? ?
?aY¤Y?aY¬Ya, ?¬YYa a«Y¤aie?© a?a ?a?a:

–a a®Y-cea ¦Y?Y

? ?®¤c?iYaai aY¬ ¦Y ?a c?« ¬, ca® ? ®?Ya ae?i ?aYae??a-
®F® ??aY¬Ya , §  ?a?«icY?Y¬ a®F®, ca® Y¤??ae  ?YaY¤ ce-
c?a«Y?Y¬ cea ¦Y?i cec?a Yaai.

“ aeY ®?Ya ae??

‘aeYaacaYa eYaai a aea ®?Ya ae?© (?a®¬Y ++ ? –):
. * + – a?«i¤  ? !. ?a a?a ?a?a:

a a i-®?Ya ae?i cea ¦Y?Y-?a?cY¤Y?i

cea ¦Y?Y-?a?cY¤Y?i:
a a®Y-cea ¦Y?Y
(?¬i-a?? ) cea ¦Y?Y-?a?cY¤Y?i

??Ya ae?i  ¤aYa ae?? &

‘?¬c®« & a ?¦Y ?a?®«i§aYaai c ‘++ ¤«i § ¤ ?i aae«®cea
a??®c ¤ ea. ‘¬. aaa.98 ®a?F? « .

??Ya ae??& ? * (®?Ya ae?i * ®??a   c a«Y¤aieY¬ a §¤Y«Y)
?a?®«i§aiaai a®c¬Yaa® c ? cYaacY ®?Ya ae?© aaa ®c?? aae«??
? ®!a ¦Y?i ?® aae«?Y (a §e¬Y®c ?i). ‚ cea ¦Y??

& cea ¦Y?Y-?a?cY¤Y?i

®?Ya ¤ cea ¦Y?Y-?a?cY¤Y?i¤®«¦Yic«iaiai «?!® ®!®§ –
cY?Y¬ aea?ae??, «?!® ?¬Yaie?¬ cea ¦Y?Y¬, ®!®§ c ie?¬ ®!e-
Y?a, Y ic«iie?©ai !?a®ce¬?®«Y¬ ? Y ?¬Yie?© a?Yae?ae?? a®a
?« aa  ? ¬ia? register. …a«? ®?Ya ¤ ?¬YYa Y?®a®ae© a??
type, a® aY§a«ia a®¬ ®?Ya ae?? !a¤Ya a? § aY«i   type.

?a¬Ya?¬, ca® Y?®a®aeY Y ic«iie?Yai ?¬Yaie?¬ cea ¦Y-
?Y¬ ?¤Ya?ae?? a®ae, a ??Y ? ? ?¬Y  aea?ae?© ? ?¬Y  ¬ aa?-
c®c,  ca®¬ a?cYa?? ?aY®!a §®cec iaai c ®?aY¤Y«Y®¬ ?®aY?a-
aY ? a??a “a? § aY«i   X”. ??Ya ae?i & ?a?®«i§®c ai a a ??¬?
®!eY?a ¬? ¬®¦®, ® a ? i ®?Ya ae?i !a¤Ya ic«iaiai ?§!ea®c®©
? !a¤Ya ®a¬YY  ?®¬??«ia®a®¬.

˜ aa¬®aa?¬ a«Y¤aie?© aea F¬Ya:

type t1 =1, t2 = 2;
type *ptr = &t1; // ??ae? «?§?a®c e© a? § aY«i
*ptr = t2; // a®a ¦Y iaeaeY?a, ca® ? t1 = t2

?a¬Ya?¬, ca® type *ptr = &t1 ®!a ! aec Yaai ? ?

T *ptr;
ptr = &t1;

a ? ca® ?a?ac ?c Yaai Y *ptr,   ptr. ˜®a«Y ??ae? «?§ –
ae?? ptr ¤aYa®¬&t1 YF® ¬®¦® ?a?®«i§®c ai ¤«i ®!a eY?i ?®
aae«?Y ? ?®«ac?ai ?¬YaieYY cea ¦Y?Y *ptr.

??Ya ae?i ®!a eY?i ?® aae«?Y *

‚ cea ¦Y??

– 79 –

* cea ¦Y?Y-?a?cY¤Y?i

®?Ya ¤ cea ¦Y?Y-?a?cY¤Y?i ¤®«¦Y ?¬Yai a?? “a? § –
aY«i   type”, F¤Y type ia® «i!®© a??. ˜Y§a«ia a®¬ ®!a eY?i
?® aae«?Y ?¬YYaa?? type.…a«? ®?Ya ¤ ?¬YYa a?? “a? § aY«i
aea?ae??”, a® aY§a«ia a®¬ !a¤Ya ic«iaiai ®!®§ cY?Y aea?ae??;
Ya«? ®?Ya ¤®¬ ic«iYaai a? § aY«i   ®!eY?a, a® aY§a«ia a®¬
!a¤Ya ?¬YaieYY cea ¦Y?Y, ®!®§ c ieYY ¤ e© ®!eY?a. ‚
a«Y¤aie?a a?aa ae?ia aY§a«ia a ®!a eY?i ?® aae«?Y Y®?aY¤Y-
«Y:

1. ‚ea ¦Y?Y-?a?cY¤Y?i ia® ?aaa®© (null) a? § aY«i.
2. ‚ea ¦Y?Y-?a?cY¤Y?i ia®  ¤aYa ¤? ¬?cYa?®© «®? «i-
®© ?YaY¬Y®©,   ce?®«Y?Y ®!eY¬«ieYF® !«®?  a¦Y § cYaeY-
®.

“ a i ®?Ya ae?i ?«ia +

‚ cea ¦Y??

+cea ¦Y?Y-?a?cY¤Y?i

®?Ya ¤ cea ¦Y?Y-?a?cY¤Y?i ¤®«¦Y !eai
 a?ae¬Ya?cYa?®F® a?? . ˜Y§a«ia a®¬ ic«iYaai § cY?Y ®?Ya ¤ 
?®a«Y «i!ea aaY!aY¬ea ?aYFa «iea ¤Y©aac?©.

“ca i ®?Ya ae?i ¬?aa –

‚ cea ¦Y??

-cea ¦Y?Y-?a?cY¤Y?i

®?Ya ¤ cea ¦Y?Y-?a?cY¤Y?i ¤®«¦Y !eai  a?ae¬Ya?cYa?®-
F® a?? . ˜Y§a«ia a®¬ ic«iYaai ®aa?ae aY«i®Y § cY?Y ®?Ya –
¤  ?®a«Y «i!ea aaY!aY¬ea ?aYFa «iea ¤Y©aac?©.

??Ya ae?i ?®a §ai¤®F® ¤®?®«Y?i (a?«i¤ )

‚ cea ¦Y??

cea ¦Y?Y-?a?cY¤Y?i

®?Ya ¤ cea ¦Y?Y-?a?cY¤Y?i ¤®«¦Y !eai ?aYFa «i®F®
a?? .˜Y§a«ia a®¬ ic«iYaai ?®a §ai¤®Y ¤®?®«Y?Y ®?Ya ¤ 
?®a«Y «i!ea aaY!aY¬ea ?aYFa «iea ¤Y©aac?©. ? ¦¤e© !?a a®
§ cY?Y¬ 0 aaa  c«?c Yaai c 1,   ? ¦¤e© Y¤??ce© !?a ®?Y-
a ¤  aaa  c«?c Yaai c 0.

??Ya ae?i «®F?cYa?®F® ®aa?ae ?i !

‚ cea ¦Y??

!cea ¦Y?Y-?a?cY¤Y?i

®?Ya ¤ cea ¦Y?Y-?a?cY¤Y?i ¤®«¦Y !eai a? «ia®F® a?-
? . ˜Y§a«ia a ?¬¬Ya a?? int ? ?aY¤aa c«iYa a®!®© «®F?cYa?®Y
®aa?ae ?Y ®?Ya ¤ : 0 ?a? Ya«Yc®¬ ®?Ya ¤Y ? 1 c a«ac Y
a«Yc®F® ®?Ya ¤ . ‚ea ¦Y?Y !E i?c?c «Ya® cea ¦Y?i (0 ==
…).
??Ya ae?i sizeof

‘aeYaacaYa ¤c  a §¤Y«iea a?®a®!  ?a?®«i§®c ?i ®?Ya –
ae?? sizeof:

sizeof a a®Y-cea ¦Y?Y
sizeof (?¬i-a?? )

– 80 –

˜ §¬Ya ce¤Y«iY¬®© ¤«i ? ¦¤®F® a??  ? ¬ia? § c?a?a ®a
?®?aYa®© ¬ e?e.

‚ ®!®?aaac iaaY§a«ia a ?aY¤aa c«iYa a®!®© aeY«®c?a«Yai
?®aa aa, cea ¦ ieai a §¬Ya c ! ©a a ®!« aa?? ¬ia?, § ?¬ –
Y¬®© ®?Ya ¤®¬ (®?aY¤Y«iY¬e© §  Y?®a®ae¬? ?a?«icY?i¬? a?-
?®¬ ®?Ya ¤ ). ‚ ?Yac®¬ a«ac Y a?? cea ¦Y?i ®?Ya ¤  ®?aY-
¤Y«iYaai !Y§ a acYa  cea ¦Y?i (? a«Y¤®c aY«i®, !Y§
?®!®cea iaeaeY?a®c). …a«? ®?Ya ¤ ?¬YYa a?? char (signed ?«?
unsigned), a® ®?Ya ae?i sizeof ¤ Ya c aY§a«ia aY1. …a«? ®?Y-
a ¤ Y ic«iYaai ? a ¬Yaa®¬ ? ?¬YYa a?? ¬ a?c , a® aY§a«ia a
?aY¤aa c«iYa a®!®© ®!eYY ?®«?cYaac® ! ©a®c c ¬ aa?cY (¤aaF?-
¬? a«®c ¬?, ?¬i ¬ aa?c  Y ?aY®!a §®c c Yaai ? a??a a? § aY-
«i). —?a«® i«Y¬Ya®c ¬ aa?c  a c® sizeof ¬ aa?c/sizeof ¬ a-
a?c[0].
…a«? ®?Ya ¤ ic«iYaai ? a ¬Yaa®¬, ®!eic«Ye¬ ? ?
¬ aa?c ?«? aea?ae?i, sizeof ¤ Ya a §¬Ya a? § aY«i. ˜a?¬Y?-
aY«i® ? aaaa?aaa ¬ ? ®!eY¤?Y?i¬ sizeof ¤ Ya ®!eYY c?a«®
! ©a®c, c?«ic ieYY «i!eY a?¬c®«e-§ ?®«?aY«?.

–Y«®c?a«Ye© a?? aY§a«ia a  ®?Ya ae??sizeof  §ec Yaai
size_t, ®?aY¤Y«Ye© ? ? unsigned int c stddef.h.

?®¦® ?a?®«i§®c ai sizeof c ¤?aY?a?c a ?aY?a®aeYaa®a ;
ia® ®a®!Y®aai Turbo C++.

C++: ‚ ‘++ sizeof(a?? ?« aa ), F¤Y a?? ?« aa  ic«iYaai
?a®?§c®¤e¬ ®a ? ?®F®-«?!® ! §®c®F® ?« aa , c®§ca e Ya a §-
¬Ya ! §®c®F® ?« aa .

??Ya ae?? a??  a¬®¦Y?i

‘aeYaacaYa aa? ®?Ya ae?? a??  a¬®¦Y?i: * / ? %. ‘?-
a ?a?a ia?a ®?Ya ae?© a«Y¤aie?©:

cea ¦Y?Y-a?? -a¬®¦Y?i:
cea ¦Y?Y-?a?cY¤Y?i
cea ¦Y?Y-a?? -a¬®¦Y?i * cea ¦Y?Y-?a?cY¤Y?i
cea ¦Y?Y-a?? -a¬®¦Y?i / cea ¦Y?Y-?a?cY¤Y?i
cea ¦Y?Y-a?? -a¬®¦Y?i % cea ¦Y?Y-?a?cY¤Y?i

??Ya ¤e ®?Ya ae?© * (a¬®¦Y?i) ? / (¤Y«Y?i) ¤®«¦e
!eai  a?ae¬Ya?cYa?®F® a?? . ??Ya ¤e ®?Ya ae?? % (¤Y«Y?Y ?®
¬®¤a«i,?«? ®aa a®?) ¤®«¦e !eai ?aYFa «i®F® a?? . ‘ ®?Y-
a ¤ ¬? ce?®«iiaai ®!eceY  a?ae¬Ya?cYa??Y ?aY®!a §®c ?i
(a¬. aaa.41 ®a?F? « ).
˜Y§a«ia a®¬ ce?®«Y?i ®?Ya ae?? (®?Ya ¤1 * ®?Ya ¤2)
ic«iYaai ?a®?§cY¤Y?Y ¤caa ®?Ya ¤®c. ˜Y§a«ia a ¬? ®?Ya ae?©
(®?Ya ¤1 / ®?Ya ¤2) ? (®?Ya ¤1 % ®?Ya ¤2) ic«iiaai c aa-
®Y ? ®aa a®? ®a ¤Y«Y?i, a®®acYaaacY®, F¤Y ®?Ya ¤1 ¤Y-
«?aai   ®?Ya ¤2, ?a? aa«®c??, ca® ®?Ya ¤2 Y a cY a«i.
?a?®«i§®c ?Y ®?Ya ae?© / ? % a a«Yce¬ ¤Y«?aY«Y¬ ¤ Ya ®e?!-
?a.

…a«? ®?Ya ¤1 ? ®?Ya ¤2 ?¬Yia aeY«®c?a«Ye© a??,  
c aa®Y Y ic«iYaai aeY«e¬, a® aY§a«ia ae ®?Ya ae?? a«Y¤aie?Y:

1. …a«? ®?Ya ¤1 ? ®?Ya ¤2 ?¬Yia ®¤? ?®ce© § ?, a®
®?Ya ¤1/ ®?Ya ¤2 Yaai  ?!®«ieYY aeY«®Y, ¬YieYY cY¬ ?aa?-
®Y c aa®Y,   ®?Ya ¤1 % ®?Ya ¤2 ?¬YYa a®a ¦Y § ?, ca® ?
®?Ya ¤1.

2. …a«? ®?Ya ¤1 ? ®?Ya ¤2 ?¬Yia a §eY § ??, a® ®?Y-
a ¤1/ ®?Ya ¤2 Yaai  ?¬YieYY aeY«®Y, !®«ieYY cY¬ ?aa?®Y-
c aa®Y,   ®?Ya ¤1 % ®?Ya ¤2 ?¬YYa a®a ¦Y § ?, ca® ? ®?Y-
a ¤1.

– 81 –

??aaF«Y?Y caYF¤  ce?®«iYaai ? a«i.
??Ya ae?? a??  a«®¦Y?i

‘aeYaacaYa ¤cY ®?Ya ae?? a??  a«®¦Y?i: + ? -. ‘?a ?a?a
ia?a ®?Ya ae?© a«Y¤aie?©:

cea ¦Y?Y-a?? -a«®¦Y?i:
cea ¦Y?Y-a?? -a¬®¦Y?i
cea ¦Y?Y-a?? -a«®¦Y?i + cea ¦Y?Y-a?? -a¬®¦Y?i
cea ¦Y?Y-a?? -a«®¦Y?i – cea ¦Y?Y-a?? -a¬®¦Y?i

??Ya ae?i a«®¦Y?i +

„®?aaa?¬e¬? ic«iiaai a«Y¤aie?Y a??e ®?Ya ¤®c cea ¦Y?i
®?Ya ¤1 + ®?Ya ¤2:

1. ??Ya ¤1 ? ®?Ya ¤2 ®!   a?ae¬Ya?cYa?®F® a?? .

2. ??Ya ¤1 ?aYFa «i®F® a?? ,   ®?Ya ¤2 ic«iYaai
a? § aY«Y¬   ®!eY?a.

3. ??Ya ¤2 ?aYFa «i®F® a?? ,   ®?Ya ¤1 ic«iYaai
a? § aY«Y¬   ®!eY?a.

‚ ?Yac®¬ a«ac Y ce?®«iiaai aa ¤ aaeY  a?ae¬Ya?cYa??Y
?aY®!a §®c ?i ®?Ya ¤®c,   aY§a«ia a®¬ ic«iYaai ?a  a?ae¬Y-
a?cYa? i aa¬¬ . ‚ a«ac ia 2 ? 3 ?a?¬Yiiaai ?a c?«   a?ae¬Y-
a?cYa??a ¤Y©aac?© a a? § aY«i¬?. (?a?ae¬Ya?cYa??Y ¤Y©aac?i a
a? § aY«i¬? a aa¬ aa?c iaai   aaa.57 ®a?F? « ).

??Ya ae?i cec?a ?i –

„®?aaa?¬e¬? ic«iiaai a«Y¤aie?Y a??e ®?Ya ¤®c cea ¦Y?i
®?Ya ¤1 – ®?Ya ¤2:

1. ??Ya ¤1 ? ®?Ya ¤2 ®!   a?ae¬Ya?cYa?®F® a?? .

2. ?!  ®?Ya ¤  ic«iiaai a? § aY«i¬?   a®c¬Yaa?¬eY a?-
?e ®!eY?a®c. (˜a?¬Yc ?Y: Y?c «?ae?ae?a®c e© a?? type a aa-
¬ aa?c Yaai ? ? a®c¬Yaa?¬e© a ?c «?ae?ae?a®c e¬? a?? ¬?
const type, volatile type ? const volatile type.)

3. ??Ya ¤2 ?aYFa «i®F® a?? ,   ®?Ya ¤1 ic«iYaai
a? § aY«Y¬   ®!eY?a.

‚ ?Yac®¬ a«ac Y ce?®«iiaai aa ¤ aaeY  a?ae¬Ya?cYa??Y
?aY®!a §®c ?i ®?Ya ¤®c,   aY§a«ia a®¬ ic«iYaai ?a  a?ae¬Y-
a?cYa? i a §®aai. ‚ a«ac ia 2 ? 3 ?a?¬Yiiaai ?a c?«   a?ae-
¬Ya?cYa??a ¤Y©aac?© a a? § aY«i¬?.

??Ya ae?? ?®a §ai¤®F® a¤c?F 

‘aeYaacaYa ¤cY ®?Ya ae?? ?®a §ai¤®F® a¤c?F : >.
‘?a ?a?a ia?a ®?Ya ae?© a«Y¤aie?©:

cea ¦Y?Y-a?? -a¤c?F :
cea ¦Y?Y-a?? -a«®¦Y?i
cea ¦Y?Y-a?? -a¤c?F  > cea ¦Y?Y a??  a¤c?F 

??Ya ae?i ?®a §ai¤®F® a¤c?F  c«Yc® - 82 - int. ‘ …1 ? …2 ce?®«iiaai ®!eceY aeY«®c?a«YeY ¤Y©aac?i,   a?? aY§a«ia a  ®?aY¤Y«iYaai ®?Ya ¤®¬ …1. …a«? …2 ®aa?ae aY- «Y, «?!® ?® c?a«a a §ai¤®c !®«ieY ?«? a cY …1, a® ®?Ya ae?i Y®?aY¤Y«Y . ˜Y§a«ia a®¬ ®?Ya ae?? E1 >

‚ cea ¦Y?? E1 >> E2 ®?Ya ¤e …1 ? …2 ¤®«¦e ?¬Yai a??
int. ‘ …1 ? …2 ce?®«iiaai ®!eceY aeY«®c?a«YeY ¤Y©aac?i,  
a?? aY§a«ia a  ®?aY¤Y«iYaai ®?Ya ¤®¬ …1. …a«? …2 ®aa?ae aY-
«Y, «?!® ?® c?a«a a §ai¤®c !®«ieY ?«? a cY …1, a® ®?Ya ae?i
Y®?aY¤Y«Y .

˜Y§a«ia a®¬ ®?Ya ae?? E1 >> E2 ic«iYaai § cY?Y E1,
a¤c?aa®Y c?a c®   …2 a §ai¤®c. …a«? …1 ?¬YYa a?? unsigned,
a® ?a? Y®!a®¤?¬®aa? ?a®?aa®¤?a YF® § ?®«Y?Y a«i¬? a«Yc .
…a«? ¦Y …1 ?¬YYa a?? signed, a® § ?®«Y?Y a«Yc  ce?®«iYaai
§ ?®¬ (0 ¤«i ?®«®¦?aY«iea ? 1 ¤«i ®aa?ae aY«iea § cY?©).
’ ?®Y a ae?aY?Y § ?®c®F® !?a  F a a?aaYa, ca® § ? a …1
>> E2 !a¤Ya a ??¬ ¦Y, ? ? ? a E1. ‡  ?a?«icY?Y¬ a??®c a®
§ ?®¬, § cY?Y E1 >> E2 ?aY¤aa c«iYa a®!®© aeY«ai c aai
c aa®F®.

??Ya ae?? ®a®eY?i

‘aeYaacaYa cYaeaY ®?Ya ae?? ®a®eY?i: =. ‘?-
a ?a?a ia?a ®?Ya ae?© a«Y¤aie?©:

cea ¦Y?Y-®a®eY?i:
cea ¦Y?Y-a?? -a¤c?F 
cea ¦Y?Y-®a®eY?i cea ¦Y?Y-a?? -a¤c?F 
cea ¦Y?Y-®a®eY?i =cea ¦Y?Y-a?? -a¤c?F 

??Ya ae?i ¬YieY cY¬ - 83 - ®¬ a«ac Y aY§a«ia a a cY 0 («®¦i). ‚ a«ac ia 2 ? 3, F¤Y …1 ? …2 ic«iiaai a? § aY«i¬? a®c- ¬Yaa?¬ea a??®c, aY§a«ia a ®?Ya ae?? E1

‚ea ¦Y?Y E1 > E2 ¤ Ya 1 (?aa? ), Ya«? § cY?Y …1
!®«ieY § cY?i …2;c ?a®a?c®¬ a«ac Y aY§a«ia a a cY 0
(«®¦i), ?a?cY¬ ?a?®«i§aiaai aY ¦Y a?®a®!e ?aYa?aYa ae??
 a?ae¬Ya?cYa??a aa cY?© ? aa cY?© a? § aY«Y©, ca® ®?aY¤Y-
«Ye ¤«i ®?Ya ae?? “!®«ieY cY¬”. ? ®?Ya ¤ ¬ ?a?¬Y?¬e aY ¦Y
?a c?«  ? ®Fa ?cY?i.

??Ya ae?i ¬YieY ?«? a c® =

?  ?®Yae, cea ¦Y?Y E1 >= E2 ¤ Ya 1 (?aa? ), Ya«?
§ cY?Y …1 !®«ieY ?«? a c® § cY?i …2. ‚ ?a®a?c®¬ a«ac Y
aY§a«ia a a cY 0 («®¦i), ?a?cY¬ ?a?®«i§aiaai aY ¦Y a?®a®!e
?aYa?aYa ae??  a?ae¬Ya?cYa??a aa cY?© ? aa cY?© a? § aY-
«Y©, ca® ®?aY¤Y«Ye ¤«i ®?Ya ae?? “¬YieY cY¬”. ? ®?Ya ¤ ¬
?a?¬Y?¬e aY ¦Y ?a c?«  ? ®Fa ?cY?i.
??Ya ae?? a??  a cYaac 

‘aeYaacaYa ¤cY ®?Ya ae?? a??  a cYaac : == ? !=. ??
?a®cYaiia aa«®c?Y a cYaac  ®?Ya ¤®c  a?ae¬Ya?cYa?®F® a??  ?
a??  a? § aY«Y©, a«Y¤ai ?a? ia®¬ ?a c?« ¬,   «®F?ce¬ aY¬,
ca® ¤Y©aacaia ¤«i ®?Ya ae?©®a®eY?i. ?a¬Ya?¬, ®¤ ?®, ca® ==
? != ?¬Yia !®«YY ?§??© ?a?®a?aYa ce?®«Y?i, cY¬ ®?Ya ae??
®a®eY?i , =. ?a®¬Y a®F®, ®?Ya ae?? == ? != ?®§c®-
«iia ce?®«iai ?a®cYa?a a cYaac  a? § aY«Y© c a ??a a«ac –
ia, F¤Y ®?Ya ae?? ®a®eY?i Y?a?¬Y?¬e. ‘?a ?a?a ia?a ®?Y-
a ae?© a«Y¤aie?©:

cea ¦Y?Y-a?? -a cYaac :
cea ¦Y?Y-®a®eY?i
cea ¦Y?Y-a?? -a cYaac  == cea ¦Y?Y-®a®eY?i
cea ¦Y?Y-a?? -a cYaac  != cea ¦Y?Y-®a®eY?i

??Ya ae?i ?a®cYa?? a cYaac  ==

‚ cea ¦Y?? E1 == E2 ®?Ya ¤e ¤®«¦e a¤®c«Yac®aiai

– 84 –
®¤®¬a ?§ a«Y¤aieYF®  !®a  aa«®c?©:

1. ?!  § cY?i …1 ? …2 –  a?ae¬Ya?cYa?®F® a?? .

2. ?!  § cY?i …1 ? …2 ic«iiaai a? § aY«i¬? ?c «?ae?ae?-
a®c ea ?«? Y?c «?ae?ae?a®c ea cYaa?© a®c¬Yaa?¬ea a??®c.

3. ?¤® ?§ § cY?©, …1 ?«? …2, ic«iYaai a? § aY«Y¬
®!eY?a  Y?®«®F® a?? ,   ca®a®© – a? § aY«Y¬   ?c «?ae?ae?-
a®c ai ?«? Y?c «?ae?ae?a®c ai cYaa?i void.

4. ?¤® ?§ § cY?©, …1 ?«? …2, ic«iYaai a? § aY«Y¬,  
ca®a®Y – ?®aa a®© a??  ?aaa®F® a? § aY«i.

…a«? …1 ? …2 ?¬Yia a??, ic«iie?©ai ¤®?aaa?¬e¬ a??®¬ ¤«i
®?Ya ae?© ®a®eY?i, a® ?a?¬Y?¬e ?a c?« , ?®¤a®!® ®??a eY
¤«i ®?Ya ae?© ®a®eY?i a??  …1 - 85 - ’ !«?ae  ?aa?®aa? ¤«i ?®a §ai¤ea ®?Ya ae?© ’ !«?ae  1.21 ----------------------------------------------------------- ˜?a®c®Y § cY?Y ˜?a®c®Y § cY?Y …1 & E2 E1 ^ E2 E1 \! E2 c …1 c …2 ----------------------------------------------------------- 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 ----------------------------------------------------------- ??Ya ae?i ?®a §ai¤®F® ?a?«ic ieYF® ?‹?^ ‘?a ?a?a ia®© ®?Ya ae?? a«Y¤aie?©: cea ¦Y?Y-?a?«ic ieYY-?‹?: cea ¦Y?Y-? cea ¦Y?Y-?a?«ic ieYY-?‹? ^ cea ¦Y?Y-? ‚ cea ¦Y?? E1 ^ E2 ®!  ®?Ya ¤ ¤®«¦e!eai ?aYFa «i®- F® a?? ,?a?cY¬ ce?®«iiaai ®!eceY  a?ae¬Ya?cYa??Y ?aY®!a §®- c ?i …1 ? …2,   aY§a«ia a®¬ ®?Ya ae?? ic«iYaai ?®a §ai¤®Y ?a?«ic ieYY?‹? ¤«i …1 ? …2. ? ¦¤e© !?a aY§a«ia a  ®?aY¤Y«i- Yaai a !«?aeY© 1.21. ??Ya ae?i ?®a §ai¤®F® c?«ic ieYF® ?‹? \! ‘?a ?a?a ia®© ®?Ya ae?? a«Y¤aie?©: cea ¦Y?Y-c?«ic ieYY-?‹?: cea ¦Y?Y-?a?«ic ieYY-?‹? cea ¦Y?Y-c?«ic ieYY-?‹? \! cea ¦Y?Y-?a?«ic ieYY-?‹? ‚ cea ¦Y?? E1\! E2 ®!  ®?Ya ¤  ¤®«¦e !eai ?aYFa «i- ®F® a?? , ?a?cY¬ ce?®«iiaai ®!eceY  a?ae¬Ya?cYa??Y ?aY®!- a §®c ?i …1 ? …2,   aY§a«ia a®¬ ®?Ya ae?? ic«iYaai ?®a §ai¤®Y c?«ic ieYY ?‹? ¤«i …1 ? …2. ? ¦¤e© !?a aY§a«ia - a  ®?aY¤Y«iYaai a !«?aeY© 1.21. ??Ya ae?i «®F?cYa?®F® ?&& ‘?a ?a?a ia®© ®?Ya ae?? a«Y¤aie?©: cea ¦Y?Y-«®F?cYa?®Y-?: cea ¦Y?Y-c?«ic ieYY-?‹? cea ¦Y?Y-«®F?cYa?®Y-? && cea ¦Y?Y-c?«ic ieYY-?‹? ‚ cea ¦Y?? E1 && E2 ®!  ®?Ya ¤  ¤®«¦e !eai a? «ia®- F®a?? . ˜Y§a«ia a ®?Ya ae?? ?¬YYa a?? int ? a cY 1 (?aa? ), Ya«? ®!  § cY?i, …1 ? …2 Ya«YceY; c ?a®a?c®¬ a«ac Y aY- §a«ia a a cY 0 («®¦i). ‚ ®a«?c?Y ®a ?®a §ai¤®© ®?Ya ae?? &, ®?Ya ae?i && F a - a?aaYa a acYa cea ¦Y?i c ?®a«Y¤®c aY«i®aa? a«Yc - ?a c®: ?Yace¬ cec?a«iYaai …1; Ya«? …1 a cY 0, a® …1 && E2 ¤ Ya 0 («®¦i), ? …2 Y cec?a«iYaai c®®!eY. ??Ya ae?i «®F?cYa?®F® ?‹? \!\! ‘?a ?a?a ia®© ®?Ya ae?? a«Y¤aie?©: cea ¦Y?Y-«®F?cYa?®Y-?‹?: cea ¦Y?Y-«®F?cYa?®Y-? cea ¦Y?Y-«®F?cYa?®Y-?‹? \!\! cea ¦Y?Y-«®F?cYa?®Y-? - 86 - ‚ cea ¦Y?? E1 \!\! E2 ®!  ®?Ya ¤  ¤®«¦e !eai a? «ia- ®F®a?? . ˜Y§a«ia a ®?Ya ae?? ?¬YYa a?? int ? a cY 1 (?aa?-  ), Ya«? ®¤® ?§ § cY?©, …1 ?«? …2 Ya«Yc®Y; c ?a®a?c®¬ a«ac Y aY§a«ia a a cY 0 («®¦i). ‚ ®a«?c?Y ®a ?®a §ai¤®© ®?Ya ae?? \!, ®?Ya ae?i \!\! F - a a?aaYa a acYa cea ¦Y?i c ?®a«Y¤®c aY«i®aa? a«Yc - ?a - c®: ?Yace¬ cec?a«iYaai …1; Ya«? …1 Y a cY 0, a® …1 \!\! E2 ¤ Ya 1 (?aa? ), ? …2 Y cec?a«iYaai c®®!eY. “a«®c i ®?Ya ae?i ?: ‘?a ?a?a ia®© ®?Ya ae?? a«Y¤aie?©: aa«®c®Y-cea ¦Y?Y cea ¦Y?Y-«®F?cYa?®Y-?‹? cea ¦Y?Y-«®F?cYa?®Y-?‹? ? cea ¦Y?Y : aa«®c®Y-cea ¦Y?Y ‚ cea ¦Y?? …1? …2 : …3 ®?Ya ¤ …1 ¤®«¦Y !eai a? «ia- ®F® a?? . ??Ya ¤e …2 ? …3 ¤®«¦e a¤®c«Yac®aiai ®¤®¬a ?§ ?a?c®¤?¬ea ?¦Y ?a c?«: 1. ?!  ®?Ya ¤  -  a?ae¬Ya?cYa?®F® a?? . 2. ?!  ®?Ya ¤  ?¬Yia a®c¬Yaa?¬eY a??e aaaa?aaae ?«? ®!eY¤?Y?i. 3. ?!  ®?Ya ¤  - a??  void. 4. ?!  ®?Ya ¤  ?¬Yia a?? a? § aY«i   ?c «?ae?ae?a®c - eY ?«? Y?c «?ae?ae?a®c eY cYaa?? a®c¬Yaa?¬ea a??®c. 5. ?¤? ®?Ya ¤ ?¬YYa a?? a? § aY«i,   ca®a®© ic«iYaai ?®aa a®© a??  ?aaa®F® a? § aY«i. 6. ?¤? ®?Ya ¤ ?¬YYa a?? a? § aY«i   ®!eY?a ?«? Y- ?®«e© a??,   ca®a®© - a?? a? § aY«i   ?c «?ae?ae?a®c ai ?«? Y?c «?ae?ae?a®c ai cYaa?i a??  void. ˜aY¦¤Y caYF® cec?a«iYaai …1; Ya«? ® ?¬YYa Ya«Yc®Y § cY?Y (?aa? ), a® …2 cec?a«iYaai,   …3 ?F®a?aaYaai. …a- «? …1 ¤ Ya ®«i («®¦i), a® …3 cec?a«iYaai,   …2 ?F®a?aaYa- ai.˜Y§a«ia a ®?Ya ae?? …1 ? …2 : …3 § c?a?a ®a a®F®, ?®a®ae© ?§ ®?Ya ¤®c, …2 ?«? …3, !a¤Ya cec?a«iaiai. ‚ a«ac Y 1 ®!  ®?Ya ¤ , …2 ? …3, ?®¤cYaF iaai ®!ece¬  a?ae¬Ya?cYa??¬ ?aY®!a §®c ?i¬,   a??®¬ aY§a«ia a  !a¤Ya®!- e?© a??, ?®«ac Y¬e© c aY§a«ia aY ?aY®!a §®c ?©. ‚ a«ac Y 2 a??®¬ aY§a«ia a  !a¤Ya ic«iaiai ®!e?© a?? aaaa?aaae ?«? ®!eY¤?Y?i …2 ?«? …3. ‚ a«ac Y 3 aY§a«ia a !a¤Ya ?¬Yai a?? void. ‚ a«ac ia 4 ?5 a??®¬ aY§a«ia a  ic«iYaai a? § aY«i a?- ? , ?c «?ae?ae?a®c ®F® caY¬? ?c «?ae?? a®a ¬? a??®c,   ?®a®- aeY a? §ec ia ®!  ®?Ya ¤ . ‚ a«ac Y 6 a??®¬ aY§a«ia a  !a¤Ya a?? ®?Ya ¤ , Y ic- «iieYF®ai a? § aY«Y¬   void. ??Ya ae?? ?a?ac®Y?i ‘aeYaacaYa ®¤? ¤ae ai ®?Ya ae?© ?a?ac®Y?i. a ¬e¬ ?a®aae¬ ?§ ?a ic«iYaai ®?Ya ae?i =; ®aa «ieY  §ec iaai a®aa ce¬? ®?Ya ae?i¬? ?a?ac®Y?i. - 87 - ‘?a ?a?a ®?Ya ae?© ?a?ac®Y?i a«Y¤aie?©: cea ¦Y?Y-?a?ac®Y?i: aa«®c®Y-cea ¦Y?Y a a®Y-cea ¦Y?Y ®?Ya ae?i ?a?ac®Y?i cea ¦Y?Y-?a?ac®- Y?i ®?Ya ae?i-?a?ac®Y?i: ®¤® ?§ = *= /= %= += -= >= &= ^= \!=

˜a®aa i ®?Ya ae?i ?a?ac®Y?i =

‚ cea ¦Y?? …1 = …2 …1 ¤®«¦Y !eai ¬®¤?ae?ae?aaY¬e¬ ?¬Y-
aie?¬ cea ¦Y?Y¬. ‡ cY?Y …2 ?®a«Y ?aY®!a §®c ?i ? a??a
…1 ?®¬Ye Yaai c ®!eY?a, § ¤ c Y¬e© …1 (§ ¬Ye i ?aY¤e¤aeYY
§ cY?Y …1). ‡ cY?Y cea ¦Y?i ?a?ac®Y?i ia® § cY?Y …1
?®a«Y ?a?ac®Y?i. ‘ ¬® ?® aY!Y cea ¦Y?Y ?a?ac®Y?i Y ic«i-
Yaai ?¬Yaie?¬ § cY?Y¬.

??Ya ¤e…1 ? …2 ¤®«¦e a¤®c«Yac®aiai ®¤®¬a ?§ a«Y¤ai-
eYF®  !®a  ?a c?«:

1. …1 ?¬YYa ?c «?ae?ae?a®c e© ?«? Y?c «?ae?ae?a®c e©
 a?ae¬Ya?cYa??© a??,   …2 ?¬YYa  a?ae¬Ya?cYa??© a??.

2. …1 ?¬YYa ?c «?ae?ae?a®c ai ?«? Y?c «?ae?ae?a®c ai
cYaa?i a??  aaaa?aaae ?«? ®!eY¤?Y?i, a®c¬Yaa?¬®F® a a??®¬
…2.

3. …1 ? …2 ia® a? § aY«?   ?c «?ae?ae?a®c ai ?«? Y?-
c «?ae?ae?a®c ai cYaa?? a®c¬Yaa?¬ea a??®c ,   a??,   ?®a®-
ae© a? §ec Ya «Yce© ®?Ya ¤, ?¬YYa caY ?c «?ae?? a®ae a?? ,
  ?®a®ae© a? §ec Ya ?a ce© ®?Ya ¤.

4. ?¤? ?§ ®?Ya ¤®c, …1 ?«? …2, ic«iYaai a? § aY«Y¬
®!eY?a ?«? Y?®«®F® a?? ,   ¤aaF®© – a? §caY«Y¬   ?c «?ae?-
ae?a®c ai ?«? Y?c «?ae?ae?a®c ai cYaa?i void. ’??,   ?®-
a®ae© a? §ec Ya«Yce© ®?Ya ¤, ?¬YYa caY ?c «?ae?? a®ae a?? ,
  ?®a®ae© a? §ec Ya ?a ce© ®?Ya ¤.

5. …1 ic«iYaai a? § aY«Y¬,   …2 – ?®aa a®© a??  ?aa-
a®F® a? § aY«i.

‘®aa ceY ®?Ya ae?? ?a?ac®Y?i

‘®aa ceY ®?Ya ae?? c?¤  ®?Ya ae?i=, F¤Y “®?Ya ae?i” – ia®
®¤? ?§ ¤Yaia? a?¬c®«®c ®?Ya ae?? * / % + – > & ^ \!, ?-
aYa?aYa?aaiaai a«Y¤aie?¬ ®!a §®¬:

…1 ®?Ya ae?i= …2

?¬YYa a®a ¦Y iaeaeY?a, ca® ?

…1 = …1 ®?Ya ae?i …2

§  ?a?«icY?Y¬ a®F®, ca® ?¬YaieYY § cY?Y …1 cec?a«i-
Yaai a®«i?® ®¤? a §. ˜ ?a?¬Ya, …1 += …2 ia® a® ¦Y a ¬®Y,
ca® …1 = …1 + …2.

˜a c?«  ¤«i a®aa cea ®?Ya ae?© ?a?ac®Y?i, a«Y¤®c aY«i-
®, a ??Y ¦Y, ? ? ? ®??a eY c ?aY¤e¤aeY¬ a §¤Y«Y (¤«i
?a®aa®© ®?Ya ae?? ?a?ac®Y?i =).

??Ya ae?i a § ?ia®©

‘?a ?a?a ia®© ®?Ya ae?? a«Y¤aie?©:

– 88 –

cea ¦Y?Y:
cea ¦Y?Y-?a?ac®Y?i
cea ¦Y?Y , cea ¦Y?Y-?a?ac®Y?i

‚ cea ¦Y?? a § ?ia®©

…1,…2

«Yce© ®?Ya ¤ …1 cec?a«iYaai ? ? cea ¦Y?Y void, § aY¬
…2 cec?a«iYaai a ??¬ ®!a §®¬, ca® ¤ Ya aY§a«ia a ? a?? cea –
¦Y?i a § ?ia®©. ˜Y?aaa?c®, cea ¦Y?Y

…1,…2,…,“n

¤ Ya c aY§a«ia aY cec?a«iY¬eY a«Yc – ?a c® Ei,   § –
cY?Y ?a?? En ®?aY¤Y«iYa aY§a«ia a caYF® cea ¦Y?i c aeY«®¬.
„«i a®F®, ca®!e ?§!Y¦ ai Y®¤®§ c®aa? ?aYa?aYa ae?? § ?i-
aea a acYa®¬ aaeYaac®c ?i § ?iaea ?a? § ¤ ??  aFa¬Ya®c
aea?ae?? ? c a??a? a ??ae? «?§ ae??, a«Y¤aYa ?a?®«i§®c ai
?aaF«eY a?®!??. ˜ ?a?¬Ya,

func(i, (j = 1, j +4), k);

ce§ec Ya func a aaY¬i  aFa¬Ya ¬?,   Y a cYaeai¬i. ˜a?
 aFa¬Yae:
i, 5 ? k.
??Ya a®ae

??Ya ae??®?aY¤Y«iia ?®a®? a?a c«Y?i ce?®«Y?Y¬ ?a®F-
a ¬¬e. ˜a? ®aaaaaac?? § ¤ ea ®?Ya a®a®c ?YaYa®¤  ? ce!®a 
®?Ya a®ae ce?®«iiaai ?®a«Y¤®c aY«i®, c ?®ai¤?Y ?a a«Y¤®c –
?i c ?aa®¤®¬ ?®¤Y ?a®Fa ¬¬e. ‚ a«Y¤aieY© a !«?aeY ?®? § 
a?a ?a?a ®?Ya a®a®c:

??Ya a®ae Turbo C++ ’ !«?ae  1.22
———————————————————–
®?Ya a®a:
®?Ya a®a-a-¬Ya?®©
a®aa c®©-®?Ya a®a
®?Ya a®a-cea ¦Y?Y
®?Ya a®a-ce!®a 
®?Ya a®a-?aYa ae??
®?Ya a®a-?YaYa®¤ 
asm-®?Ya a®a
®!eic«Y?Y (a®«i?® ‘++)

asm-®?Ya a®a:
asm «Y?aY¬e ®c i-aaa®? 
asm «Y?aY¬e;
asm (*«Y?aY¬e; =

*)

®?Ya a®a-a-¬Ya?®©
?¤Ya?ae?? a®a : ®?Ya ae?i
case cea ¦Y?Y-a?? -?®aa ae : ®?Ya a®a
default : ®?Ya a®a

a®aa c®©-®?Ya a®a:
(* *)

a??a®?-®!eic«Y?i:
®!eic«Y?Y
a??a®?-®!eic«Y?i ®!eic«Y?Y

a??a®?-®?Ya a®a®c:

– 89 –
;

®?Ya a®a-ce!®a :
if (cea ¦Y?Y) ®?Ya a®a
if (cea ¦Y?Y) ®?Ya a®a else ®?Ya a®a
switch (cea ¦Y?Y) cea ¦Y?Y

cea ¦Y?Y-?aYa ae??:
while (cea ¦Y?Y) ®?Ya a®a
do ®?Ya a®a while (cea ¦Y?Y);
for (®?Ya a®a- c-aa«®c?i ; )®?Ya a®a

®?Ya a®a- c-aa«®c?i:
®?Ya a®a-cea ¦Y?Y
®!eic«Y?Y (a®«i?® ‘++)

®?Ya a®a-?YaYa®¤ :
goto ?¤Ya?ae?? a®a;
continue ;
break ;
return ;
———————————————————–

˜«®??

‘®aa c®© ®?Ya a®a, ?«? !«®?, ?aY¤aa c«iYa a®!®© a??a®?
(c®§¬®¦®, ?aaa®©) ®?Ya a®a®c, § ?«icYea c ae?FaaeY a?®!??
((**)). ‘?a ?a?cYa?? !«®? ¬®¦® a aa¬ aa?c ai c ? cYaacY
Y¤?®F® ®?Ya a®a , ® ® ?Fa Ya a ?¦Y a®«i c ®?aY¤Y«Y??
?®aY?aa  ?¤Ya?ae?? a®a®c. ?¤Ya?ae?? a®a, ®!eic«Ye© c ?aY-
¤Y« a !«®? , ?¬YYa ?®aY?aa,  c? i a a®c?? ®!eic«Y?i ?
?®c i § ?«ic ieY© a?®!?®©. ˜«®?? ¬®Faa ?¬Yai «i!ai F«a!?a
c«®¦Y®aa?.

??Ya a®ae-a-¬Ya? ¬?

??Ya a®aa ¬®¦® ?a?ac®?ai ¬Ya?a a«Y¤aie?¬ ®!a §®¬:

1. ?¤Ya?ae?? a®a-¬Ya?? : ®?Ya a®a

?¤Ya?ae?? a®a ¬Ya?? a«a¦?a ¬?eYii ¤«i ®?Ya a®a  !Y§aa-
«®c®F® ?YaYa®¤ . ?¤Ya?ae?? a®ae ¬Ya®? ?¬Yia ac®Y a®!aacY-
®Y ?a®aaa aac® ?¬Y c ?®aY?aaY aea?ae??. ?a¬Ya?¬, ca® ‘++
?®§c®«iYa¤ c ai ¬Ya?? ? ? ®?Ya a®a ¬ ®!eic«Y?i, a ? ? ?a®-
c?¬ ®?Ya a®a ¬.

2. case cea ¦Y?Y-a?? -?®aa ae : ®?Ya a®a
default : ®?Ya a®a

??Ya a®ae a ¬Ya? ¬? case ? default ?a?®«i§aiaai a®«i?®
c a®cYa ?? a ®?Ya a®a ¬? ce!®a .

??Ya a®ae-cea ¦Y?i

‹i!®Y cea ¦Y?Y, §  ?®a®ae¬ a«Y¤aYa ¤c®Ya®c?Y, ®!a §aYa
®?Ya a®a-cea ¦Y?Y:

Turbo C++ ce?®«iYa ®?Ya a®ae-cea ¦Y?i, cec?a«ii cea –
¦Y?i. ‚aY ?®!®ceY iaeaeY?ae ®a ia®F® cec?a«Y?i § cYae iaai
¤®  c «  ce?®«Y?i a«Y¤aieYF® ®?Ya a®a . ˜®«ie?aac® ®?Y-
a a®a®c-cea ¦Y?© ?aY¤aa c«iia a®!®© ®?Ya a®ae ?a?ac®Y?i
?«? ce§®ce aea?ae?©.

‘?Yae? «ie¬ a«ac Y¬ ic«iYaai ?aaa®© ®?Ya a®a, a®aa®ie?©

– 90 –
?§ ®¤®F® ¤c®Ya®c?i (:). ˜aaa®© ®?Ya a®a Y ce?®«iYa ?? –
??a ¤Y©aac?©. ’Y¬ Y¬YYY,® ?®«Y§Y c aYa a«ac ia, ?®F¤ 
a?a ?a?a ‘ ®¦?¤ Ya  «?c?i Y?®a®a®F® ®?Ya a®a , ® ?®
?a®Fa ¬¬Y ® Y aaY!aYaai.

??Ya a®ae ce!®a 

??Ya a®ae ce!®a , ?«? ®?Ya a®ae a?a c«Y?i ?®a®?®¬ ce-
?®«Y?i ?a®Fa ¬¬e, ce?®«iia ce!®a ®¤®© ?§  «iaYa a?cea
cYacY© ?a®Fa ¬¬e, ?a®cYaii ¤«i ia®F® ®?aY¤Y«YeY § cY?i.
‘aeYacaYa ¤c  a??  ®?Ya a®a®c ce!®a : if…else ? switch.

??Ya a®ae if

˜ §®ce© ®?Ya a®a if ?¬YYa a«Y¤aie?© e !«®:

if(aa«®c®Y-cea ¦Y?Y) ®?Ya a®a-Ya«?-“?aa? ”
®?Ya a®a-Ya«?-“«®¦i”

‡ ?«icY?Y aa«®c®F®-cea ¦Y?i c ?aaF«eY a?®!?? ic«iYa-
ai c ¦e¬ ¬®¬Ya®¬ a?a ?a?a  ia®F® ®?Ya a®a .

“a«®c®Y-cea ¦Y?Y ¤®«¦® !eai a? «ia®F® a?? . ˜a® ce-
a ¦Y?Y cec?a«iYaai. …a«? ®® ic«iYaai a«Yce¬ (?«? ?aaae¬ c
a«ac Y a??  a? § aY«i), ¬e F®c®a?¬, ca® aa«®c®Y-cea ¦Y?Y
«®¦®; c ?a®a?c®¬ a«ac Y ®® ?aa?®.

…a«? ?aY¤«®¦Y?Y else ®aaaaaacaYa,   aa«®c®Y-cea ¦Y?Y
¤ Ya § cY?Y “?aa? “, a® ce?®«iYaai ®?Ya a®a-Ya«?-“?aa?-
 “; c ?a®a?c®¬ a«ac Y ® ?F®a?aaYaai.

…a«? § ¤ ® ®?ae?® «i®Y ?aY¤«®¦Y?Yelse ®?Ya a®a-Ya-
«?-“«®¦i”,   aa«®c®Y-cea ¦Y?Y ¤ Ya § cY?Y “?aa? “, a®
ce?®«iYaai ®?Ya a®a-Ya«?-“?aa? “; c ?a®a?c®¬ a«ac Y ce-
?®«iYaai ®?Ya a®a-Ya«?”«®¦i”.

˜a?¬Yc ?Y

‚ ®a«?c?Y ®a,  ?a?¬Ya, ˜ a? «i, Turbo C++ Y ?¬YYa
a?Yae? «i®F® !a«Yc®F® a??  ¤ ea. ‚ aa«®cea ?a®cYa? a a®«i
a ?®F® a??  ¬®¦Ya ?Fa ai aeY«®c?a«Y i ?YaY¬Y i ?«? a? § –
aY«i. ‚ea ¦Y?Y ®a®eY?i (a > b) (Ya«? ®® ¤®?aaa?¬®) ¤ Ya
int 1 (?aa? ), Ya«? (a > b), ? int 0 («®¦i), Ya«? (a - 91 - (* if (y == 1) puts("x = ? y=1"); *) else puts("x != 1"); // ?a c?«i®Y aYeY?Y ??Ya a®ae switch ??Ya a®a switch ?a?®«i§aYa a«Y¤aie?© ! §®ce© ae®a¬ a: switch (?YaY?«ic ieYY-cea ¦Y?Y) ®?Ya a®a-c a? a  ??Ya a®aswitch?®§c®«iYa ?YaY¤ c ai a?a c«Y?Y ®¤®¬a ?§ Ya?®«i??a ®?Ya a®a®c a ¬Ya?®© c a? a  c § c?a?¬®aa? ®a § cY?i ?YaY?«ic ieYF® cea ¦Y?i. ˜®a«Y¤YY ¤®«¦® !eai ?- aYFa «i®F® a??  (c ‘++ ®® ¬®¦Ya !eai a??  ?« aa , ?a? aa- «®c??, ca® c®§¬®¦® YF® ®¤®§ c®Y ?aY®!a §®c ?Y ? ?aYF- a «i®¬a a??a.) ‹i!®© ®?Ya a®a c ®?Ya a®aY-c a? a  (c?«ic i ?aaa®© ®?Ya a®a) ¬®¦Ya !eai ?®¬YcY ®¤®© ?«? !®«YY ¬Ya?®© c a? a : case cea ¦Y?Y-a?? -?®aa ae-i : ®?Ya a®a-c a? a -i F¤Y ? ¦¤®Y cea ¦Y?Y-a?? -?®aa ae-i ¤®«¦® ?¬Yai a?- ? «i®Y aeY«®c?a«Y®Y § cY?Y (?aY®!a §aY¬®Y ? a??a a?a c- «iieYF® cea ¦Y?i) c ?aY¤Y« a ®!eY¬«ieYF® ®?Ya a®a  switch. „®?aa? Yaai ?¬Yai c ®¤®¬ ®?Ya a®aY switch ?®ca®aiie?Y- ai ?®aa ae c a? a . ??Ya a®a ¬®¦Ya ?¬Yai a ?¦Y Y !®«YY ®¤®© ¬Ya?? default: default : ®?Ya a®a-a¬®«c ?i ˜®a«Y cec?a«Y?i ?YaY?«ic ieYF®-cea ¦Y?i ce?®«iYaai a®?®aa c«Y?Y aY§a«ia a  a ®¤?¬ ?§ cea ¦Y?©-a?? -?®aa ae -i. …a«?  ©¤Y® a®®acYaaac?Y, a® a?a c«Y?Y ?YaY¤ Yaai ®?Y- a a®aa-c a? a -i a ¬Ya?®©, ¤«i ?®a®a®©  ©¤Y® a®®acYaa- ac?Y. …a«? a®®acYaaac?i Y  ©¤Y® ? ?¬YYaai ¬Ya?  default, a® a?a c«Y?Y ?YaY¤ Yaai ®?Ya a®aa-a¬®«c ?i. …a«? a®®acYaa- ac?i Y  ©¤Y® ? ¬Ya?  default ®aaaaaacaYa, a® ?? ??Y ®?Y- a a®ae Y ce?®«iiaai. ?®F¤  ?a®Fa ¬¬  caaaYc Ya ¬Ya?? case ? default, ia® Y ?a®?§c®¤?a   YY ?? ?®F® ¤Y©aac?i. “?- a c«Y?Y ?a®aa® ?YaY¤ Yaai ¤ «ieY cYaY§ ¬Ya?? a«Y¤aieY¬a ®?Ya a®aa ?«? ?YaY?«ic aY«i. „«i a®F®, ca®!e ®aa ®c?ai ce- ?®«Y?Y Faa??e ®?Ya a®a®c ¤«i?®?aYa®F® c a? a , a«Y¤aYa ?a?®«i§®c ai ®?Ya a®a break. ??Ya a®ae ?aYa ae?? ??Ya a®ae ?aYa ae?? ?®§c®«iia ®aF ?§®cec ai ae??«?cYa?®Y ce?®«Y?Y  !®a  ®?Ya a®a®c ?a®Fa ¬¬e. Turbo C++ ?¬YYa aa? ae®a¬e ®?Ya a®a®c ?aYa ae?? : ae??«e while, do ? for. ??Ya a®ae while ?!e?© ae®a¬ a ¤ ®F® ®?Ya a®a  a«Y¤aie?©: while (aa«®c®Y-cea ¦Y?Y) ®?Ya a®a-?®? -"?aa? " ??Ya a®a aY«  ae??« , ®?Ya a®a-?®? -"?aa? ", !a¤Ya ae??- «?cYa?? ?®ca®aiaiai ¤® aYa ?®a, ?®?  cec?a«Y?Y aa«®c®F® cea ¦Y?i Y ¤ aa § cY?i ®«i («®¦i). “a«®c®Y cea ¦Y?Y cec?a«iYaai ? ?a®cYaiYaai ?Yace¬ - 92 - (? ? ®??a ®   aaa.93 ®a?F? « ). …a«? ia® § cY?Y Ya«Y- c®Y (?aa? ), a® ce?®«iYaai ®?Ya a®a-?®? -"?aa? "; Ya«? Y caaaYcY ®?Ya a®a ?YaYa®¤ , ce?®«iie?© cea®¤ ?§ ae??« , a® aa«®c®Y-cea ¦Y?Y cec?a«iYaai a®c . ae??« ?®ca®aiYaai ¤® aYa ?®a, ?®?  aa«®c®Y-cea ¦Y?Y Y ¤ aa § cY?i 0. ? ? ? c a«ac Y ®?Ya a®a  if, cea ¦Y?i a??  a? § aY«i ¬®Faa aa c?c aiai a ?aaae¬ a? § aY«Y¬, a ? ca® while (ptr) ... i?c?c «Ya® while (ptr != NULL)... –??« while ?aY¤aa c«iYa a®!®© a¤®!e© a?®a®! a? ?a®c - ?i aaa®? ? ¤aaF?a § ? c?c ie?aai ?aaae¬ a?¬c®«®¬ aaaa?aaa ¤ ea: char str[10]="Borland"; char *ptr=&str[0]; int count=0; //... while (*ptr++) // ae??« ¤® ?®ae  aaa®?? count++; ˜a? ®aaaaaac?? ®?Ya a®a®c ?YaYa®¤  ®?Ya a®a-?®? -"?aa?-  " ¤®«¦Y Y?®a®ae¬ a?®a®!®¬ c®§¤Y©aac®c ai   § cY?Y aa- «®c®F®-cea ¦Y?i, «?!® ?®a«Y¤YY ¤®«¦® ?§¬Yiaiai c® caY¬i YF® cec?a«Y?i, a aY¬, ca®!e ?aY¤®aca a?ai § ae??«?c ?Y. ??Ya a®ae do while ?!e?© ae®a¬ a ia?a ®?Ya a®a®c a«Y¤aie?©: do ce?®«iY¬e©-®?Ya a®a while (aa«®c®Y-cea ¦Y?Y) ‚e?®«iY¬e©-®?Ya a®a ae??«?cYa?? ?®ca®aiYaai ¤® aYa ?®a, ?®?  cec?a«Y?Y aa«®c®F®-cea ¦Y?i Y ¤ aa 0 («®¦i). ?« c- ®Y ®a«?c?Y ia®F® ®?Ya a®a  ®a ®?Ya a®a  while a®aa®?a c a®¬, ca® aa«®c®Y-cea ¦Y?Y §¤Yai ?a®cYaiYaai Y ¤®,   ?®a«Y ?Yac®F® ce?®«Y?i aY«  ae??« . ? a a?a®c ®? ? ¬??¬a¬ ®¤® YF® ce?®«Y?Y. ˜  a?? aa«®c®F®-cea ¦Y?i  ?« ¤ec Yaai a® ¦Y a ¬®Y ®Fa ?cY?Y (®® ¤®«¦® !eai a? «iae¬). ??Ya a®ae for ”®a¬ a ®?Ya a®a  for c ‘ a«Y¤aie?©: for(;;
) ®?Ya a®a

‚ ‘++ ¬®¦Ya !eai ? ?
cea ¦Y?Y¬, a ? ? ®!eic«Y?Y¬.

˜®a«Y¤®c aY«i®aai ¤Y©aac?© ?a? ce?®«Y?? ¤ ®F® ®?Y-
a a®a  a«Y¤aie i:

1. ‚e?®«iYaai cec?a«Y?Y cea ¦Y?i-??ae? «?§ ae??, Ya«?
a ?®c®Y § ¤ ®. ? ? a«Y¤aYa ?§ YF®  §c ?i, ia® cea ¦Y?Y
®!ec® ??ae? «?§?aaYa ®¤? ?«? Ya?®«i?® acYac??®c ae??« , ®
YF® a?a ?a?a c ¤Y©aac?aY«i®aa? ?®§c®«iYa «i!ai aaY?Yi
a«®¦®aa? (c?«ic i c a«ac Y ‘++ ®!eic«Y?i). ?aai¤  a«Y¤aYa
cec®¤, ca® «i! i ?a®Fa ¬¬  c ‘ ¬®¦Ya !eai § ??a   c c?¤Y
Y¤?aacY®F® ae??«  for. (?¤ ?® Y ?ea ©aYai ??a ai c a ?®¬
aa?«Y !Y§ ¤®«¦®© ?®¤F®a®c??. ’ ?®Y ¤®aaa?® «?ei cea®??¬
?a®aeYaa?® « ¬).

2. ‚ea ¦Y?Y-?a®cYa?? cec?a«iYaai ?® ?a c?« ¬, ?a?c®¤?-
¬e¬ ¤«i ae??«®c while. …a«? cea ¦Y?Y-?a®cYa?? Ya«Yc®Y (?a-

– 93 –
a? ), a® ®?Ya a®a aY«  ae??«  ce?®«iYaai. ˜aaa®Y cea ¦Y?Y
aa ?aaYaai c ¤ ®¬ a«ac Y ? ? while(1), a® Yaai ? ? Ya«? !e
aa«®c?Y ?a®cYa??ce?®«i«®ai caYF¤ .…a«? cea ¦Y?Y-?a®cYa??
¤ Ya § cY?Y ®«i («®¦i), a® ae??« for ?aY?a e Yaai.

3. ‚ea ¦Y?Y-?aY¬Ya  ce?®«iYa ?a?a eY?i ®¤®F® ?«?
Ya?®«i??a ae??«®cea acYac??®c.

4. ‚ea ¦Y?Y “®?Ya a®a” (c®§¬®¦®, ?aaa®Y) cec?a«iYaai,
?®a«Y cYF® a?a c«Y?Y c®§ca e Yaai   e F 2.

…a«? ? ??Y-«?!® ?§ ®?ae?® «iea i«Y¬Ya®c ®?aeYe, a®
c¬Yaa® ?a ¤®«¦e !eai § ¤ e a®®acYaaacaie?Y a®c?? a § ?i-
a®©:

for (;;) (* // a® ¦Y, ca® ? for(;1;)
// cYce© ae??«
*)

C++: ˜a c?«  ‘ ¤«i ®?Ya a®a®c for ?a?¬Y?¬e ? c ‘++.
?¤ ?®, cea ¦Y?Y-??ae? «?§ ae?? c ‘++ ¬®¦Ya a ?¦Y c?«ic ai c
aY!i? ®!eic«Y?Y. ?®aY?aa ®!eic«Y®F® ?¤Ya?ae?? a®a  ?a®-
¤®«¦ Yaai ¤® ?®ae  ¤ ®F® ®?Ya a®a , Y ¤ «YY. ˜ ?a¬Ya,

for (int i = 1; i - 94 - ‘?a ?a?a a«Y¤aie?©: goto ¬Ya? ; ??Ya a®a goto ?YaY¤ Ya a?a c«Y?Y ®?Ya a®aa, ?¬YieY¬a a? § ai "¬Ya?a" (‘¬. "??Ya a®ae a ¬Ya? ¬?"   aaa.92 ®a?- F? « ), ?®a®ae© ¤®«¦   a®¤?aiai c ?aY¤Y« a a®© ¦Y aea?- ae??. ‘++: ‚ ‘++ ¤®?aaa?¬® ®!®©a? ®!eic«Y?Y a ice¬ ?«? Y- ice¬ ??ae? «?§ a®a®¬, Ya«? ia® ®!eic«Y?Y Y  a®¤?aai c® caaaYY¬ !«®?Y, ?®a®ae© a ?¦Y ®!a®¤?aai. ??Ya a®ae return …a«? a?? c®§ca a  aea?ae?? Y a cY void, a® aY«® aea?- ae?? ¤®«¦® a®¤Ya¦ ai ? ? ¬??¬a¬ ®¤? ®?Ya a®a return a«Y¤a- ieYF® ae®a¬ a : return cea ¦Y?Y-c®§ca a ; F¤Y cea ¦Y?Y-c®§ca a ¤®«¦® !eai a??  type ?«? a?? , ?aY®!a §aY¬®F® ? a??a, § ¤ ®¬a type, ?a? ?a?ac®Y??. ‡ - cY?Y cea ¦Y?ic®§ca a  ? Yaai § cY?Y, c®§ca e Y¬®Y ¤ ®© aea?ae?Y©. ‚ea ¦Y?Y, ce§ec ieYY aea?ae?i, c?¤  func(a??- a®?-¤Y©aac?aY«iea- aFa¬Ya®c) ic«iYaai § cY?Y¬ rvalue a?- ?  type,   Y ?¬Yaie?¬ (lvalue) § cY?Y¬. t = func(arg); // a ? ¬®¦® func(arg) = t; /* c ‘ a ? Y«i§i; c ‘++ a ? ¬®¦®, Ya«? a??®¬ c®§ca a  func ic«iYaai aae«?  */ (func(arg))++; /* c ‘ a ? Y«i§i; c ‘++ a ? ¬®¦®,Ya«? a??®¬ c®§ca a  func ic«iYaai aae«?  */ ‚e?®«Y?Y ce§®c  aea?ae?? § ? c?c Yaai, ?®F¤  caaaY- a?«ai ®?Ya a®a return; Ya«? ®?Ya a®a return ®aaaaaacaYa, a® ce?®«Y?Y "?a®c «?c Yaai" ? ?®a«Y¤Y© § ?aec eY© ae?Faa®© a?®!?Y aY«  aea?ae??. …a«? a?? c®§ca a  void, a® ®?Ya a®a return ¬®¦® § ??- a ai ? ?: (* ... return; *) !Y§ cea ¦Y?i-c®§ca a , «?!® ®?Ya a®a return c®®!eY ¬®- ¦Ya !eai ®?aeY. ‘++ ‚ aeY«®¬, ‘++ ic«iYaai  ¤-¬®¦Yaac®¬ i§e?  ‘. ˜a® ®§ - c Ya, ca®, c®®!eY F®c®ai, ¬®¦® ?®¬??«?a®c ai ?a®Fa ¬¬e ‘ c aaY¤Y ‘++, ®¤ ?® ?®¬??«?a®c ai ?a®Fa ¬¬e ‘++ c aaY¤Y ‘ ?a?  «?c?? c ?a ? ??a-«?!® a?Yae?ae?cYa??a ¤«i ‘++ ?®aaaa?ae?© Y«i§i. ˜Y?®a®aeY a?aa ae?? aaY!aia a?Yae? «i®F® c?¬ ?i. ?¤  ? a  ¦Y aea?ae?i func, ¤c ¦¤e ®!eic«Y i c ‘ a a §«?c- e¬? § cY?i¬?  aFa¬Ya®c, ce§®cYa ®e?!?a ?®ca®aY?i ?¬Y. ?¤ ?®, c ‘++ func ?aYa?aYa?aaYaai ? ? ?YaYFaa¦Y i aea?- ae?i -   a®, ¤®?aaa?¬® ia® ?«? Ya,§ c?a?a ®a ¤aaF?a ®!aa®i- aY«iaac. ?!e?Y c®?a®ae ?a®Fa ¬¬?a®c ?i   ‘++ a¬. c F« cY 5, "?a®ce ‘++" ¤®?a¬Ya  "˜ c «® a !®ae". ?« c  6, "?a a??© a?a c®c?? ?® ‘++" c a®¬ ¦Y ¤®?a¬YaY ?®¬®¦Ya c ¬ !eaaa® ?®- iai, ? ? ?¬Y® a !®a ia ?®aaaa?ae?? i§e? . - 95 - •®ai ‘++ cc®¤?a ®ceY ?«icYceY a«®c  ? ®?Ya ae?? ¤«i a - !®ae a ?« aa ¬?, Y?®a®aeY aaY¤aac  ‘++ ?a?¬Y?¬e cY ?®- aY?aa  ?« aa®c. ‘ c «  ¬e a aa¬®aa?¬ a?Y® ia?, ?a?®«i§aY¬eY Y§c?a?¬® ®a ?« aa®c aaY¤aac ,   § aY¬ § ©¬Y¬ai a?Yae?ae??®© a !®ae a ?« aa ¬? ? aci§ e¬? a ?¬? ¬Ya ?§¬ - ¬?. ‘ae«?? “aa ®c?  aae«®? ?a? ?®¬®e? a? § aY«Y© ? ®!a eY?Y ?® aae«? ¬ a aa¬ aa?c iaai   aaa.80 ®a?F? « . ’??e aae«®? Turbo C++ aYa® aci§ e a a?? ¬? a? § aY- «Y©. ’??e aae«®? ‘++ a«a¦ a ¤«i a®§¤ ?i  «? a®c ®!eY?a®c ? ?®§c®«iia ?YaY¤ ca  aFa¬Ya®c aea?ae?i¬ ?® aae«?Y. ’a ¤?ae?®- ® ‘ ?YaY¤ Ya  aFa¬Yae a®«i?® ?® § cY?i. ‘++ ?®§c®¤iYa ?YaY¤ c ai  aFa¬Yae? ? ?® § cY?i, a ? ? ?® aae«?Y. ˜a®aaeY aae«?? „«i ®!eic«Y?i aae«®? cY aea?ae?? ¬®¦Ya !eai ?a?®«i§®- c  ¤Y?« a a®a aae«??: int i = 0; int &ir = i; // ir ic«iYaai  «? a®¬ i ir = 2; // a® ¦Y, ca® i = 2 ‚ ¤ ®¬ ?a?¬YaY a®§¤ Yaai ?¬YaieYY § cY?Y ir, ic«i- ieYYai  «? a®¬ i, ?a? aa«®c??, ca® ??ae? «?§ a®a ?¬YYa a®a ¦Y a??, ca® ? aae«? . ‚e?®«Y?Y ®?Ya ae?© a ir ?¬YYa a®a ¦Y aY§a«ia a, ca® ? ce?®«Y?Y ?a a i. ˜ ?a¬Ya, ir = 2 ?a?ac ?- c Ya 2 ?YaY¬Y®© i,   &ir c®§ca e Ya  ¤aYa i. ?aFa¬Yae a??  aae«?? „Y?« a a®a aae«?? ¬®¦Ya a ?¦Y !eai ?a?®«i§®c  ¤«i ®!e- ic«Y?i c aea?ae?? ? a ¬Yaa®c a??  aae«??: void func1 (int i); void func2 (int &ir); // ir ?¬YYa a?? "aae«?    int" ... int sum=3; func1(sum); // sum ?YaY¤ Yaai ?® § cY?i func2(sum) // sum ?YaY¤ Yaai ?® aae«?Y ˜YaY¤ e© ?® aae«?Y  aFa¬Ya sum ¬®¦Ya !eai ?§¬YY ?ai¬® c func2. ˜ ?a®a?c, func1 ?®«ac Ya a®«i?® ?®??i  aFa- ¬Ya  sum (?YaY¤ ®F® ?® § cY?i), ?®ia®¬a a ¬  ?YaY¬Y i sum aea?ae?Y© func1 ?§¬YY  !eai Y ¬®¦Ya. ˜a? ?YaY¤ cY ae ?a?cYa?®F®  aFa¬Ya  x ?® § cY?i a®®a- cYaaacaie?© ae®a¬ «ie©  aFa¬Ya c aea?ae?? ?a??¬ Ya ?®??i x. ‹i!eY ?§¬YY?i ia®© ?®??? c aY«Y aea?ae?? Y ®aa ¦ iaai   a ¬®¬ § cY?? x. ˜ §a¬YYaai, aea?ae?i ¬®¦Ya c®§ca a?ai § - cY?Y, ?®a®a®Y § aY¬ ¬®¦Ya !eai ?a?®«i§®c ® ¤«i ?§¬YY?i x, ® a ¬®aa®iaY«i® ?§¬Y?ai  ?ai¬ai ? a ¬Yaa, ?YaY¤ e© Y© ?® § cY?i, aea?ae?i Y ¬®¦Ya. ’a ¤?ae?®e© ¬Ya®¤ ‘ ¤«i ?§¬YY?i x a®aa®?a c ?a?®«i- §®c ?? c ? cYaacY ae ?a?cYa?®F®  aFa¬Ya  &x, a® Yaai  ¤aYa  x,   Y a ¬®F® § cY?i x. •®ai &x ?YaY¤ Yaai ?® § cY?i, aea?ae?i ?®«ac Ya ¤®aaa? ? x !« F®¤ ai a®¬a, ca® Y© ¤®aaa?  ?®«acY i ?®??i&x. „ ¦Y Ya«? aea?ae?? Y aaY!aYaai ?§¬Yiai § cY?i x, aY¬ Y ¬YYY ?®«Y§® (a®ai ia® caYc a® c®§¬®¦- ®aaii Y¦Y« aY«iea ?®!®ceaiaeaeY?a®c) ?YaY¤ c ai &x, ®a®- !Y® Ya«? x ?aY¤aa c«iYa a®!®© !®«ieai ?® a §¬Ya ¬ aaaa?aa- aa ¤ ea. ˜YaY¤ c  x Y?®aaY¤aacY® ?® § cY?i cY¤Ya ? !Ya?®«Y§e¬ § aa a ¬ ? ¬ia?   ?®??a®c ?Y a ?®© aaaa?aaae - 96 - ¤ ea. ‘a c?¬ aa? a §«?cea aY «?§ ae?? aea?ae?? treble: ˜Y «?§ ae?i 1 int treble_1(n) (* return 3*n; *) ... int x, i = 4; x = treble_1(i); // aY?Yai x = 12, i = 4 ... ˜Y «?§ ae?i 2 void treble_2(int* np) (* *np = (*np)*3; *) ... treble_2(int &i); // aY?Yai i = 12 ˜Y «?§ ae?i 3 void treble_3(int& n) // n ?¬YYa a?? aae«?? (* n = 3*n; *) ... treble_3(i); // aY?Yai i = 36 ?!eic«Y?Y ae®a¬ «i®F®  aFa¬Ya  type& t (?«?, ca® i?- c?c «Ya®, type &t) aaa  c«?c Ya t ? ? ?¬Yieai a?? "aae«??   a?? type". ˜®ia®¬a ?a? ce§®cY treble_3 a ¤Y©aac?aY«ie¬  aFa¬Ya®¬ i, i ?a?®«i§aYaai ¤«i ??ae? «?§ ae?? ae®a¬ «i®F®  aFa¬Ya  aae«?? n. ‘«Y¤®c aY«i®, n ?Fa Ya a®«i  «? a  i, ? n = 3*n a ?¦Y ?a?ac ?c Ya i § cY?Y 3*i. …a«? ??ae? «?§ a®a ?aY¤aa c«iYa a®!®© ?®aa aa?«? ®!e- Y?a Yaae«®c®F® a?? , a® Turbo C++ a®§¤ aa caY¬Ye© ®!e- Y?a, ¤«i ?®a®a®F® aae«?  ¤Y©aacaYa ? ?  «? a: int& ir = 6; /* a®§¤ Yaai caY¬Ye© ®!eY?a int, a ?¬Y- Y¬  «? a  ir, ?®a®ae© ?®«ac Ya § cY?Y 6 */ float f; int& ir2 = f; /* a®§¤ Yaai caY¬Ye© ®!eY?a int, a ?¬YY¬  «? a  ir2, f ?YaY¤ ?a?ac®Y?Y¬ ?aY®!a §®cec Yaai */ ir2 = 2.0 // aY?Yai ir2 = 2, ® f ®aa Yaai !Y§ ?§¬YY- ?© ?ca®¬ a?cYa?®Y a®§¤ ?Y caY¬Yea ®!eY?a®c ?®§c®«iYa ce?®«iai ?aY®!a §®c ?i aae«®cea a??®c, Ya«? ae®a¬ «ieY ? ae ?a?cYa??Y  aFa¬Yae ?¬Yia a §«?ceY (® a®c¬Yaa?¬eY ¤«i ?a?c®Y?i) a??e. ˜a? ?YaY¤ cY ?® § cY?i, a §a¬YYaai, ?a®!- «Y¬ a ?aY®!a §®c ?Y¬ a??®c ¬YieY, ?®a?®«i?a ?YaY¤ ?a?ac®Y- ?Y¬ ae®a¬ «i®¬a  aFa¬Yaa ?®??i ae ?a?cYa?®F®  aFa¬Ya  ¬®- ¦Ya !eai ae?§?cYa?? ?§¬YY . ??Ya ae?i ¤®aaa?  ? ?®aY?aaa ??Ya ae?i ¤®aaa?  ? ?®aY?aaa (?«? a §aYeY?i ?®aY?aa ) :: (¤c  ¤c®Ya®c?i ?®¤ai¤) ?®§c®«iYa ®aaeYaac«iai ¤®aaa? ? F«®! «i®¬a (?«? a ?a®¤®«¦?aY«i®aaii ae ©« ) ?¬Y? ¤ ¦Y c a®¬ a«ac Y, ?®F¤  ia® ?¬i a?aea® «®? «ie¬ ?YaY®!eic«Y?Y¬ - 97 - ia®F® ?¬Y? (a¬.aaa.29).: int i; // F«®! «i i ?YaY¬Y i i ... void func(void); (* int i=0; // «®? «i i i a?aec Ya F«®! «iai i i = 3; // ia  i - «®? «i i ::i = 4; // ia  i - F«®! «i i printf ("%d",i); // !a¤Ya  ?Yc a ® § cY?Y 3 *) ˜a?cY¤Ye© ?®¤a !®a Ya a ?¦Y, Ya«? i ic«iYaai aa a?- cYa?®© ?YaY¬Y®© aa®ci ae ©« . ˜a? ?a?®«i§®c ?? a a?? ¬? ?« aa®c ®?Ya ae?i :: ?¬YYa ¤aaF®© a¬ea«; ia® a aa¬ aa?c Yaai ¤ «YY c ¤ ®© F« cY. ??Ya ae?? new ? delete ??Ya ae??new ? delete ce?®«iia ¤? ¬?cYa?®Y a a?aY¤Y«Y- ?Y ? ®a¬Ya a a?aY¤Y«Y?i ? ¬ia?,   «®F?c®, ® a !®«YY cea®??¬ ?a?®a?aYa®¬, Y¦Y«? aa ¤ aae?Y !?!«?®aYceY aea?- ae?? aY¬Y©aac  malloc ? free (‘¬. a?a c®c?? ?® !?!«?®aY?Y). “?a®eYe© a?a ?a?a: a? § aY«i-?¬Y? = new ?¬i ?ae? «?§ a®a-?¬Y?>;
delete a? § aY«i-?¬Y?;

?¬i ¬®¦Ya !eai «i!®F® a?? , ?a®¬Y “aea?ae?i, c®§ca e i-
e i …” (®¤ ?®, a? § aY«? aea?ae?© §¤Yai ¤®?aaa?¬e).

new ?ea Yaai a®§¤ ai ®!eY?a a a??®¬ “?¬Y?”, a a?aY¤Y-
«?c (?a? c®§¬®¦®aa?) sizeof(?¬i) ! ©a c ac®!®¤®© ®!« aa?
? ¬ia? (?®a®aai a ?¦Y  §ec ia “?acY©”). ˜a®¤®«¦?aY«i®aai
aaeYaac®c ?i c ? ¬ia? ¤ ®F® ®!eY?a  – ®a a®c?? YF® a®§¤ –
?i ? ¤® aYa ?®a, ?®?  ®?Ya ae?i delete Y ®a¬Y?a a a?aY¤Y-
«Yai ¤«i YF® ? ¬iai, «?!® ¤® ?®ae  a !®ae ?a®Fa ¬¬e.

‚ a«ac Y aa?Ye®F® § cYaeY?i new c®§ca e Ya a? § aY«i
®c®F® ®!eY?a . ˜aaa®© a? § aY«i ®§ c Ya Ya¤ c®Y § cYaeY-
?Y ®?Ya ae?? ( ?a?¬Ya, Y¤®aa a®ce© ®!eY¬ ?«? a«?e?®¬
!®«ie i aea F¬Ya?a®c ®aai ?ac?). ? ? ? c a«ac Y malloc,
?aY¦¤Y cY¬ ?ea aiai ®!a e aiai ? ®c®¬a ®!eY?aa, a«Y¤aYa
?a®cYa?ai a?Y § aY«i    «?c?Y ?aaa®F® § cY?i. ?¤ ?®, c
®a«?c?Y ®a malloc, new a ¬  cec?a«iYa a §¬Ya “?¬Y?”, ? ic®
a? §ec ai ®?Ya ae?i sizeof Ya Y®!a®¤?¬®aa?. „ «YY c®§ca e –
Y¬e© a? § aY«i !a¤Ya ?¬Yai ?a c?«ie© a??, “a? § aY«i ?¬Y-
?”, !Y§ Y®!a®¤?¬®aa? ic®F® ?a?cY¤Y?i a??®c.

name *nameptr // name ¬®¦Ya ?¬Yai «i!®© a??, ?a®¬Y
aea?ae??

if (!(nameptr = new name)) (*
errmsg(“˜Y¤®aa a®c® ? ¬ia? ¤«i name”);
exit (1);
*)
// ?a?®«i§®c ?Y *nameptr ¤«i ??ae? «?§ ae?? ®!eY?a  new
name

delete nameptr; // a¤ «Y?Y name ? ®a¬Y  a a?aY¤Y«Y?i
// sizeof(name) ! ©a®c ? ¬ia?

new, !a¤ac? ?«icYce¬ a«®c®¬, Y a¦¤ Yaai c ?a®a®a??Y.

– 98 –

??Ya ae?i new a ¬ aa?c ¬?

…a«? “?¬i” ia® ¬ aa?c, a® c®§ca e Y¬e© new a? § aY«i
a? §ec Ya   ?Yace© i«Y¬Ya ¬ aa?c . ˜a? a®§¤ ?? a ?®¬®eii
new ¬®F®¬Yaea ¬ aa?c®c a«Y¤aYa a? §ec ai caY a §¬Ya®aa?
¬ aa?c :

mat_ptr = new int[3][10][12]; // a ? ¬®¦®
mat_ptr = new int[3][][12]; // Y«i§i
mat_ptr = new int[][10][12]; // Y«i§i

::operator new

˜a? ?a?®«i§®c ?? a ®!eY?a ¬?, Y ic«iie?¬?ai ?« aa ¬?,
new ce§ec Ya aa ¤ aaai !?!«?®aYcai ?®¤?a®Fa ¬¬a, global
::operator new. „«i ®!eY?a®c ?« aa®c a??  “?¬i” ¬®¦Ya !eai
®?aY¤Y«Y  a?Yae? «i i ®?Ya ae?i ?¬i::operator new. new, ?a?-
¬Y?aY«i®? ®!eY?a ¬ ?« aa  “?¬i”, § ?aa? Ya a®®acYaaacaieai
®?Ya ae?i ?¬i::operator new; c ?a®a?c®¬ a«ac Y ?a?®«i§aYaai
aa ¤ aa i ®?Ya ae?i ::operator new.

??ae? «?§ a®ae a ®?Ya ae?Y© new

„aaF?¬ ?aY?¬aeYaac®¬ ®?Ya ae?? new ?® aa cY?i a malloc
ic«iYaai ®?ae?® «ie© ??ae? «?§ a®a (a®ai calloc ®c?e Ya YF®
a a?aY¤Y«Y?Y ? a«i). ˜a? ®aaaaaac?? icea ??ae? «?§ a®a®c
®!eY?a, a®§¤ c Y¬e© new, a®¤Ya¦?a Y?aY¤a? §aY¬eY ¤ eY
(“¬aa®a”). ?!eY?ae, a a?aY¤Y«iY¬eY new, §  ?a?«icY?Y¬ ¬ a-
a?c®c, ¬®Faa ??ae? «?§?a®c aiai a®®acYaaacaie?¬ cea ¦Y?Y¬ c
?aaF«ea a?®!? a:

int_ptr = new int(3);

? aa?ce ?« aa®c a ?®aaaa?a®a ¬? ??ae? «?§?aaiaai ?a?
?®¬®e? ?®aaaa?a®a -a¬®«c ?i (a¬. aaa.115 ®a?F? « ). ??aY-
¤Y«iY¬ i ?®«i§®c aY«Y¬ ®?Ya ae?i new a § ¤ c Y¬®© ?®«i§®c aY-
«Y¬ ??ae? «?§ ae?Y© ?Fa Ya ?«icYcai a®«i c ?®aaaa?a®a a ‘++
¤«i ®!eY?a®c a??  ?« aa .

?« aae

?« aae ‘++ ?aY¤aa¬ aa?c ia a®§¤ ?Y a ae?aY?© a?aaY¬e
?aY¤®?aY¤Y«Yea a??®c. ? ¦¤e© a?? ?« aa  ?aY¤aa c«iYa a®!®©
a?? «i®Y ¬®¦Yaac® ®!eY?a®c ? ®?Ya ae?© (?a c?«),  a ?¦Y
?aY®!a §®c ?©, ?a?®«i§aY¬ea ¤«i a®§¤ ?i, ¬ ??a«?a®c ?i ?
a?ca®¦Y?i a ??a ®!eY?a®c. ?®Faa !eai ®!eic«Ye ?a®?§c®¤eY
?« aae,  a«Y¤aie?Y ?®¬?®Yae ®¤®F® ?«? !®«YY ! §®cea (?®-
a®¦¤ ie?a) ?« aa®c.

‚ ‘++ aaaa?aaae ? ®!eY¤?Y?i a aa¬ aa?c iaai ? ? ?« a-
ae a ®?aY¤Y«Ye¬? a¬®«c ?i¬? ?a c?« ¤®aaa? .

“?a®eYe©, c “?Yac®¬ ?a?!«?¦Y??”, a?a ?a?a ®!eic«Y-
?i ?« aa  a«Y¤aie?©:

?«ic-?« aa  ?¬i-?« aa 
<:>[]

?«ic-?« aa  – ia® class, struct ?«? union.

??ae?® «ie© ! §®ce©-a??a®? ?YaYc?a«iYa! §®ce© ?« aa?«?
?« aae, ?§ ?®a®a®F®?¬i-?« aa  !YaYa (?«?  a«Y¤aYa) ®!eY?ae
? ?a c?« . …a«? ®!eic«Ye Y?®a®aeY ! §®ceY?« aae, a® ?« aa
“?¬i-?« aa ”  §ec Yaai ?a®?§c®¤e¬ ?« aa®¬ (a¬.aaa.110,
“„®aaa? ? ! §®ce¬ ? ?a®?§c®¤e¬ ?« aa ¬”). ˜ §®ce© a??a®?
a®¤Ya¦?a a?Yae?ae?? a®ae ¤®aaa?  ?® a¬®«c ?i ? ®?ae?® «ieY

– 99 –
?a ?YaY®?aY¤Y«Y?i, ?®a®aeY ¬®Faa ¬®¤?ae?ae?a®c ai ?a c  ¤®a-
aa?  ?a®?§c®¤®F® ?« aa  ? ?®¬?®Ya ¬ ! §®cea ?« aa®c(a¬.
aaa.108 ®a?F? « , ““?a c«Y?Y ¤®aaa?®¬ ? ?®¬?®Ya ¬”).

??ae?® «ie© a??a®?-?®¬?®Ya®c ®!eic«iYa ?®¬?®Yae
?« aa  (¤ eY ? aea?ae??) ¤«i ?¬Y?-?« aa  a a¬®«c ?i¬? ?
?YaY®?aY¤Y«Y?i¬? a?Yae?ae?? a®a®c ¤®aaa? , ?®a®aeY ¬®Faa c«?-
iai   a®, ? ??Y aea?ae?? ? ? ??¬ ?®¬?®Ya ¬ ?« aa  ¬®Faa
?¬Yai ¤®aaa?.

?¬Y  ?« aa®c

?¬i-?« aa  ia® «i!®© ?¤Ya?ae?? a®a, a?? «ie© c ?aY¤Y-
« a ac®YF® ?®aY?aa . ‚ ?« aa a aaaa?aaa ? c ®!eY¤?Y?ia
?¬i-?« aa  ¬®¦Ya!eai ®?aeY® (a¬. “‘aaa?aaae ? a??e, ®?aY¤Y-
«iY¬eY ?®«i§®c aY«Y¬ (typedef) !Y§ aYF®c”   aaa.65 ®a?F? –
« ).

’??e ?« aa®c

?!eic«Y?Y a®§¤ Ya a?? «ie© a??, a?? ?« aa 
“?¬i-?« aa “. ˜a® ?®§c®«iYa c ¬ ®!eic«iai ?®a«Y¤aie?Y ®!eY?-
ae ?« aa  (?«? ca®¦¤Y?i ?« aa ) ¤ ®F® a?? ,   a ?¦Y ®!e-
Y?ae, ic«iie?Yai ?a®?§c®¤e¬? ®a ia®F® a??  (a ??Y ? ? a? –
§ aY«?, aae«??, ¬ aa?ce ®!eY?a®c “?¬i-?« aa ” ? a.¤.):

class X (* … *);
X x, &xr, *xptr, xarray[10];
/* cYaeaY ®!eY?a : a??  X, aae«?    X, a? § aY«i   X
? ¬ a?c i«Y¬Ya®c a??  X */

struct Y (* … *);
Y y, &yr, *yptr, yarray[10];
// ‘ ?®§c®«iYa ?¬Yai
// struct Y y, &yr, *yptr, yarray[10];

union Z (* … *);
Z z, &zr, *zptr, zarray[10];
// ‘ ?®§c®«iYa ?¬Yai
// union Z z, &zr, *zptr, zarray[10];

?a¬Ya?¬ a §«?c?Y ¬Y¦¤a ®!eic«Y?Y¬ aaaa?aaa ? ®!eY¤?Y-
?© c ‘ ? ‘++: c ‘ ?«icYceY a«®c  struct ? union ®!i§ aY«i-
e, ® c ‘++ ®? a¦e a®«i?® c a®¬ a«ac Y, ?®F¤  ?¬Y 
?« aa®c, Y ? Z, a?aeae (a¬. a«Y¤aie?© a §¤Y«).

?®aY?aa ?¬Y? ?« aa 

?®aY?aa ?¬Y? ?« aa  ic«iYaai «®? «ie¬, a Y?®a®ae¬?
®a®!Y®aai¬?, a a ?aYae¬? ¤«i ?« aa®c. ?®aY?aa ?¬Y?
?« aa   c? Yaai a a®c?? YF® ®!eic«Y?i ? § ? c?c Yaai
c¬YaaY a ®!eY¬«ie?¬ !«®?®¬. ?¬i ?« aa  a?aec Ya «i!®© ?« aa,
®!eY?a, a¬Ya a®a ?«? aea?ae?i a aY¬ ¦Y ?¬YY¬ c ®!eY¬«ieY¬
?®aY?aaY. …a«??¬i ?« aa  ®!eic«Y® c ?®aY?aaY, a®¤Ya¦ eY¬
®!eic«Y?Y ®!eY?a , aea?ae?? ?«? a¬Ya a®a  a aY¬ ¦Y ?¬YY¬,
®!a eY?Y ? ?« aaa c®§¬®¦® a®«i?® ?a? ?®¬®e? aa®cY®F®
a?Yae?ae?? a®a  a?? . ˜a® ®§ c Ya, ca® a ?¬YY¬ ?« aa  a¦®-
?a?®«i§®c ai ?«ic ?« aa , class, struct ?«? union. ˜ ?a?¬Ya,

struct S (* … *);
int S(struct S *Sptr);
void func(void)
(*
S t; // Y¤®?aaa?¬®Y ®!eic«Y?Y: Ya ?«ic  ?« aa  // ?
aea?ae?? S c ?®aY?aaY struct S s; // a ? ¬®¦®: Yaai aa®cY-
?Y ?«icY¬ ?« aa 
S(&s); // a ? ¬®¦®: ia® ce§®c aea?ae??

– 100 –
*)

‘++ ?®§c®«iYa a ?¦Y Y?®«®Y ®!eic«Y?Y ?« aa :

class X;// YeY Ya ?®¬?®Ya®c !
struct Y;
union Z;

˜Y?®«eY ®!eic«Y?i ?®§c®«iia Y?®a®aeY aae«?? ? ?¬Y ¬
?« aa®c X, Y ?«? Z (®!ec® aae«??   a? § aY«? ®!eY?a®c
?« aa®c) ¤® a®F®, ? ? ?« aae !a¤aa ?®«®aaii ®?aY¤Y«Ye (a¬.
“?!eic«Y?Y ?®¬?®Ya®c aaaa?aaae”   aaa.65 ®a?F? « ). ˜ –
§a¬YYaai, ?aY¦¤Y cY¬ ce a¬®¦YaY ®!eic?ai ? ?a?®«i§®c ai ®!e-
Y?ae ?« aa®c, ce ¤®«¦e ce?®«?ai ?®«®Y ®!eic«Y?Y ?« aa®c
a® caY¬? ?a ?®¬?®Ya ¬?.

?!eY?ae ?« aa®c

?!eY?ae ?« aa®c ¬®Faa !eai ?a?ac®Ye (Ya«? Y !e«® § ?-
aYeY® ?®??a®c ?Y), ?YaY¤ e ? ?  aFa¬Yae aea?ae??, c®§ca –
eYe aeaa?ae?Y© (§  Y?®a®ae¬? ?a?«icY?i¬?) ? a.¤. ˜a®c?Y
®?Ya ae?? a ®!eY?a ¬? ? ?®¬?®Ya ¬? ?« aa®c¬®Faa !eai a §-
«?ce¬? a?®a®! ¬? ®?aY¤Y«Ye ?®«i§®c aY«Y¬, c?«ic i aea?ae??-
?®¬?®Yae ? “¤aa§ii”,   a ?¦Y ?YaY®?aY¤Y«Y?Y aa ¤ aaea
aea?ae?© ? ®?Ya ae?© ?a? a !®aY a ®!eY?a ¬? ?®?aYa®F® ?« a-
a . ˜YaY®?aY¤Y«Y?Y aea?ae?© ? ®?Ya ae?©  §ec Yaai ?YaYFaa§-
?®©. ??Ya ae?? ? aea?ae??, ®Fa ?cYeY ®!eY?a ¬? ?®?aYa®F®
?« aa  (?«? c§ ?¬®aci§ ®© Faa??e ?« aa®c)  §ec iaai aea?-
ae?i¬-?®¬?®Ya ¬? ¤ ®F® ?« aa . ‘++ ?¬YYa ¬Ya ?§¬, ?®§c®-
«iie?© ce§c ai a® ¦Y ?¬i aea?ae?? ?«? ®?Ya ae?? ¤«i ce?®«Y?i
¤aaF®© § ¤ c?, c § c?a?¬®aa? ®a a??  ?«? c?a«   aFa¬Ya®c
?«? ®?Ya ¤®c.

‘??a®? ?®¬?®Ya®c ?« aa 

??ae?® «ie© a??a®?-?®¬?®Ya®c ?aY¤aa c«iYa a®!®© ?®a-
«Y¤®c aY«i®aai ®!eic«Y?© ¤ ea («i!®F® a?? , c?«ic i a-
¬Ya a®ae,!?a®ceY?®«i ? ¤aaF?Y ?« aae) ? ®!eic«Y?© ? ®?aY¤Y-
«Y?© aea?ae?©, ? ¦¤®Y ?§ ?®a®aea ¬®¦Ya ?¬Yai®?ae?® «ieY
a?Yae?ae?? a®ae ?« aa  ? ¬ia? ? ¬®¤?ae?? a®ae ¤®aaa? . ??aY¤Y-
«YeY a ??¬ ®!a §®¬ ®!eY?ae  §ec iaai ?®¬?®Ya ¬? ?« aa .
‘?Yae?ae?? a®ae ?« aa  ? ¬ia? auto, extern ? register c ¤ ®¬
a«acc Y Y¤®?aaa?¬e. ?®¬?®Yae ¬®Faa !eai ®!eic«Ye a® a?Y-
ae?ae?? a®a ¬? ?« aa  ? ¬ia? static.

”a?ae??-?®¬?®Yae

”a?ae?i, ®!eic«Y i !Y§ a?Yae?ae?? a®a friend,  §ec Ya-
ai aea?ae?Y©-?®¬?®Ya®¬ ?« aa . ”a?ae??, ®!eic«YeY a ¬®¤?-
ae?? a®a®¬ friend,  §ec Yaai “aea?ae?Y©-¤aaF®¬”.

?¤® ? a® ¦Y ?¬i ¬®¦Ya ?a?®«i§®c aiai ¤«i ®!®§ cY?i
!®«YY cY¬ ®¤®© aea?ae??, ?a? aa«®c??, ca® ®? ®a«?ce ?® a?-
? ¬ ?«? c?a«a  aFa¬Ya®c.

?«icYc®Y a«®c® this

˜Y-aa a?cYa??Y aea?ae?? ?®¬?®Ya®c a !®a ia a ®!eY?a ¬?
a??  ?« aa , a ?®a®ae¬? ®? ce§ec iaai. ˜ ?a?¬Ya, Ya«? xia®
®!eY?a ?« aa  X,   f ia® aea?ae?i-?®¬?®Ya X, a® ce§®c aea?-
ae? x.f() a !®a Ya a x. ? «®F?ce¬ ®!a §®¬, Ya«? xptr Yaai
a? § aY«i ®!eY?a  X, a® ce§®c aea?ae?? xptr->() a !®a Ya a
*xptr. ?a?a¤  f ¬®¦Ya § ai, a ? ??¬ x a !®a ai? ‘++ ?YaY¤ –
Ya f a? § aY«i   x,  §ec Y¬e© this. this ?YaY¤ Yaai ? ?
a?aeae©  aFa¬Ya ?a? ce§®cY Y-aa a?cYa??a aea?ae?©-?®¬?®Y-
a®c.

– 101 –
?«icYc®Ya«®c® this ?aY¤aa c«iYa a®!®© «®? «iai ?YaY-
¬Yai, ¤®aaa?ai c aY«Y Y-aa a?cYa?®© aea?ae??-?®¬?®Ya .
this Y aaY!aYa ®!eic«Y?©, ?   YF® aY¤?® caaaYc iaai ic-
eY aae«?? c ®?aY¤Y«Y?? aea?ae??. ?¤ ?®, ®® Yic® ?a?®«i-
§aYaai c aea?ae?? ¤«i aae«?? ??®¬?®Ya ¬. …a«?,  ?a?¬Ya,
ce§ec Yaai x.f(y), F¤Y y Yaai ?®¬?®Ya X, a® this aaa  c-
«?c Yaai   &x,   y aaa  c«?c Yaai   this->y, ca® i?c?c –
«Ya® x.y.

‚aaa ?c Y¬eY aea?ae?? (inline)

”a?ae?i-?®¬?®Ya  ¬®¦Ya !eai ®!eic«Y c ?aY¤Y« a ac®Y-
F® ?« aa , ® ®?aY¤Y«Y  F¤Y-«?!® c ¤aaF®¬ ¬YaaY. ?
 ®!®a®a, aea?ae?i-?®¬?®Ya  ¬®¦Ya !eai ? ®!eic«Y , ? ®?aY-
¤Y«Y  c ac®Y¬ ?« aaY, ? a®F¤  ®   §ec Yaai caaa ?c Y¬®©
aea?ae?Y©. (˜Y?®a®aeY ?a?¬Yae a ??a aea?ae?© ?®? § e c F« cY
5 ¤®?a¬Ya  “˜ c «® a !®ae”).

‚ Y?®a®aea a«ac ia Turbo C++ ¬®¦Ya a¬Yie?ai § aa ae
caY¬Y?   ce§®c aea?ae??, ?®¤aa  c«?c i c¬Yaa® ce§®c  aea?-
ae?? Y?®aaY¤aacY® ?®¬??«?a®c e© ?®¤ aY«  aea?ae??. ˜a®a
?a®aeYaa,  §ec Y¬e© caaa ?c Y¬e¬ a ae?aY?Y¬ aY«  aea?ae??,
Y c«?iYa   ?®aY?aa ?¬Y? aea?ae?? ?«? YY  aFa¬Ya®c.
‚aaa ?c Y¬®Y a ae?aY?Y Y caYF¤  ?®«Y§® ? ¦Y« aY«i®. ‘?Y-
ae?ae?? a®a inline ?aY¤aa c«iYa a®!®© § ?a®a (?«? aaY!®c ?Y)
?®¬??«ia®aa, c ?®a®a®¬ ce a®®!e YaY, ca® caaa ?c Y¬eY a ae?-
aY?i ¦Y« aY«ie. ? ? ? c a«ac Y a?Yae?ae?? a®a  ?« aa  ? ¬ia?
register, ?®¬??«ia®a ¬®¦Ya «?!® a¤®c«Yac®a?ai, «?!® ?a®?F®-
a?a®c ai c eY ?®¦Y« ?Y.

?ceY ?«? YiceY § ?a®ae inline«aceY caYF® aY§Yac?a®-
c ai ¤«i Y!®«ie?a ?® ®!eY¬a ? c aa® ce§ec Y¬ea aea?ae?©, a –
??a ? ? aea?ae?? a??  operator, aY «?§aie?a ?YaYFaa¦YeY
®?Ya a®ae. ˜ ?a?¬Ya, a«Y¤aieYY ®!eic«Y?Y ?« aa :

int i; // global int
class X (*
public:
char* func(void) (* return i; *) // inline ?® a¬®«c ?i
char* i;
*);

i?c?c «Ya®

inline char* X::func(void) (*return i; *)

func ®?aY¤Y«iYaai “cY” ?« aa  a ice¬ a?Yae?ae?? a®a®¬
inline. ˜YaY¬Y i i, c®§ca e Y¬ i func, Yaai char* i ?« aa 
X – a¬. a §¤Y«, ?®acieYe© ?®aY?aaa ?®¬?®Ya®c   aaa.107
®a?F? « .

‘a a?cYa??Y ?®¬?®Yae

‘?Yae?ae?? a®a ?« aa  ? ¬ia? static ¬®¦Ya !eai ?a?®«i§®-
c  c ®!eic«Y?ia ?®¬?®Ya®c ¤ ea ? aea?ae?©-?®¬?®Ya®c
?« aa . ’ ??Y ?®¬?®Yae  §ec iaai aa a?cYa??¬? ? ?¬Yia
ac®©aac , ®a«?ceY ®a ac®©aac Y-aa a?cYa??a ?®¬?®Ya®c.‚
a«ac Y Y-aa a?cYa??a ?®¬?®Ya®c ¤«i ? ¦¤®F® ®!eY?a  ?« aa 
“aaeYaacaYa” ®a¤Y«i i ?®??i; c a«ac Y ¦Y aa a?cYa??a ?®¬?®-
Ya®c aaeYaacaYa a®«i?® ®¤  ?®??i,   ¤®aaa? ? Y© ce?®«i-
Yaai !Y§ aae«??   ? ?®©-«?!® ?®?aYae© ®!eY?a ?« aa . …a«?
a ia® aa a?cYa??© ?®¬?®Ya ?« aa  •, a® ? Y¬a ¬®¦® ®!a –
a?aiai ? ? •::a (¤ ¦Y Ya«? ®!eY?ae ?« aa  • YeY Y a®§¤ e).
?¤ ?®, ¬®¦® ce?®«?ai ¤®aaa? ? a ? ?a? ?®¬®e? ®!ecea ®?Y-
a ae?© ¤®aaa?  ? ?®¬?®Ya ¬. ˜ ?a?¬Ya, c c?¤Y y.x ? yptr->x,
F¤Yy ia® ®!eY?a ?« aa  X,   yptr ia® a? § aY«i ®!eY?a  ?« a-

– 102 –
a  X, a®ai cea ¦Y?i y ? yptr YeY Y cec?a«Ye. ‚ c aa®aa?,
aa a?cYa? i aea?ae?i-?®¬?®Ya ¬®¦Ya !eai ce§c   ? ? a ?a-
?®«i§®c ?Y¬ a?Yae? «i®F® a?a ?a?a  ce§®c  aea?ae?© ?®¬?®-
Ya®c, a ? ? !Y§ YF®.

class X (*
int member_int;
public:
static void func(int i, X* ptr);
*);
void g(void);
(*
X obj;
func(1, &obj); // ®e?!? , Ya«? F¤Y-?!a¤i YeY
// Y ®?aY¤Y«Y  F«®! «i i func()
X::func(1, &obj); // ce§®c static func() c X
// ¤®?aaa?¬ a®«i?® ¤«i aa a?cYa??a aea?ae?©
obj.func(1, &obj); // a® ¦Y a ¬®Y (¤®?aaa?¬® ? ? ¤«i
aa a?// cYa??a, a ? ? Y-aa a?cYa??a aea?ae?©)
*)

˜®a?®«i?a aa a?cYa? i aea?ae?i-?®¬?®Ya ¬®¦Ya ce§ec ai-
ai !Y§ acYa  ? ?®F®-«?!® ?®?aYa®F®®!eY?a , ®  Y ?¬YYa
a? § aY«i this. ‘«Y¤aac?Y ?§ ia®F® a ?®c®, ca® aa a?cYa? i
aea?ae?i-?®¬?®Ya Y ?¬YYa ¤®aaa?  ? Y-aa a?cYa??¬ ?®¬?®-
Ya ¬ !Y§ ic®F® § ¤ ?i ®!eY?a  ?a? ?®¬®e? .?«? ->. ˜ ?a?-
¬Ya, aacYa®¬®!eic«Y?©, a¤Y« ea c?aY¤e¤aeY¬ ?a?¬YaY, func
¬®¦Ya !eai ®?aY¤Y«Y  a«Y¤aie?¬ ®!a §®¬:

void X%%func(int i, X* ptr)
(*
member_int = i; //   ? ?®© ®!eY?a aae« Yaai
// member_int? ?e?!?  !
ptr->member_int = 1; // a ? ¬®¦®: aY?Yai ¬e § Y¬!
*)

˜Y§ acYa  caaa ?c Y¬ea aea?ae?©,aa a?cYa??Y aea?ae??-?®¬-
?®Yae F«®! «iea ?« aa®c ?¬Yia cYe?©a?? ?®¬?®®c??. ‘a –
a?cYa??Y aea?ae??-?®¬?®Yae Y ¬®Faa ic«iaiai c?aaa «ie¬?
aea?ae?i¬?. ˜Y¤®?aaa?¬® ?¬Yai aa a?cYa?ai ? Y-aa a?cYa?ai
aea?ae??-?®¬?®Yae a ®¤? ?®ce¬? ?¬Y ¬? ? a?? ¬?  aFa¬Y-
a®c.

?!eic«Y?Y aa a?cYa?®F® ?®¬?®Ya  ¤ ea c ®!eic«Y??
?« aa  Y ic«iYaai ®?aY¤Y«Y?Y¬, ?®ia®¬a F¤Y-?!a¤i YeY
¤®«¦® ?¬Yaiai ®?aY¤Y«Y?Y, ®acYc ieYY §  a a?aY¤Y«Y?Y ? –
¬ia? ? ??ae? «?§ ae?i. ??aY¤Y«Y?Y aa a?cYa?®F® ?®¬?®Ya –
¤ ea¬®¦Ya !eai ®?aeY®, Ya«? ¤Y©aacaYa aaY¤aac® “??ae? «?-
§ ae?? a«i¬? ?® a¬®«c ?i”.

‘a a?cYa??Y ?®¬?®Yae ?« aa ,®!eic«Y®F® «®? «ie¬ ?®
®a®eY?i ? Y?®a®a®© aea?ae??, Y ?¬Yia a??  ?®¬?®®c?? ? Y
¬®Faa !eai ??ae? «?§?a®c e. ‘a a?cYa??Y ?®¬?®Yae F«®! «i-
®F® ?« aa  ¬®Faa !eai ??ae? «?§?a®c e ?®¤®!® ®!ece¬ F«®-
! «ie¬ ®!eY?a ¬, ® a®«i?® c?®aY?aaY ae ©« . ‘a a?cYa??Y
?®¬?®Yae ?®¤c?iiaai ®!ece¬ ?a c?« ¬ ¤®aaa?  ? ?®¬?®Y-
a ¬ ?« aa , §  ?a?«icY?Y¬ a®F®, ca® ®? ¬®Faa !eai ??ae? –
«?§?a®c e.

class X (*

static int x;

*); int X::x = 1;

?« c®Y ?a?®«i§®c ?Y aa a?cYa??a ?®¬?®Ya®c a®aa®?a c
a®¬, ca®!e ®aa«Y¦?c ai ¤ eY, ®!e?Y ¤«i caYa ®!eY?a®c ?« a-

– 103 –
a ,? ?  ?a?¬Ya, c?a«® a®§¤ ea ®!eY?a®c, «?!® ?a?®«i§®c –
e© ?®a«Y¤?¬ aYaaaa ?§ ?a« , a §¤Y«iY¬®F® caY¬? ?®¤®!e¬?
®!eY?a ¬?. ‘a a?cYa??Y ?®¬?®Yae ?a?®«i§aiaai a ?¦Y ¤«i:

– a¬YieY?i c?a«  c?¤?¬ea F«®! «iea ?¬Y

– a®F®, ca®!e a¤Y« ai ®cYc?¤e¬, ? ??Y ?¬Y® aa a?cYa-
??Y ®!eY?ae ? ?®¬a ?« aaa ?a? ¤«Y¦ a

– a §aYeY?i a?a c«Y?i ¤®aaa? ¬ ? ?a ?¬Y ¬.

?®aY?aa ?®¬?®Ya 

‚ea ¦Y?Y X::func() c ?a?¬YaY, ?a?cY¤Y®¬  aaa.106
®a?F? « , ?a?®«i§aYa?¬i ?« aa  Xa ¬®¤?ae?? a®a®¬ ?®aY?aa 
¤®aaa? , ®!®§ c ie?¬, ca® func, a®ai ? ®?aY¤Y«Y  “cY”
?« aa , c ¤Y©aac?aY«i®aa? ic«iYaai aea?ae?Y©-?®¬?®Ya®¬ • ?
aaeYaacaYa c ?®aY?aaY •. ‚«?i?Y •:: a a?a®aaa iYaai  
aY«® ®?aY¤Y«Y?i ia®© aea?ae??. ˜a® ®!eiaiYa, ?®cY¬a c®§ca –
e Y¬®Y aea?ae?Y©§ cY?Y i ®a®a?aai ? X::i, char* i ?§ •,  
Y ? F«®! «i®© ?YaY¬Y®© int i. ˜Y§ ¬®¤?ae?? a®a  •:: aea?-
ae?i func ?aY¤aa c«i«  !e ®!ecai, Y ®a®aieaiai ? ?« aaa
aea?ae?i, c®§ca e ieai F«®! «iai ?YaY¬Yai int i.

‘«Y¤®c aY«i®, caY aea?ae??-?®¬?®Yae  a®¤iaai c ?®-
aY?aaY ac®YF® ?« aa , ¤ ¦Y Ya«? ®? ®?aY¤Y«Ye cY ia®F®
?« aa .

? ?®¬?®Ya ¬ ¤ ea ?« aa  • ¬®¦® ®!a e aiai ?a? ?®-
¬®e? ®?Ya ae?© ce!®a  . ? -> (? ? ? c aaaa?aaa a ‘). ”a?ae??-
?®¬?®Yae ¬®¦®ce§ec ai a ?¦Y ?a? ?®¬®e? ®?Ya ae?© ce!®a 
(a¬. “?«icYc®Y a«®c® this   aaa.105 ®a?F? « ). ˜ ?a?¬Ya,

class X (*
public:
int i;
char name[20];
X *ptr1;
X *ptr2;
void Xfunc(char *data, X* left, X* right); // ®?aY¤Y«Y-
?Y //  a®¤?aai Y §¤Yai
*);
void f(void);
(*
X x1, x2, *xptr=&x1;
x1.i = 0;
x2.i = x1.i;
xptr->i = 1;
x1.Xfunc(“stan”, &x2, xptr);
*)

…a«? m ic«iYaai ?®¬?®Ya®¬ ?«? ! §®ce¬ ?®¬?®Ya®¬
?« aa  •, a® cea ¦Y?Y •::m  §ec Yaai ?c «?ae?ae?a®c e¬
?¬YY¬; ®® ?¬YYa a®a ¦Y a??, ca® ? m, ? ic«iYaai ?¬Yaie?¬
cea ¦Y?Y¬ a®«i?® c a®¬ a«ac Y, Ya«? ?¬Yaie?¬ cea ¦Y?Y¬
ic«iYaai m. ?«icYc®© ¬®¬Ya §¤Yaia®aa®?a c a®¬, ca® ¤ ¦Y Ya-
«? ?¬i ?« aa  • a?aea® ¤aaF?¬ ?¬YY¬, ?c «?ae?ae?a®c ®Y ?¬i
•::m aY¬ Y ¬YYY ®!Ya?Yc?a ¤®aaa? ? a¦®¬a ?¬Y? ?« aa ,
m.

?®¬?®Yae ?« aa  Y ¬®Faa !eai ¤®! c«Ye ? Y¬a c ¤aa-
F®¬ a §¤Y«Y c eY©?a®Fa ¬¬e. ?« aa • Y ¬®¦Ya a®¤Ya¦ ai ®!e-
Y?ae ?« aa  •, ® ¬®¦Ya a®¤Ya¦ ai a? § aY«? ?«? aae«??  
®!eY?ae ?« aa  • (®a¬Ya?¬   «®F?i a a?? ¬? aaaa?aaa ? ®!e-
Y¤?Y?© ‘).

“?a c«Y?Y ¤®aaa?®¬ ? ?®¬?®Ya ¬

– 104 –

?®¬?®Yae ?« aa  ?®«ac ia  aa?!aae ¤®aaa?  «?!® ?®
a¬®«c ?i (c§ c?a?¬®aa? ®a ?«ic ?« aa  ? ¬Yaa®?®«®¦Y?i ®!e-
ic«Y?i), «?!® ?a? ?a?®«i§®c ?? ? ?®F®-«?!® ?§ a?Yae?ae?? a®-
a®c ¤®aaa? : public, private ?«? protected. ‡ cY?Y ia?a
 aa?!aa®c a«Y¤aie?Y:

public ?®¬?®Ya ¬®¦Ya !eai ?a?®«i§®c  «i!®© aea?ae?Y©.

private ?®¬?®Ya ¬®¦Ya !eai ?a?®«i§®c  a®«i?® aea?ae?-
i¬? ?®¬?®Ya ¬? ? “¤aa§ii¬?” ?« aa , c ?®a®a®¬ ® ®!eic«Y.

protected ’® ¦Y a ¬®Y, ca® ¤«i private, ® ?a®¬Y a®F®,
?®¬?®Ya ¬®¦Ya !eai ?a?®«i§®c  aea?ae?i¬? ?®¬?®Ya®c ?¤-
aa§ii¬? ?« aa®c, ?a®?§c®¤ea ®a ®!eic«Y®F® ?« aa ,® a®«i-
?® c ®!eY?a a ?a®?§c®¤®F® a?? . (˜a®?§c®¤eY ?« aae a aa-
¬ aa?c iaai c a«Y¤aieY¬ a §¤Y«Y).

‘?Yae?ae?? a®ae ¤®aaa?  Y c«?iia   ®!eic«Y?i aea?ae?©
a??  friend. (‘¬. a §¤Y« “„aa§ii” ?« aa®c”   aaa.112 ®a?F?-
 « ).

?®¬?®Yae ?« aa  ?® a¬®«c ?i ?¬Yia  aa?!aa private,
?®ia®¬a ¤«i ?YaY®?aY¤Y«Y?i¤ ®F® ®!eic«Y?i a?Yae?ae?? a®ae
¤®aaa?  public ?«? protected ¤®«¦e § ¤ c aiai ic®.

?®¬?®Yae struct ?® a¬®«c ?i ?¬Yia  aa?!aa public, ®
ce ¬®¦YaY ?YaY®?aY¤Y«?aiia® a¬®«c ?Y?a? ?®¬®e? a?Yae?ae?? a®-
a®c ¤®aaa?  public ?«? protected.

?®¬?®Yae union ?®a¬®«c ?i ?¬Yia  aa?!aa public; ?Y-
aY®?aY¤Y«?ai YF® Y«i§i. ‚aY aa? a?Yae?ae?? a®a  ¤®aaa?  § ¤ –
c ai ¤«i ?®¬?®Ya®c ®!eY¤?Y?i Y¤®?aaa?¬®.

?®¤?ae?? a®a ¤®aaa?  ?® a¬®«c ?i ?«? § ¤ e© ¤«i
?YaY®?aY¤Y«Y?i  aa?!aa  ¤®aaa?  ®aa Yaai ¤Y©aac?aY«ie¬ ¤«i
caYa ?®a«Y¤aie?a ®!eic«Y?© ?®¬?®Ya®c, ?®?  Y caaaYa?aai
¤aaF®© ¬®¤?ae?? a®a ¤®aaa? . ˜ ?a?¬Ya,

class X (*
int i; // X::i ?® a¬®«c ?i privte
char ch; // a ? ¦Y, ? ? ? X::ch
public:
int j; // a«Y¤aie?Y ¤c  ?®¬?®Ya  – public
int k;
protected:
int l; // X::l – protected
*);

struct Y (*
int i; // Y::i ?® a¬®«c ?i public
private:
int j; // Y::j – private
public:
int k; // Y::k – public
*);

union Z (*
int i; // public ?® a¬®«c ?i, ¤aaF?a c a? a®c Ya
double d;
*);

‘?Yae?ae?? a®ae ¤®aaa?  ¬®Faa !eai ?YaYc?a«Ye ? aFaa???-
a®c e c «i!®© a¤®!®© ?®a«Y¤®c aY«i®aa?.?®¦® ai?®®¬?ai
¬Yaa® ?a?  !?c?Y ?a®Fa ¬¬e, ®!eic?c caY ?®¬?®Yae private
aa §a, ? a.¤.

– 105 –
„®aaa? ? ! §®ce¬ ? ?a®?§c®¤e¬ ?« aa ¬

˜a? ®!eic«Y?? ?a®?§c®¤®F® ?« aa  D ce ?YaYc?a«iYaY
! §®ceY ?« aae ‚1, ‚2 … c a §¤Y«iY¬®¬ § ?ia®© ! §®-
c®¬-a??a?Y:

?«ic-?« aa  D:! §®ce©-a??a®? (**)

˜®a?®«i?a a ¬ ! §®ce© ?« aa ¬®¦Ya ic«iaiai?a®?§c®¤e¬
?« aa®¬, a® c®?a®a ®!  aa?!aaY ¤®aaa?  aYe Yaai aY?aaa?c®:
ce ®aa«Y¦?c YaY YF® ¤® aYa ?®a, ?®?  Y ¤®!YaYaYai ¤® “a ¬®-
F®” ! §®c®F® ?« aa , ?®a®¤?ceYF® caY ®aa «ieY.

D  a«Y¤aYa caY¬ ?®¬?®Ya ¬! §®cea ?« aa®c. (˜YaY®?aY-
¤Y«YeY ?®¬?®Yae ! §®cea ?« aa®c  a«Y¤aiaai, ??a? Y®!-
a®¤?¬®aa?¤®aaa?? ?¬c®§¬®¦Y ?a? ?®¬®e? ?YaY®?aY¤Y«Y?©
?®aY?aa ). D ¬®¦Ya ?a?®«i§®c ai a®«i?® ?®¬?®Yae ! §®cea
?« aa®c a  aa?!aa ¬? public ? protected. ?¤ ?®, ca® !a¤aa
?aY¤aa c«iai a®!®© aa?!aae ¤®aaa?  a a«Y¤®c ea ?®¬?®Y-
a®c a a®c?? §aY?i D? D ¬®¦Ya ?® ¤®!?aiai ?a?®«i§®-
c aipublic?®¬?®Ya ! §®c®F® ?« aa , ® ?a? ia®¬ a¤Y« ai YF®
¤«i cYe?a aea?ae?© private. ˜YeY?Y §¤Yai a®aa®?ac a®¬,
ca®!e?a?®«i§®c ai a?Yae?ae?? a®ae ¤®aaa?  c ! §®c®¬-a??a?Y.

˜a? ®!eic«Y?? D ce ¬®¦YaY § ¤ ai a?Yae?ae?? a®a ¤®aaa? 
public ?«? private ?YaY¤ ?« aa ¬? c ! §®c®¬-a??a?Y:

class D : public B1, private B2, … (*

*)

‡ ¤ ai c ! §®c®¬-a??a?Y protected Y«i§i. ?!eY¤?Y?i
Y ¬®Faa a®¤Ya¦ ai ! §®cea ?« aa®c ? Y ¬®Faa a ¬? !eai ?a-
?®«i§®c e c ? cYaacY ! §®cea ?« aa®c.

˜a? ¬®¤?ae?? a®ae Y ?§¬Yiia  aa?!aa®c ¤®aaa?  ! §®cea
c«Y®c a a®c?? §aY?i! §®c®F® ?« aa , a®ai ? ¬®Faa ?§¬Y?ai
 aa?!aae ¤®aaa?  ! §®cea ?®¬?®Ya®c a a®c?? §aY?i ?a®?§-
c®¤ea ?« aa®c.

“¬®«c ?Y¬ ic«iYaai private, Ya«? D Yaai ®!eic«Y?Y
?« aa  class, ? public, Ya«? D Yaai ®!eic«Y?Y aaaa?aaae
struct.

˜a®?§c®¤e© ?« aa  a«Y¤aYa  aa?!aae ¤®aaa?  ! §®c®F®
?« aa  a«Y¤aie?¬ ®!a §®¬:

! §®ce© ?« aa public: ?®¬?®Yae public ! §®c®F® ?« a-
a aa ®ciaai c«Y ¬? public ?a®?§c®¤®F® ?« aa . ?®¬?®Yae
pro- tected ! §®c®F® ?« aa  aa ®ciaai ?®¬?®Ya ¬?
protected ?a®?§c®¤®F®?« aa . ?®¬?®Yae private ! §®c®F®
?« aa  ®aa iaai¤«i ! §®c®F® ?« aa  private.

! §®ce© ?« aa private: ? public, ? protected ?®¬?®Yae
! §®c®F® ?« aa aa ®ciaai private ?®¬?®Ya ¬? ?a®?§c®¤®F®
?« aa .?®¬?®Yae private ! §®c®F® ?« aa  ®aa iaai ¤«i ! §®-
c®F® ?« aa  private.

‚ ®!®?a a«ac ia ®a¬Ya?¬, ca® ?®¬?®Yae private ! §®c®-
F® ?« aa  !e«?? ®aa iaai Y¤®aaa?e¬? ¤«iaea?ae?©-?®¬?®Ya®c
?a®?§c®¤®F® ?« aa , ?®?  c ®??a ?? ¤®aaa?  ! §®c®F® ?« aa 
Y !a¤aa ic® § ¤ e ®!eic«Y?i friend. ˜ ?a?¬Ya,

class X : A (* // a¬®«c ?Y ¤«i ?« aa  – private A

*)
/* ?« aa X ic«iYaai ?a®?§c®¤e¬ ®a ?« aa  ? */

– 106 –

class Y : B, public C (* // ?YaY®?aY¤Y«iYa a¬®«c ?Y
¤«i ‘

*)
/* ?« aa Y ic«iYaai ?a®?§c®¤e¬ (¬®¦YaacY®Y  a«Y¤®-
c ?Y) ®a B ? C. ˜® a¬®«c ?i – private B */

struct S : D (* // a¬®«c ?Y ¤«i struct – public D
… /* struct S – ?a®?§c®¤ i ®a D */
*)
struct T : private D, E (* // ?YaY®?aY¤Y«iYa a¬®«c ?Y
¤«i D // E ?® a¬®«c ?i public

*)
/* struct T ic«iYaai ?a®?§c®¤®© (¬®¦YaacY®Y  a«Y-
¤®c ?Y) ®a D ? T. ˜® a¬®«c ?i – public E */

„Y©aac?Y a?Yae?ae?? a®a®c ¤®aaa?  c ! §®c®¬ a??a?Y ¬®¦®
a?®aaY?a?a®c ai ?a? ?®¬®e? ?c «?ae?ae?a®c ®F®-?¬Y? c®!eic-
«Y?ia public ?«? protected ¤«i ?a®?§c®¤®F® ?« aa . ˜ ?a?-
¬Ya,

class B (*
int a; // ?® a¬®«c ?i private
public:
int b, c;
int Bfunc(void);
*);

class X : private B (* // aY?Yai c • a, b, c ? Bfunc –
private int d; // ?® a¬®«c ?i private. ˜a?¬Yc ?Y: f
// c • Y¤®aaa? 
public:
B::c; // c !e«  private; aY?Yai ®  public
int e;
int Xfunc(void);
*);

int Efunc(X& x); // cYeii ?® ®a®eY?i ? ‚ ? •

”a?ae?i Tfunc ¬®¦Ya ?a?®«i§®c ai a®«i?® ?¬Y  a  aa?!a-
a®¬ public,  ?a?¬Ya c, e ? Xfunc.

”a?ae?i Xfunc c X ic«iYaai ?a®?§c®¤®© ®a private B,
?®ia®¬a ®  ?¬YYa ¤®aaa? ?:

– “a?®aaY?a?a®c ®©-?-a??a-public” c

– “private-®a®a?aY«i®-•” ?®¬?®Ya ¬ ‚:b ? Bfunc

– a®!aacYe¬ private ? public ?®¬?®Ya ¬: d, e ? Xfunc.

?¤ ?®, Xfunc Y ?¬YYa ¤®aaa?  ? “private-®a®a?aY«i®-
B” ?®¬?®Yaa a.

‚?aaa «ieY ! §®ceY ?« aae

˜a? ¬®¦YaacY®¬  a«Y¤®c ??! §®ce© ?« aa Y ¬®¦Ya
!eai § ¤  c ?a®?§c®¤®¬ ?« aaY !®«YY ®¤®F® a § :

class B (* … *);
class D : B, B (* … *): // Y¤®?aaa?¬®

?¤ ?®, ! §®ce© ?« aa ¬®¦Ya !eai ?YaY¤  ?a®?§c®¤®¬a
?« aaa !®«YY ®¤®F® a §  ?®acY®:

– 107 –
class X : public B (* … *)
class Y : public B (* … *)

class Z : public X, public Y (* … *) // ¤®?aaa?¬®

‚ ¤ ®¬ a«ac Y ? ¦¤e© ®!eY?a ?« aa  Z !a¤Ya ?¬Yai ¤c 
?®¤®!eY?a  ?« aa  ‚. …a«? ia® ce§ec Ya ?a®!«Y¬e, ? a?Yae?ae?-
? a®aa ! §®c®F® ?« aa  ¬®¦Ya !eai¤®! c«Y® ?«icYc®Y a«®c®
virtual. ˜ ?a?¬Ya,

class X : virtual public B (* … *)
class Y : virtual public B (* … *)
class Z : public X, public Y (* … *)

’Y?Yai ‚ ic«iYaai c?aaa «ie¬ ! §®ce¬ ?« aa®¬,  ?« aa Z
?¬YYa a®«i?® ®¤? ?®¤-®!eY?a ?« aa  ‚.

“„aa§ii” ?« aa®c (friend)

„aaF F ?« aa  X ia® aea?ae?i ?«? ?« aa, ?®a®aeY, Y ic-
«iiai aea?ae?Y©-?®¬?®Ya®¬ •, ?¬Yia aY¬ Y ¬YYY ?®«eY ?a –
c  ¤®aaa?  ? ?®¬?®Ya ¬ • private ? protected. ‚® caYa ?a®-
c?a ®a®eY?ia F ia® ®!ec i a a®c?? §aY?i ?®aY?aa ,
®!eic«Y?© ?®?aY¤Y«Y?© aea?ae?i.

˜®a?®«i?a F Y ic«iYaai ?®¬?®Ya®¬ •, ®  Y «Y¦?a c
?®aY?aaY • ? ?®ia®¬a Y ¬®¦Ya ce§ec aiai ®?Ya ae?i¬? ce!®a 
x.F ? xptr->F (F¤Y x ia® ®!eY?a •,   xptr ia® a? § aY«i ®!e-
Y?a  •.

…a«? c ®!eic«Y?? ?«? ®?aY¤Y«Y?? aea?ae?? c ?aY¤Y« a
?« aa  • ?a?®«i§aYaai a?Yae?ae?? a®a friend, a® a ? iaea?ae?i
aa ®c?aai “¤aaF®¬” ?« aa  •.

”a?ae?i-“¤aaF”, ®?aY¤Y«Y i c ?aY¤Y« a ?« aa , ?®¤c?-
iYaai aY¬ ¦Y ?a c?« ¬ caaa ?c ?i, ca® ? aea?ae??-?®¬?®Yae
?« aa  (a¬. “‚aaa ?c Y¬eY aea?ae??”   aaa.105 ®a?F? « ).
”a?ae??-“¤aa§ii” Y § c?aia ®a ?a ?®§?ae?? c ?« aaY ?«? a?Y-
ae?ae?? a®a®c ¤®aaa? . ˜ ?a?¬Ya,

class X (*
int i; // private ®a®a?aY«i® •
friend void friend_func(X*, int);
/* friend_func Y ic«iYaai private, a®ai ®  ? ®!eic«Y 
c a §¤Y«Y private */
public:
void member_func(int);
*);
/*®!eic«Y?i;¤«i ®!Y?a aea?ae?© ®a¬Ya?¬ ¤®aaa? ? private
int i*/
void friend_func(X* xptr, int a) (* xptr->i = a; *)
void X::member_func(int a) (* i = a; *)

X xobj;

/* ®a¬Ya?¬ a §«?c?Y c ce§®c a aea?ae?© */
friend_func(&xobj, 6);
xobj.member_func(6);

‚e ¬®¦YaY a¤Y« ai caY aea?ae?? ?« aa  Y ¤aa§ii¬? ?« aa 
• c ®¤®¬ ®!eic«Y??:

– 108 –

class Y; // Y?®«®Y ®!eic«Y?Y
class X (*
friend Y;
int i;
void member_funcX();
*);

class Y; (*
void friend_X1(X&);
void friend_X2(X*);

*);

”a?ae??, ®!eic«YeY c Y, ic«iiaai ¤aa§ii¬? •, a®ai ®?
? Y ?¬Yiaa?Yae?ae?? a®a®cfriend. ?? ?¬Yia ¤®aaa? ? ?®¬?®Y-
a ¬ • private, a ??¬ ? ? i ? member_funcX.

?a¤Y«ieY aea?ae??-?®¬?®Yae ?« aa  •a ?¦Y ¬®Faa !eai
¤aa§ii¬? ?« aa  Y:

class X (*

void member_funcX();
*)

class Y (*
int i;
friend void X::member_funcX();

*);

“„aa¦! ” ?« aa®c Y aa §?a?c : Ya«? X ¤aaF Y,   Y
¤aaF Z, ia® Y ®§ c Ya, ca® X – ¤aaF Z. ?¤ ?®, “¤aa¦! ”
 a«Y¤aYaai. ?®aaaa?a®ae ? ¤Yaaaa?a®ae

‘aeYaacaYa Ya?®«i?® a?Yae? «iea aea?ae?© ?®¬?®Ya®c,
®?aY¤Y«iie?a, ? ??¬ ®!a §®¬ ®!eY?ae?« aa  a®§¤ iaai, ??ae? –
«?§?aaiaai, ?®??aaiaai ? a §aae Yaai. ?®aaa?a®ae ? ¤Yaaaa?-
a®ae ic«iiaai  ?!®«YY c ¦e¬? ?§?a. ?? ®!« ¤ ia !®«ie?a-
ac®¬ a a ?aYa?aa?? ®!ecea aea?ae?©-?®¬?®Ya®c – ce ¤®«¦e
®!eic?ai ? ®?aY¤Y«?ai ?a c ?aY¤Y« a ?« aa , «?!® ®!eic?ai ?a
c ?« aaY, ® ®?aY¤Y«?ai cY YF® – ®¤ ?®, ®? ®!« ¤ ia ? Y-
?®a®ae¬? a?? «ie¬? ac®©aac ¬?.

1. ?? Y ?¬Yia ®!eic«Y?© § cY?© c®§ca a  (¤ ¦Y
void).

2. ?? Y ¬®Faa !eai a a«Y¤®c e, a®ai ?a®?§c®¤e©
?« aa ¬®¦Ya ce§ec ai ?®aaaa?a®ae ? ¤Yaaaa?a®ae ! §®c®F®
?« aa .

3. ?®aaaa?a®ae, ? ? ? !®«ie?aac® aea?ae?© ‘++, ¬®Faa
?¬Yai  aFa¬Yae ?® a¬®«c ?i ?«? ?a?®«i§®c ai a??a?? ??ae? –
«?§ ae?? ?®¬?®Ya®c.

4. „Yaaaa?a®ae ¬®Faa ?¬Yai  aa?!aa virtual, ® ?®a-
aaa?a®ae Y ¬®Faa.

5. ‚e Y ¬®¦YaY a !®a ai a ?a  ¤aYa ¬?:

– 109 –

main()
(*

void *ptr = base::base; // Y¤®?aaa?¬®

*)

6. …a«? ?®aaaa?a®ae ? ¤Yaaaa?a®ae Y !e«? § ¤ e ic®,
a® ®? ¬®Faa !eai aFYYa?a®c e Turbo C++; c® ¬®F?a a«ac ia
®? a ?¦Y ¬®Faa !eai § ?aeYe ?a? ®aaaaaac?? ic®F® ce§®c  c
c eY© ?a®Fa ¬¬Y. ‹i!®© ?®aaaa?a®a ?«? ¤Yaaaa?a®a, a®§¤ c Y-
¬e© ?®¬??«ia®a®¬, ¤®«¦Y ?¬Yai  aa?!aa public.

7. ‚e§c ai ?®aaaa?a®a aY¬ ¦Y ®!a §®¬, ca® ? ®!ecai
aea?ae?i, Y«i§i. ‚e§®c ¤Yaaaa?a®a  ¤®?aaa?¬ a®«i?® a ?®«-
®aaii ?c «?ae?ae?a®c e¬ ?¬YY¬.

8.
(*

X *p;

p->X::-X();// ¤®?aaa?¬e© ce§®c ¤Yaaaa?a®a 
X::X();// Y¤®?aaa?¬e© ce§®c ?®aaaa?a®a 

*)

9. ˜a? ®?aY¤Y«Y?? ? a §aaeY?? ®!eY?a®c ?®¬??«ia®a ce-
?®«iYa ce§®c ?®aaaa?a®a®c ? ¤Yaaaa?a®a®c  ca®¬ a?cYa??.

10.?®aaaa?a®ae ? ¤Yaaaa?a®ae ?a? Y®!a®¤?¬®aa? a a?aY-
¤Y«Y?i ®!eY?aa ? ¬ia? ¬®Faa ce?®«iai YiceY ce§®ce
®?Ya ae?© new ? delete.

11.?!eY?a a ?®aaaa?a®a®¬ ?«? ¤Yaaaa?a®a®¬ Y ¬®¦Ya
!eai ?a?®«i§®c  c ? cYaacY ?®¬?®Ya  ®!eY¤?Y?i.

…a«? ?« aa • ?¬YYa ®¤? ?«? !®«YY ?®aaaa?a®a®c, a®
®¤? ?§ ?a § ?aa? Yaai cai??© a §?a? ®?aY¤Y«Y?? ®!eY?a  a
?« aa  •. ?®aaaa?a®a a®§¤ Ya ®!eY?a a ? ??ae? «?§?aaYa YF®.
„Yaaaa?a®ae ce?®«iia ®!a ae© ?a®aeYaa,a §aae i ®!eY?ae
?« aa , a®§¤ eY ?®aaaa?a®a ¬?.

?®aaaa?a®ae  ?a?c?§?aaiaai a ?¦Y ?a? a®§¤ ?? «®? «i-
ea?«? caY¬Yea ®!eY?a®c ¤ ®F® ?« aa ;¤Yaaaa?a®ae  ?a?c?-
§?aaiaai cai??© a §, ?®F¤  ia? ®!eY?ae cea®¤ia ?§ ?®aY?aa .
?®aaaa?a®ae

?®aaa?a®ae ®a«?c iaai ®a ?a®c?a ?®¬?®Ya®c aea?ae?©
aY¬, ca® ?¬Yia a® ¦Y a ¬®Y ?¬i, ca® ? ?« aa, ? ?®a®a®¬a ®?
®a®aiaai.˜a? a®§¤ ?? ?«? ?®??a®c ?? ®!eY?a  ¤ ®F® ?« a-
a  ?a®?aa®¤?a Yice© ce§®c a®®acYaaacaieYF® ?®aaaa?a®a .

?®aaaa?a®ae F«®! «iea ?YaY¬Yea ce§ec iaai ¤® ce§®c 
aea?ae?? main. ˜a? ?a?®«i§®c ?? aa aa®c®© ¤?aY?a?cepragma¤«i
?aa ««?a®c ?i Y?®a®a®© aea?ae?? ¤® aea?ae?? main, ?®aaaa?-
a®ae F«®! «iea ?YaY¬Yea ce§ec iaai ¤® aa aa®cea aea?ae?©.

‹®? «ieY ®!eY?ae a®§¤ iaai, ? ? a®«i?® aa ®c?aai  ?-
a?ce¬ ?®aY?aa ?YaY¬Y®©.?®aaaa?a®a a ?¦Y § ?aa? Yaai ?a?
a®§¤ ?? caY¬Y®F® ®!eY?a  ¤ ®F® ?« aa .

– 110 –

class x
(*
public:
X(); //?®aaaa?a®a ?« aa  •
*);

?®aaaa?a®a ?« aa  • Y ¬®¦Ya ?a??¬ ai • ? ?  aFa¬Ya:

class X (*

public
X(X); // Y¤®?aaa?¬®
*)

˜ a ¬Yaae ?®aaaa?a®ae ¬®Faa !eai «i!®F® a?? , §  ?a?-
«icY?Y¬ ?« aa , ?®¬?®Ya®¬?®a®a®F® ic«iYaai ¤ e© ?®a-
aaa?a®a. ?®aaaa?a®a ¬®¦Ya ?a??¬ aic ? cYaacY ? a ¬Yaa 
aae«?a   ac®© a®!aacYe© ?« aa; c a ?®¬ a«ac Y ®  §ec –
Yaai ?®aaaa?a®a®¬ ?®??a®c ?i.?®aaaa?a®a, Y ?a??¬ ie?©-
? a ¬Yaa®c c®®!eY,  §ec Yaai ?®aaaa?a®a®¬ ?®a¬®«c ?i. „ –
«YY ¬e a aa¬®aa?¬ ?®aaaa?a®ae ?® a¬®«c ?i; ®??a ?Y ¦Y
?®aaaa?a®a  ?®??a®c ?i  c? Yaai a® aaa.116 ®a?F? « .

?®aaaa?a®a ?® a¬®«c ?i

?®aaaa?a®a®¬ ?® a¬®«c ?i ¤«i ?« aa  •  §ec Yaai a –
?®© ?®aaaa?a®a, ?®a®ae© Y ?a??¬ Ya ?? ??a  aFa¬Ya®c:
•::•(). …a«? ¤«i?« aa  YaaeYaacaYa ?®aaaa?a®a®c, ®?aY¤Y«i-
Y¬ea ?®«i§®c aY«Y¬, a® Turbo C++ FYYa?aaYa ?®aaaa?a®a ?®
a¬®«c ?i. ˜a? a ??a ®!eic«Y?ia, ? ? • a, ?®aaaa?a®a ?®
a¬®«c ?i a®§¤ Ya ®!eY?a a.

‚ ¦®Y ?a?¬Yc ?Y:

? ? ? caY aea?ae??, ?®aaaa?a®ae¬®Faa ?¬Yai  aFa¬Yae ?®
a¬®«c ?i. ˜ ?a?¬Ya, ?®aaaa?a®a

X::X(int, int = 0)

¬®¦Ya?a??¬ ai ®¤? ?«? ¤c   aFa¬Ya . …a«? ¤ e©
?®aaaa?a®a !a¤Ya ?aY¤aa c«Y a®«i?® a ®¤?¬  aFa¬Ya®¬,Y-
¤®aa ie?© ca®a®©  aFa¬Ya !a¤Ya ?a?ia ? ? int 0. ? «®F?c-
e¬ ®!a §®¬, ?®aaaa?a®a

X::X(int = 5, int = 6)

¬®¦Ya ?a??¬ ai ¤c  aFa¬Ya , ®¤?  aFa¬Ya, «?!® Y
?a??¬ ai  aFa¬Ya®c c®®!eY,?a?cY¬ c ? ¦¤®¬ a«ac Y?a??¬ ia-
ai a®®acYaaacaie?Y a¬®«c ?i. ?¤ ?®, ?®aaaa?a®a ?® a¬®«c –
?i •::•() Y ?a??¬ Ya aFa¬Ya®c c®®!eY, ?YF® Y a«Y¤aYa
?aa ai a ?®aaaa?a®a®¬,  ?a?¬Ya, X::X(int = 0), ?®a®ae© ¬®-
¦Ya «?!® ?a??¬ ai ®¤?  aFa¬Ya, «?!® Y ?a??¬ ai  aFa¬Y-
a®c.

˜a? ce§®cY ?®aaaa?a®a®c a«Y¤aYa ?§!YF ai Y®¤®§ c-
®aaY©. ‚ a«Y¤aieY¬ ?a?¬YaY c®§¬®¦® Y®¤®§ c®Y
c®a?a?ia?Y ?®¬??«ia®a®¬ ?®aaaa?a®a ?® a¬®«c ?i ? ?®aaaa?-
a®a , ?a??¬ ieYF® aeY«®c?a«Ye© ? a ¬Yaa:

– 111 –

class X
(*
public:
X();
X(int i = 0);
*);

main()
(*
X one(10); // a ? ¬®¦®: ?a?®«i§aYaai X::X(int)
X two; // a ? Y«i§i; Y®¤®§ c® § ¤ ®, ?a?®«i§aYaai
// «? X::X() ?«? X::X(int = 0)

return 0;

?®aaaa?a®a ?®??a®c ?i

?®aaaa?a®a ?®??a®c ?i¤«i ?« aa  • ia® a ?®© ?®aaaa?-
a®a, ?®a®ae© ¬®¦Ya !eai ce§c  a ®¤?¬ Y¤?aacYe¬  aFa¬Y-
a®¬ a??  X: X::X(const X&) ?«? X::(const X&, int = 0). ‚
?®aaaa?a®aY ?®??a®c ?i ¤®?aaa?¬e¬? a ?¦Yic«iiaai  aFa¬Yae
?® a¬®«c ?i. ?®aaaa?a®ae?®??a®c ?i § ?aa? iaai ?a? ?®??-
a®c ?? ®!eY?a  ¤ ®F® ?« aa , ®!ec® c a«ac Y ®!eic«Y?i a
??ae? «?§ ae?Y© ®!eY?a®¬ ¤aaF®F® ?« aa : X x = y. Turbo C++
FYYa?aaYa ?®aaaa?a®a ?®??a®c ?i ¤«i ?« aa  X  ca®¬ a?cYa-
??, Ya«? a ?®© ?®aaaa?a®a Y®!a®¤?¬, ® c ?« aaY • Y®?aY-
¤Y«Y.

˜YaYFaa§?  ?®aaaa?a®a®c

?®aaaa?a®ae ¬®Faa !eai ?YaYFaa¦Ye, ca®?®§c®«iYa a®§-
¤ ?Y ®!eY?a®c c§ c?a?¬®aa? ®a § cY?©, ?a?®«i§®c ea?a?
??ae? «?§ ae??.

class X
(*
int integer_part;
double double_part;
public:
X(int i) (* integer_part = i; *)
X(double d) (* double_part = d *)
*);

main()
(*
X one(10); // § ?aa? Ya X::X(int) ? aaa  c«?c Ya
// integer_part c § cY?Y 10
X one(3.14); // § ?aa? Ya X::X(double) e aaa  c«?c Ya
// double_part

return 0;
*)

˜®ai¤®? ce§®c  ?®aaaa?a®a®c

‚ a«ac Y, ?®F¤  ?« aa ?a?®«i§aYa ®¤??«? !®«YY ! §®cea
?« aa®c, ?®aaaa?a®ae ! §®cea ?« aa®c § ?aa? iaai ¤® a®F®,
? ? !a¤aace§c e ?®aaaa?a®ae ?a®?§c®¤®F® ?« aa . ?®aaaa?-
a®ae ! §®c®F® ?« aa  ce§ec iaai c ?®a«Y¤®c aY«i®aa? ?a ®!e-
ic«Y?i.

˜ ?a?¬Ya, c a«Y¤aieY¬ ?a?¬YaY

– 112 –
class Y (*…*)
class X : public Y (*…*)
X one;

ce§®c ?®aaaa?a®a®c ?a®?aa®¤?a c a«Y¤aieY© ?®a«Y¤®c –
aY«i®aa?:

Y(); // ?®aaaa?a®a ! §®c®F® ?« aa 
X(); // ?®aaaa?a®a ?a®?§c®¤®F® ?« aa 

‚ a«ac Y ¬®¦YaacYea ! §®cea ?« aa®c:

class X : public Y, public Z
X one;

?®aaaa?a®ae ce§ec iaai c ?®a«Y¤®c aY«i®aa? ?a ®!eic«Y?i:

Y(); // ?Yace¬? a«Y¤aia ?®aaaa?a®ae ! §®c®F® ?« aa 
Z();
X();

?®aaaa?a®ae c?aaa «iea ! §®cea ?« aa®c § ?aa? iaai ¤®
? ??a-«?!® Y-c?aaa «iea ! §®cea ?« aa®c. …a«? ?Ya aa?i a®-
¤Ya¦?a ¬®¦YaacYeY c?aaa «ieY ! §®ceY ?« aae, a® ?®a-
aaa?a®ae c?aaa «iea ! §®cea ?« aa®c § ?aa? iaai c ?®a«Y¤®-
c aY«i®aa? ?a ®!eic«Y?i. ‡ aY¬,?YaY¤ ce§®c®¬?®aaaa?a®a®c
?a®?§c®¤®F® ?« aa , ?®aaaa?aaiaai Y-c?aaa «ieY ! §®ceY
?« aae.

…a«? c?aaa «ie© ?« aa ic«iYaai ?a®?§c®¤e¬ ®a Y-c?a-
aa «i®© ! §e,a® ¤«i a®F®,ca®!ec?aaa «ie© ! §®ce©?« aa!e«
a?®aaaa?a®c  ?a c?«i®, ia  Y-c?aaa «i i ! §  ¤®«¦  ic-
«iaiai ?Yac®©. ?®¤

class X : public Y, virtual public Z
X one;

®?aY¤Y«iYa a«Y¤aieai ?®a«Y¤®c aY«i®aai:

Z(); // ??ae? «?§ ae?i c?aaa «i®F® ! §®c®F® ?« aa 
Y(); // Y-c?aaa «ie© ! §®ce© ?« aa
X(); // ?a®?§c®«ie© ?« aa

‹?!®, c !®«YY a«®¦®¬ a«ac Y,

class base;
class base2;
class level1 : public base2, virtual public base;
class level2 : public base2, virtual public base;
class toplevel : public level1, virtual public level1;
toplevel view;

˜®ai¤®? ?®aaaa?a®c ?i view !a¤Ya ?a?ia a«Y¤aie?©:

base(); // aa ae?© c ?Ya aa?? c?aaa «ie© ! §®ce© ?« aa
// ?®aaaa?aaYaai a®«i?® ®¤ ¦¤e
base2(); // Y-c?aaa «i i ! §  c?aaa «i®© ! §e level2
// ce§ec Yaai ¤«i ?®aaaa?a®c ?i level2
level2(); // c?aaa «ie© ! §®ce© ?« aa
base2(); // Y-c?aaa «i i ! §  ¤«i level1
level1(); // ¤aaF i Y-c?aaa «i i ! § 
toplevel();

‚ a«ac Y, ?®F¤  ?Ya aa?i ?« aa  a®¤Ya¦?a ¬®¦YaacYeY
ca®¦¤Y?i c?aaa «i®F® ! §®c®F® ?« aa , ¤ e© ! §®ce© ?« aa
?®aaaa?aaYaai a®«i?® ®¤? a §. ?¤ ?®, Ya«? aaeYaacaia ?
c?aaa «ieY,? Y-c?aaa «ieY ca®¦¤Y?i ! §®c®F®?« aa , a®

– 113 –
?®aaaa?a®a ?« aa  § ?aa? Yaai ®¤?a § ¤«i caYac?aaa «iea
ca®¦¤Y?© ? ®¤? a § ¤«i caYa Y-c?aaa «iea ca®¦¤Y?© ! §®-
c®F® ?« aa .

?®aaaa?a®ae i«Y¬Ya®c¬ aa?c  § ?aa? iaaic ?®ai¤?Y
c®§a aa ?i ?¤Y?a®c ¬ aa?c .

??ae? «?§ ae?i ?« aa 

?!eY?a ?« aa a ?®¬?®Ya ¬? a®«i?® public ? !Y§ ?®a-
aaa?a®a®c ?«? ! §®cea ?« aa®c (®!ec® ia® aaaa?aaa ) ¬®¦Ya
!eai??ae? «?§?a®c  ?a? ?®¬®e? a??a?  ??ae? «?§ a®a®c.˜a?
 «?c?? ?®aaaa?a®a  ?« aa  ®!eY?ae «?!® ??ae? «?§?aaiaai,
«?!® ?¬Yia?®aaaa?a®a ?® a¬®«c ?i. ˜®a«Y¤?© ?a?®«i§aYaai c
a«ac Y ®!eY?a®c !Y§ ic®© ??ae? «?§ ae??.

?!eY?ae ?« aa®c a ?®aaaa?a®a ¬? ¬®Faa !eai ??ae? «?§?-
a®c e ?a? ?®¬®e? § ¤ c Y¬ea c ?aaF«ea a?®!? a a??a?®c ??-
ae? «?§ a®a®c. ˜a®a a??a®? ?a?®«i§aYaai ? ? a??a®? ?YaY¤ c Y-
¬ea ?®aaaa?a®aa  aFa¬Ya®c. ?«iaYa a?ce¬a?®a®!®¬
??ae? «?§ ae?? ic«iYaai ?a?®«i§®c ?Y§ ?  a cYaac , §  ?®-
a®ae¬a«Y¤aYa ®a¤Y«i®Y § cY?Y. ˜a® ®a¤Y«i®Y § cY?Y ¬®-
¦Ya?¬Yai a?? ?Yac®F®  aFa¬Ya , ?a??¬ Y¬®F® ?®aaaa?a®a®¬
¤ ®F® ?« aa ; c ia®¬ a«ac Y ¤®?®«?aY«iea  aFa¬Ya®c «?!®
Y aaeYaacaYa, «?!® ®? ?¬Yia§ cY?i ?® a¬®«c ?i. ‡ cY?Y
¬®¦Ya a ?¦Y ic«iaiai ®!eY?a®¬ ¤ ®F® a??  ?« aa . ‚ ?Yac®¬
a«ac Y ¤«i a®§¤ ?i ®!eY?a  ce§ec Yaai a®®acYaaacaie?©?®a-
aaa?a®a. ‚ ?®a«Y¤Y¬ a«ac Y ce§ec Yaai ?®aaaa?a®a ?®??a®c –
?i, ??ae? «?§?aaie?© ¤ e© ®!eY?a.

class X
(*
int i;
public:
X(); // aY«  aea?ae?© ¤«i ia®aa? ®?aeYe
X(int x);
X(const X&);
*);

main()
(*
X one; // § ?aa? ?®aaaa?a®a  ?® a¬®«c ?i
X two(1); // ?a?®«i§aYaai ?®aaaa?a®a X::X(int)
X three = 1; // ce§ec Ya X::X(int)
X four = one; // § ?aa? Ya X::X(const X&) ¤«i ?®??a®c ?i
X five(two); // ce§ec Ya X::X(cont X&)

?®aaaa?a®a ¬®¦Ya ?a?ac ?c ai § cY?i ac®?¬?®¬?®Ya ¬
a«Y¤aie?¬ ®!a §®¬. ? ¬®¦Ya ?a??¬ ai § cY?i c ? cYaacY
? a ¬Yaa®c ? ce?®«iai ?a?ac ?c ?Y ?®¬?®Ya ¬ ?YaY¬Ye¬
a®!aacY® c aY«Y aea?ae?? ?®aaaa?a®a :

class X
(*
int a, b;
public:
X(int i, int j) (* a = i; b = j *)
*);

‹?!® ® ¬®¦Ya ?a?®«i§®c ai  a®¤ie?©ai ¤® aY«  aea?ae??
a??a®? ??ae? «?§ a®a®c:

– 114 –

class X
(*
int a, b;
public:
X(int i, int j) : a(i), b(j) (**)
*);

‚ ®!®?a a«ac ia ??ae? «?§ ae?i X x(1, 2) ?a?ac ?c Ya
§ cY?Y 1 x::a ? § cY?Y 2 x::b. ‚a®a®© a?®a®!,   ?¬Y®
a??a®? ??ae? «?§ a®a®c, ®!Ya?Yc?c Ya ¬Ya ?§¬ ?YaY¤ c? § –
cY?© ?®aaaa?a®a ¬ ! §®c®F® ?« aa .

?®aaaa?a®ae ! §®c®F®?« aa  ¤®«¦e !eai ®!eic«Ye a  a-
a?!aa ¬? public ?«? protected, ¤«i a®F®, ca®!e®!Ya?Yc?ai
c®§¬®¦®aai ?a ce§®c  ?§ ?a®?§c®¤®F® ?« aa .

class base1
(*
int x;
public:
base1(int i) (* x = i; *)
*);

class base2
(*
int x;
public:
base2(int i) : x(i) (**)
*);

class top : public base1, public base2
(*
int a, b;
public:
top(int i, int j) : base(i*5), base2(j+i), a(i) (* b =
j;*)
*);

‚ a«ac Y a ?®©?Ya aa?? ?« aa  ®!eic«Y?Y top one(1, 2)
?a?cY¤Ya ? ??ae? «?§ ae?? base1 § cY?Y¬ 5,   base2 § cY?-
Y¬ 3. ?Ya®¤e ??ae? «?§ ae?? ¬®Faa ?®¬!??a®c aiai ¤aaF a ¤aa-
F®¬.

? ? !e«® ®??a ® ceeY, ! §®ceY ?« aae ??ae? «?§?aaiaai
c ?®a«Y¤®c aY«i®aa? ®!eic«Y?i.‡ aY¬ ?a®?aa®¤?a ??ae? «?§ –
ae?i ?®¬?®Ya®c, a ?¦Y c ?®a«Y¤®c aY«i®aa? ?a ®!eic«Y?i,
Y§ c?a?¬® ®a ?a c§ ?¬®F® a a?®«®¦Y?i c a??a?Y ??ae? «?§ –
ae??.

class X
(*
int a, b;
public:
X(int i, j) : a(i), b(a+j) (**)
*);

‚ ?aY¤Y« a ?« aa  ®!eic«Y?Y X x(1,1) ?a?cY¤Ya ? ?a?a-
c ?c ?i c?a«  1 x::a ? c?a«  2 x::b.

?®aaaa?a®ae ! §®cea ?« aa®c ce§ec iaai ?YaY¤ ?®aaaa?-
a®c ?Y¬ «i!ea ?®¬?®Ya®c ?a®?§c®¤ea ?« aa®c. ‡ cY?i
?a®?§c®¤®F® ?« aa  Y ¬®Faa ?§¬Yiaiai ? § aY¬ c«?iai  

– 115 –
a®§¤ ?Y ! §®c®F® ?« aa .

class base
(*
int x;
public:
base(int i) : x(i) (**)
*);

class derived : base
(*
int a;
public:
derived(int i) : a(i*10), base(a) (**) // ?!a a?aY c?-
¬ ?Y! // base !a¤Ya ?YaY¤ ® Y??ae? «?§?a®c ®Y a
*)

‚ ¤ ®¬?a?¬YaY ce§®c?a®?§c®¤®F® d(1) Y?a?cY¤Ya ?
?a?ac®Y?i ?®¬?®Yaa ! §®c®F® ?« aa  a § cY?i 10. ‡ cY-
?Y, ?YaY¤ ®Y ?®aaaa?a®aa ! §®c®F® ?« aa , !a¤Ya Y®?aY-
¤Y«Ye¬.

…a«? ce a®a?aY ?¬Yai a??a®? ??ae? «?§ a®a®c c Y-caaa®-
Y®¬ ?®aaaa?a®aY,Y ?®¬Ye ©aY ia®a a??a®? c®?aY¤Y«Y??
?« aa . ‚¬Yaa® ia®F® ?®¬Yaa?aY YF® c a®c?a ®?aY¤Y«Y?i aea?-
ae??:

derived::derived(int i) : a(i)
(*

*)
„Yaaaa?a®ae

„Yaaaa?a®a ?« aa  ce§ec Yaai ¤«i ®ac®!®¦¤Y?i c«Y®c
®!eY?a  ¤® a §aaeY?i a ¬®F® ®!eY?a . „Yaaaa?a®a?aY¤aa c«iYa
a®!®© aea?ae?i-?®¬?®Ya, ?¬i ?®a®a®© a®c? ¤ Ya a ?¬YY¬
?« aa , ?YaY¤ ?®a®ae¬ aa®?a a?¬c®« a?«i¤ , ¤Yaaaa?a®a Y ¬®-
¦Ya ?a??¬ ai ? ??a-«?!® ? a ¬Yaa®c,   a ?¦Y Y ?¬YYa ®!eic-
«Yea a??  c®§ca a  ?«? § cY?i.

class X
(*
public:
-X(); // ¤Yaaaa?a®a ?« aa  X
*);

…a«? ¤Yaaaa?a®aY ®!eic«Y ¤«i ?« aa  ic®, ?®¬??«ia®a
FYYa?aaYa YF®  ca®¬ a?cYa??.

‡ ?aa? ¤Yaaaa?a®a®c

‚e§®c ¤Yaaaa?a®a  ce?®«iYaai Yic®, ?®F¤  ?YaY¬Y i
cea®¤?a ?§ ac®YF® ®!eic«Y®F® ?®aY?aa . „«i «®? «iea ?Y-
aY¬Yea ¤Yaaaa?a®ae ce§ec iaai, ?®F¤  ?YaYaa Ya !eai  ?a?c-
e¬ !«®?, c ?®a®a®¬ ®? ®!eic«Ye. ‚ a«ac Y F«®! «iea ?YaY-
¬Yea¤Yaaaa?a®ae ce§ec iaai ? ? c aai ?a®aeY¤aae cea®¤ 
?®a«Y main.

?®F¤  a? § aY«? ®!eY?a®c cea®¤ia § ?aY¤Y«e ?®aY?aa ,
Yice© ce§®c ¤Yaaaa?a®a  Y?a®?aa®¤?a. ˜a® § c?a, ca®¤«i
a §aaeY?i a ?®F® ®!eY?a  ®?Ya ae?i delete ¤®«¦  !eai § ¤  
ic®.

„Yaaaa?a®ae ce§ec iaai aaa®F® c ®!a a®© ?®a«Y¤®c aY«i-
®aa? ®a®a?aY«i®?®a«Y¤®c aY«i®aa? ce§®c  a®®acYaaacaie?a
?¬ ?®aaaa?a®a®c (a¬. aaa.117 ®a?F? « ).

– 116 –
atexit, #pragma exit ? ¤Yaaaa?a®ae

‚aY F«®! «ieY ®!eY?ae ®aa iaai  ?a?ce¬? ¤® aYa ?®a,
?®?  Y !a¤aa ce?®«Ye ?®¤e c® caYa ?a®aeY¤aa a cea®¤ . ‹®-
? «ieY ?YaY¬YeY, c?«ic i aY, ca® ®!eic«Ye c main, a §aa-
e iaai?a? cea®¤Y ?a ?§ ?®aY?aa . ˜®a«Y¤®c aY«i®aai ce?®«-
Y?i c ?®aeY ?a®Fa ¬¬e Turbo C++ c ia®¬ a¬ea«Y a«Y¤aie i:

– ce?®«iiaai aea?ae?? atexit c ?®a«Y¤®c aY«i®aa? ?a
caa c?? c ?a®Fa ¬¬a

– ce?®«iiaai aea?ae?? #pragma exit c a®®acYaaac?? a ?®-
¤ ¬? ?a ?a?®a?aYa®c

– ce§ec iaai ¤Yaaaa?a®ae F«®! «iea ?YaY¬Yea.

exit ? ¤Yaaaa?a®ae

˜a? ce§®cY exit?§ ?a®Fa ¬¬e ¤Yaaaa?a®ae ¤«i ? ??a-«?!®
«®? «iea ?YaY¬Yea c aY?aeY¬ ?®aY?aaY Y ce§ec iaai. ?«®-
! «ieY ?YaY¬YeY a §aae iaai c ®!ec®© ?®a«Y¤®c aY«i®aa?.

abort ? ¤Yaaaa?a®ae

˜a? ce§®cY abort F¤Y-«?!® ?§ ?a®Fa ¬¬e ¤Yaaaa?a®ae Y
ce§ec iaai, ¤ ¦Y ¤«i ?YaY¬Yea F«®! «i®F® ?®aY?aa .

„Yaaaa?a®a ¬®¦Ya!eai a ?¦Y ce§c  ic®, ®¤?¬ ?§ ¤caa
a«Y¤aie?a a?®a®!®c: ?®acY®, cYaY§ ce§®cdelete, ?«? ?ai¬®,
§ ¤ c i ?®«®aaii ?c «?ae?ae?a®c ®F®?¬Y? ¤Yaaaa?a®a .
Delete ¬®¦®?a?®«i§®c ai ¤«i a §aaeY?i ®!eY?a®c, ¤«i ?®a®-
aea ? ¬iai a a?aY¤Y«i« ai ?a? ?®¬®e? new. ?ce© ce§®c ¤Yaa-
aa?a®a  Y®!a®¤?¬ a®«i?® c a«ac Y ®!eY?a®c, ?®a®ae¬ a a?aY-
¤Y«i«ai ?®?aYae©  ¤aYa ? ¬ia? ?a? ?®¬®e? new.

class X (*

-X();

*);

void* operator new(size_t size, void *ptr)
(*
return ptr;
*)
char buffer[sizeof(x)];

main()
(*
X* pointer = new X;
X* exact_pointer;

exect_pointer = new(&buffer) X;// a? § aY«i
??ae? «?§?aa// Yaai  ¤aYa®¬ !aaeYa 

delete pointer;// delete a«a¦?a ¤«i a §-
// aaeY?i a? § aY«i
exact_pointer->X::-X();// ?ai¬®© ce§®c ¤«i ®a¬Ye
// a a?aY¤Y«Y?i ? ¬ia?
*)

‚?aaa «ieY ¤Yaaaa?a®ae

„Yaaaa?a®a ¬®¦Ya !eai ®!eic«Y ? ? virtual. ˜a® ?®§c®-
«iYa a? § aY«i ®!eY?a  ! §®c®F® ?« aa  ce§ec ai Y®!a®¤?¬e©
¤Yaaaa?a®a c a«ac Y, ?®F¤  a? § aY«i ae ?a?cYa?? aae« Yaai 
®!eY?a ?a®?§c®¤®F® ?« aa .„Yaaaa?a®a ?« aa , ?a®?§c®¤®F®

– 117 –
®a ?« aa  a c?aaa «ie¬ ¤Yaaaa?a®a®¬, a ¬ ic«iYaai c?aaa «i-
e¬.

‚?¬ ?Y: ?a?¬Ya ?a®®Fa ¬¬e a¬ c ae ©«Y prog_1.app

?¤ ?®, Ya«? ? ®¤? ?§ ¤Yaaaa?a®a®c Y !e« ®!eic«Y
c?aaa «ie¬,delete palette[0], delete palette[1] ? delete
palette[2] ce§ec ia a®«i?® ¤Yaaaa?a®a ¤«i?« aa color.˜a®
?a?cY¤Ya ? Y?a c?«i®¬a a §aaeY?i ?Yacea ¤caa i«Y¬Ya®c,
?®a®aeY ae ?a?cYa?? ?¬Y«? a?? red ? brightred.

˜YaYFaa¦YeY ®?Ya ae??

‘++ ?®§c®«iYa ?YaY®?aY¤Y«?ai ¤Y©aac?Y !®«ie?aac  ®?Y-
a ae?©, a ? ca®!e ?a? ?a?®«i§®c ?? a®!eY?a ¬? ?®?aYa®F®?-
« aa ®? ce?®«i«? § ¤ eY aea?ae??. ? ? ? c a«ac Y ?YaYFaa-
¦Yea aea?ae?© ‘++ c aeY«®¬, ?®¬??«ia®a ®?aY¤Y«iYa a §«?c?i c
aea?ae?ia ?® ?®aY?aaa ce§®c : ?® c?a«a ? a?? ¬  aFa¬Ya®c
®?Ya ¤®c:

˜YaY®?aY¤Y«Y?Y ¬®¦Ya !eai ce?®«Y® ¤«i caYa ®?Ya ae?©,
?a?cY¤Yea   aaa.20 ®a?F? « , §  ?a?«icY?Y¬

..* :: ?:

’ ?¦Y Yc®§¬®¦  ?YaYFaa§?  a?¬c®«®c ?aY?a®aeYaa®a  # ?
##.

?«icYc®Y a«®c® operator, §  ?®a®ae¬ a«Y¤aYa a?¬c®« ®?Y-
a ae??,  §ec Yaai ?¬YY¬ aea?ae??®?Ya ae??; ?a?®?aY¤Y«Y?? ®-
c®F® (?YaYFaa¦Y®F®) ¤Y©aac?i ®?Ya ae?? ®® ?a?®«i§aYaai ? ?
®!ec®Y ?¬i aea?ae??.

??Ya ae?i-aea?ae?i, ce§ec Y¬ i a aFa¬Ya ¬?, cY¤Ya aY!i
? ? ®?Ya ae?i, ce?®«iie i ®?aY¤Y«YeY ¤Y©aac?i a ®?Ya ¤ ¬?
c cea ¦Y??. ??Ya ae?i-aea?ae?i ?§¬YiYa c?a«®  aFa¬Ya®c ?«?
?a c?«  ?a?®a?aYa  ?  aa®ae? a?c®aa? ®?Ya ae?? (a !«?ae  1.20
  aaa.75 ®a?F? « ), aa c?aY«i® a YY ®a¬ «ie¬ ?a?®«i§®-
c ?Y¬. ˜ aa¬®aa?¬ ?« aa complex:

class complex (*
double real, imag; // ?® a¬®«c ?i private
public:

complex() (* real = imag = 0; *) // caaa®Ye© ?®a-
aaa?a®a
complex(double r, double i = 0) (* // YeY ®¤?
real = r; imag = i;
*)

*)

„ e© ?« aa !e« a®§¤  a®«i?® ¤«i ?a?¬Ya . ?®a«?cY
®a ?« aa  complex ?§ !?!«?®aY?? ?a?®«iieY© a?aaY¬e.

?e ¬®¦Y¬ «YF?® a §a !®a ai aea?ae?i ¤«i a«®¦Y?i ?®¬?-
«Y?aea c?aY«,  ?a?¬Ya,

complex AddComplex(complex c1, complex c2);

®¤ ?® !a¤Ya !®«YY YaaYaacYe¬ ?¬Yai c®§¬®¦®aai § ??a ai:

complex c1(0,1), c2(1,0), c3
c3 = c1 + c2;

– 118 –

c¬Yaa®

c3 = AddComplex(c1, c2);

??Ya ae?i + «YF?® ¬®¦Ya !eai ?YaYFaa¦Y , Ya«?c?«ic?ai c
?« aa complex a«Y¤aieYY ®!eic«Y?Y:

friend complex operator +(complex c1, complex c2*);

? a¤Y« c YF® ®?aY¤Y«Y?Y (c®§¬®¦®, caaa®Y®Y) a«Y¤ai-
e?¬ ®!a §®¬:

complex operator +(complex c1, complex c2)
(*
return complex(c1.real + c2.real, c1.imag + c2.imag);
*)
??Ya ae??-aea?ae??

??Ya ae??-aea?ae??¬®¦® ce§ec ai Y?®aaY¤aacY®, a®ai
®!ec® ®? ce§ec iaai ?®acY®, ?a? ?a?®«i§®c ?? ?YaYFaa-
¦Yea ®?Ya ae?©:

c3 = c1.operator + (c2); // a® ¦Y, ca® c3 = c1 + c2

‚ ®a«?c?Y ®a new ? delete, ?®a®aeY ?¬Yia ac®?a®!aacY-
eY ?a c?«  (a¬. a«Y¤aie?© a §¤Y«), ®?Ya ae?i-aea?ae?i ¤®«¦ 
!eai «?!® Y-aa a?cYa?®© aea?ae?Y©-?®¬?®Ya®¬, «?!® ?¬Yai
? ? ¬??¬a¬ ®¤?  aFa¬Ya a??  ?« aa . ??Ya ae?©-aea?ae?? =,
(), [] ? -> ¤®«¦e ic«iaiai Yaa a?cYa??¬? aea?ae?i¬?-?®¬?®-
Ya ¬?.

˜YaYFaa¦YeY ®?Ya ae?? ?  a«Y¤®c ?Y

‡  ?a?«icY?Y¬ ®?Ya ae??-aea?ae?? ?a?ac®Y?i =() (a¬.
a §¤Y« “˜YaYFaa§?  ®?Ya ae?? ?a?ac®Y?i =”   aaa.127 ®a?F?-
 « ) caY aea?ae?? ®?Ya ae?© ¤«i ?« aa  X  a«Y¤aiaai ?« aa®¬,
?a®?§c®¤e¬ ®a X, a®F« a® aa ¤ aae¬ ?a c?« ¬ a §aYeY?i
¤«i ?YaYFaa¦Yea aea?ae?©. …a«? • ic«iYaai ! §®ce¬ ?« aa®¬
¤«i Y, ?YaYFaa¦Y i aea?ae?i ®?Ya ae?? ¤«i • ¬®¦Ya ¤ «YY !eai
?YaYFaa¦Y  ¤«i Y.

˜YaYFaa§?  new ? delete

??Ya ae??new ? delete ¬®Faa !eai ?YaYFaa¦Ye a ??¬ ®!a –
§®¬, ca®!e¤ c ai «iaYa a?ceYc a? ae ?®¤?a®Fa ¬¬e a?a c«Y-
?i ac®!®¤®© ? ¬iaii (?acY©). ??aY¤Y«iY¬ i ?®«i§®c aY«Y¬
®?Ya ae?i new ¤®«¦  c®§ca e ai void* ? ?¬Yai c ? cYaacY ?Ya-
c®F®  aFa¬Ya  size_t. ??aY¤Y«iY¬ i ?®«i§®c aY«Y¬ ®?Ya ae?i
delete ¤®«¦  ?¬Yai a?? void ? ?Yace©  aFa¬Ya void*; ca®a®©
 aFa¬Ya, a??  size_t, ic«iYaai ®?ae?® «ie¬.

’?? size_t ®?aY¤Y«iYaai c stdlib.h.

˜ ?a?¬Ya,

#include

class X (*

public:
void* operator new(size_t size) (* return
newalloc(size);*)
void operator delete(void* p*) (*newfree(p); *)
X() (* /* §¤Yai ??ae? «?§ ae?i */
X(char ch) (* /* §¤Yai a®¦Y */ *)

– 119 –

-X() (* /* ®c?aa?  */ *)

*);

?aFa¬Ya size § ¤ Ya a §¬Ya a®§¤ c Y¬®F® ®!eY?a ,  
newalloc ? newfree ia® ®?aY¤Y«iY¬eY ?®«i§®c aY«Y¬ aea?ae??
a a?aY¤Y«Y?i ? ®a¬Ye a a?aY¤Y«Y?i ? ¬ia?. ‚e§®ce ?®a-
aaa?a®a  ? ¤Yaaaa?a®a  ¤«i ®!eY?a®c ?« aa  • (?«? ®!eY?a®c,
?a®?§c®¤ea ®a •, ¤«i ?®a®aea Y aaeYaacaYa a®!aacYea ?Y-
aYFaa¦Yea ®?Ya ae?© new ? delete) ?a?cY¤Ya ? § ?aa?a a®®a-
cYaaacaie?a®?aY¤Y«iY¬ea ?®«i§®c aY«Y¬ X::operator new() ?
X::operator delete(), a®®acYaaacY®.

??Ya ae??-aea?ae?? X::operator new ?X::operator delete
ic«iiaai aa a?cYa??¬? ?®¬?®Ya ¬? •, ? ? ?a? ic®¬ ®!eic«Y-
?? ?a static, a ? ? !Y§ YF®, ?®ia®¬a ®? Y ¬®Faa !eai
c?aaa «ie¬? aea?ae?i¬?.

‘a ¤ aaeY, ?aY¤®?aY¤Y«YeY (F«®! «ieY) ®?Ya ae?? new
? delete ¬®Faa ?a? ia®¬ a ?¦Y ?a?®«i§®c aiai c ?®aY?aaY •,
? ? ic® a ®?Ya ae?i¬?F«®! «i®F® ?®aY?aa  (::operator new ?
::operator delete), a ? ? Yic®, ?a? a®§¤ ?? ? a §aaeY??
®!eY?a®c ?« aa®c, ®a«?cea ®a ?« aa  • ? Y ic«iie?aai ?a®-
?§c®¤e¬? ®a ?« aa  •. ˜ ?a?¬Ya, ¬®¦® ?a?®«i§®c ai aa –
¤ aaeYnew ?delete?a? ®?aY¤Y«Y?? ?YaYFaa¦Yea cYaa?©:

void* X::operator new(size_t)
(*
void* ptr = new char[s]; // ce§®c aa ¤ aa®© new

return ptr;
*)
void X::operator delete(void* ptr)
(*

delete (void*) ptr; // ce§®c aa ¤ aa®© delete
*)

˜a?c?®©a®F®, ca® a §¬Ya  aFa¬Ya  ®?aY¤Y«iYaai size,
ic«iYaai a®,ca® ?« aae, ?a®?§c®¤eY ®a •,  a«Y¤aia
X::operator new. ˜ §¬Ya ®!eY?a ?a®?§c®¤®F® ?« aa ¬®¦Yaaa-
eYaacY® ®a«?c aiai ®a a §¬Ya , ®?aY¤Y«iY¬®F® ! §®ce¬ ?« a-
a®¬.

˜YaYFaa§?  a aea ®?Ya ae?©

˜YaYFaa§?  ?aYae??a®©?«? ?®aaae??a®© a a®© ®?Ya ae??
ce?®«iYaai ?a? ?®¬®e? ®!eic«Y?i Y-aa a?cYa?®© aea?ae??
?®¬?®Ya , Y ?a??¬ ieY© ?? ??a aFa¬Ya®c, «?!® ?a? ?®¬®-
e? ®!eic«Y?i aea?ae??, Y ic«iieY©ai aea?ae?Y©-?®¬?®Ya®¬
?a??¬ ieY© ®¤?  aFa¬Ya. …a«? @ ?aY¤aa c«iYa a®!®© a aai
®?Ya ae?i, a® @x ? x@ ¬®¦® ?aYa?aYa?a®c ai ? ?
x.operator@() ? operator@(x), a®®acYaaacY®, c § c?a?¬®aa?
®a ®!eic«Y?i. …a«? ®!eic«Y?Y !e«® a¤Y« ® c ®!Y?a ae®a¬ a,
a® a §aYeY?Y Y®¤®§ c®aa?§ c?a?a ®a ?YaY¤ ea ?a? ce§®-
cY ®?Ya ae?? aa ¤ aaea  aFa¬Ya®c.

‘«Y¤aYa !eai c?¬ aY«ie¬ ?a? ?YaYFaa§?Y ++ ? –, ?®a-
?®«i?a ?®aaae??a®Y ? ?aYae??a®Y ?a?®«i§®c ?Y Y ¬®¦Ya !eai
®?aY¤Y«Y® c ?YaYFaa¦Y®© aea?ae??. ˜ ?a?¬Ya,

– 120 –

class X (*

X operator ++() (* /* §¤Yai ?®¤?a®Fa ¬¬  ??aY¬Ya  X *
/ *)
*)

X x, y;
y = ++x; // a® ¦Y, ca® ? y = x++ !

˜YaYFaa§?  !? aea ®?Ya ae?©

˜YaYFaa§?  !? a®© ®?Ya ae?? ce?®«iYaai ?a? ?®¬®e?
®!eic«Y?i Y-aa a?cYa?®© aea?ae?? ?®¬?®Ya , ?a??¬ ieY©
®¤?  aFa¬Ya, «?!® ?a? ?®¬®e? ®!eic«Y?i Y ic«iieY©ai ?®¬-
?®Ya®¬ aea?ae?? (®!ec® friend), ?a??¬ ieY© ¤c   aFa¬Ya .
…a«? @ ?aY¤aa c«iYa a®!®© !? aai ®?Ya ae?i, a®x@y ¬®¦® ?-
aYa?aYa?a®c ai «?!® ? ? x operator@(y), «?!® ? ?
operator@(x,y), c § c?a?¬®aa? ®a ce?®«Yea ®!eic«Y?©. …a-
«? ®!eic«Ye ®!Y ae®a¬e, a® a §aYeY?Y Y®¤®§ c®aa? § c?-
a?a®a ?YaY¤ ea?a? ce§®cY ®?Ya ae?? aa ¤ aaea  aFa¬Ya®c.

˜YaYFaa§?  ®?Ya ae?? ?a?ac®Y?i =

??Ya ae?i?a?ac®Y?i = ¬®¦Ya !eai ?YaYFaa¦Y  a®«i?® ?a?
?®¬®e? ®!eic«Y?i Y-aa a?cYa?®© aea?ae??-?®¬?®Ya . ˜ ?a?-
¬Ya,

‚?¬ ?Y : ?a?¬Ya ?a®Fa ¬¬e a¬®aa?aY c ae ©«Y struct.app

„ e© ?®¤, a®c¬Yaa® a ®!eic«Y?i¬?
String::operator=(), ?®§c®«iYa ce?®«iai aaa®?®ceY ?a?ac®Y-
?i str1 = str2, ? ? ia® ¤Y« Yaai c ?a®c?a i§e? a ?a®Fa ¬¬?-
a®c ?i. ‚®a«?c?Y ®a ?a®c?a aea?ae?© ®?Ya ae?©, aea?ae?i ®?Ya –
ae?? ?a?ac®Y?i Y ¬®¦Ya  a«Y¤®c aiai ?a®?§c®¤e¬? ?« aa ¬?.
…a«? ¤«i ? ?®F®-«?!® ?« aa  • Y aaeYaacaYa ®?aY¤Y«iY¬®©
®?Ya ae?? =, a® ®?Ya ae?i = ®?aY¤Y«iYaai ?® a¬®«c ?i ? ? ?®-
?®¬?®Ya®Y ?a?ac®Y?Y ?®¬?®Ya®c ?« aa  •:

X& X::operator = (const X& source)
(*
// ?®?®¬?®Ya®Y ?a?ac®Y?Y
*)

˜YaYFaa§?  ®?Ya ae?? ce§®c  aea?ae?? ()

‚e§®c aea?ae??

?Yac?c®Y-cea ¦Y?Y()

a aa¬ aa?c Yaai c ? cYaacY ¤c®?c®© ®?Ya ae?? a ®?Ya –
¤ ¬? ?Yac?c®Y-cea ¦Y?Y ? a??a®?-cea ¦Y?© (c®§¬®¦®, ?aa-
a®©). ‘®®acYaaacaie i aea?ae?i ®?Ya ae?? ia® operator().
„  i aea?ae?i ¬®¦Ya ic«iaiai ®?aY¤Y«iY¬®© ?®«i§®c aY«Y¬ ¤«i
?« aa  • (? «i!ea ?a®?§c®¤ea?« aa®c) a®«i?® c ? cYaacY
Y-aa a?cYa?®© aea?ae??-?®¬?®Ya . ‚e§®c x(arg1, arg2), F¤Y
x Yaai ®!eY?a ?« aa  •, ?aYa?aYa?aaYaai c a ?®¬ a«ac Y ? ?
x.operator()(arg1,arg2).

˜YaYFaa§?  ®?Ya ae?? ?¤Y?a?a®c ?i []

– 121 –

? «®F?ce¬ ®!a §®¬, ®?Ya ae?i ?¤Y?a?a®c ?i

?Yac?c®Y-cea ¦Y?Y [cea ¦Y?Y]

a aa¬ aa?c Yaai ? ? ¤c®?c i®?Ya ae?i a ®?Ya ¤ ¬? ?Ya-
c?c®Y-cea ¦Y?Y ? cea ¦Y?Y. ‘®®acYaaacaie i aea?ae?i ®?Ya –
ae?? ia® operator[]; ®  ¬®¦Ya !eai ®?aY¤Y«Y  ?®«i§®c aY«Y¬
¤«i ?« aa  • (? «i!ea ?a®?§c®¤ea ?« aa®c) a®«i?® ?®aaY¤a-
ac®¬ Y-aa a?cYa?®© aea?ae??-?®¬?®Ya . ‚ea ¦Y?Y x[y], F¤Y
x ia® ®!eY?a ?« aa  •, ?aYa?aYa?aaYaai c ¤ ®¬ a«ac Y ? ?
x.operator[](y).

˜YaYFaa§?  ®?Ya ae?? ¤®aaa?  ? ?®¬?®Yaa ?« aa  ->

„®aaa? ? ?®¬?®Yaa ?« aa  ?a? ?®¬®e?

?Yac?c®Y-cea ¦Y?Y->cea ¦Y?Y

a aa¬ aa?c Yaai ? ? a a i®?Ya ae?i. ”a?ae?i operator->
¤®«¦  a aa¬ aa?c aiai ? ? Y-aa a?cYa? i aea?ae?i-?®¬?®Y-
a . ‚ea ¦Y?Y x->m, F¤Y x ia® ®!eY?a ?« aa  (*, ?aYa?aYa?-
aaYaai? ? (x.operator->())->m, a ??¬ ®!a §®¬, ca® operator->
() ¤®«¦Y «?!® c®§ca e ai a? § aY«i  ®!eY?a ¤ ®F® ?« aa ,
«?!® c®§ca e ai ®!eY?a ?« aa , ¤«i ?®a®a®F® ®?aY¤Y«iYaai
operator->.
‚?aaa «ieY aea?ae?? ——————————-

‚?aaa «ieY aea?ae???®§c®«iia ?a®?§c®¤e¬ ?« aa ¬ ®!Ya-
?Yc?c ai a §eY cYaa?? aea?ae??! §®c®F® ?« aa . ‚e ¬®¦YaY
®!eic?ai c?aaa «iai aea?ae?i c ! §®c®¬ ?« aaY ? § aY¬ ?YaY-
®?aY¤Y«?ai YY c«i!®¬ ?a®?§c®¤®¬ ?« aaY, ¤ ¦Y Ya«? c?a«® ?
a?? YY  aFa¬Ya®c ®aa Yaai !Y§ ?§¬YY?©. ‚e a ?¦Y ¬®¦YaY
®!eic?ai aea?ae?? int Base::Fun (int) ? int Derived::Fun
(int), ¤ ¦Y Ya«? ®? Y ic«iiaai c?aaa «ie¬?. ‚Yaa?i ! §®-
c®F® ?« aa  ¤®aaa?  ®!eY?a ¬ ?a®?§c®¤®F® ?« aa  cYaY§ ?Y-
aY®?aY¤Y«Y?Y ?®aY?aa . …a«? ®? ic«iiaai c?aaa «ie¬?, a®
¤®aaa?  a®«i?® aea?ae?i, aci§  i a ae ?a?cYa??¬ a??®¬ ®!e-
Y?a .

‚ a«ac Yc?aaa «iea aea?ae?© ce Y ¬®¦YaY ?§¬Y?aia??
aea?ae??. ‘«Y¤®c aY«i®, Y¤®?aaa?¬e¬ ic«iYaai ?YaY®?aY¤Y«Y-
?Y c?aaa «i®© aea?ae?? a ??¬ ®!a §®¬, ca®!e ®  ®a«?c « ai
a®«i?® a??®¬c®§ca a . …a«? ¤cY aea?ae?? a ®¤?¬ ? aY¬ ¦Y ?¬Y-
Y¬ ?¬Yia a §eY  aFa¬Yae, ‘++a aa¬ aa?c Ya ?a ? ?a §eY-
aea?ae??, ? ¬Ya ?§¬ c?aaa «iea aea?ae?© ?F®a?aaYaai.

?®c®aia,ca® ?YaY®?aY¤Y«Y i aea?ae?i ?YaY®?aY¤Y«iYa
aea?ae?i ! §®c®F® ?« aa . „«i ®!eic«Y?i c?aaa «i®© aea?ae??
a«a¦?a a?Yae?ae?? a®a virtual. ‘?Yae?ae?? a®a virtual ?®¤a §a¬Y-
c Ya ?®¬?®Yaaac® c ?« aaY, ?®ia®¬a c?aaa «i i aea?ae?i Y
¬®¦Ya !eai F«®! «i®© (Y ic«iieY©ai ?®¬?®Ya®¬) aea?ae?Y©.

…a«? ! §®ce© ?« aa ‚ a®¤Ya¦?a c?aaa «iai aea?ae?i vf, ?
?« aa D, ic«iie?©ai ?a®?§c®¤e¬ ®a ?« aa  B, a®¤Ya¦?a aea?-
ae?i vf a®F® ¦Y a?? ,a® Ya«? aea?ae?i vf ce§ec Yaai ¤«i®!eY?a 
d ?«? D, ce?®«iYaai ce§®c D::vf, ¤ ¦Y Ya«? ¤®aaa? ®?aY¤Y«Y
cYaY§ a? § aY«i ?«? aae«?a   B. ˜ ?a?¬Ya,

struct B (*
virtual void vf1();
virtual void vf2();
virtual void vf3();
void f();
*)
class D : public B (*
virtual void vf(); // a?Yae?ae?? a®a virtual ¤®?aaa?¬, ®

– 122 –
// ?§!ea®cY
void vf2(int); // Y virtual, ?®a?®«i?a §¤Yai
// ?a?®«i§aYaai ¤aaF®© a??a®?  aFa¬Ya®c
char f(); // a ? Y«i§i: ?§¬YiYaai a®«i?® a??
// c®§ca a 
void f();
*);

void extf()
(*
D d; // ®!eic«Y?Y ®!eY?a  D
B* bp = &d; // aa ¤ aa®Y ?aY®!a §®c ?Y ?§ D* c B*
bp->vf1(); // ce§®c D::vf1
bp->vf2(); // ce§®c B::vf2, a ? ? ? vf2 ?§ D ?¬YYa
// ®a«?ceY  aFa¬Yae
bp->f(); // ce§®c B::f (Y c?aaa «i®©)
*)

˜YaY®?aY¤Y«iie iaea?ae?i vf1 c D  ca®¬ a?cYa?? aa ®c?a-
ai c?aaa «i®©. ‘?Yae?ae?? a®a virtual ¬®¦Ya !eai ?a?®«i§®c 
c ®?aY¤Y«Y?? ?YaY®?aY¤Y«iieY©aea?ae?? c ?a®?§c®¤®¬ ?« aaY,
®   a ¬®¬ ¤Y«Y ® ic«iYaai c ¤ ®¬ a«ac Y ?§!ea®ce¬.

?aYa?aYa ae?i ce§®c  c?aaa «i®© aea?ae?? § c?a?a ®a a?-
?  ®!eY?a , ¤«i ?®a®a®F® ®  ce§ec Yaai; c a«ac Y ce§®c  Y-
c?aaa «iea aea?ae?© ?aYa?aYa ae?i § c?a?a a®«i?® ®a a?? 
a? § aY«i ?«? aae«??, a? §ec ie?a ®!eY?a, ¤«i ?®a®a®©®  ce-
§ec Yaai.

˜a?¬Yc ?Y:

‚?aaa «ieY aea?ae?? ¤®«¦e ic«iaiai ?®¬?®Ya ¬? Y?®-
a®a®F® ?« aa , ®®? Y ¬®Faa !eaiaa a?cYa??¬? ?®¬?®Ya ¬?.
‚?aaa «i i aea?ae?i ¬®¦Ya ic«iaiai ¤aaF®¬ (friend) ¤aaF®F®
?« aa .

‚?aaa «i i aea?ae?i c ! §®c®¬ ?« aaY, ? ? ? caY aea?ae??
-?®¬?®Yae ! §®c®F® ?« aa , ¤®«¦  !eai ®?aY¤Y«Y ,   Ya«?
Y ®?aY¤Y«Y , a® ®!eic«Y  ? ? aea?ae?i !Y§ ?®!®c®F® iaeaeY?-
a  (“c?aa i”).

class B (*
virtual void vf(int) = 0;// = 0 ®§ c Ya “c?aaai” aea?ae?i

‚ ?« aaY, ?a®?§c®¤®¬ ®a a ?®F® ! §®c®F® ?« aa , ? ¦¤ i
“c?aa i” aea?ae?i ¤®«¦  !eai ®?aY¤Y«Y  ?«? ?YaY®!eic«Y  c
? cYaacY a ?®c®© (a¬. a«Y¤aie?© a §¤Y«, “?!aaa ?aeY ?« a-
ae”).

…a«? c?aaa «i i aea?ae?i ®?aY¤Y«Y  c ! §®c®¬ ?« aaY,
a® Ya Y®!a®¤?¬®aa? YY ?YaY®?aY¤Y«Y?i c ?a®?§c®¤®¬ ?« a-
aY. ˜a? ce§®c a !a¤Ya ?a®aa® ce§c   a®®acYaaacaie i ! §®c i
aea?ae?i.

‚?aaa «ieY aea?ae?? § aa c«iia ®?aY¤Y«Ye¬ ®!a §®¬
a a?« c?c aiai §  ac®i a?cYaa «i®aai: ? ¦¤e© ®!eY?a ?a®?§-
c®¤®F® ?« aa  ¤®«¦Y a®¤Ya¦ ai a? § aY«i   a !«?aea aea?ae?©
a aY¬, ca®!e c® caY¬i ce?®«Y?i ?a®Fa ¬¬e ce§c ai a¦ai
(?®§¤ii ?®¬?®®c? ). ‘¬. F« ca 5, c ¤®?a¬YaY “˜ c «® a !®-
ae”.

?!aaa ?aeY ?« aae

?« c  5 ¤®?a¬Ya  “˜ c «® a !®ae” ?a?c®¤?a ?a?¬Ya  !a-
aa ?a®F® ?« aa  c ¤Y©aac??.

?!aaa ?ae¬  §ec Yaai ?« aa a ? ? ¬??¬a¬ ®¤®© c?aa®©

– 123 –
c?aaa «i®© aea?ae?Y©. ‚?aaa «i i aea?ae?i § ¤ Yaai ? ? “c?a-
a i” ?a? ?®¬®e? a®®acYaaacaieYF® a?Yae?ae?? a®a .

?!aaa ?ae© ?« aa ¬®¦Ya ?a?®«i§®c aiai a®«i?® c ? cYaa-
cY ! §®c®F® ?« aa  ¤«i ¤aaF?a ?« aa®c. ?!eY?ae  !aaa ?a®F®
?« aa  a®§¤ e !eai Y ¬®Faa. ?!aaa ?ae© ?« aa Y ¬®¦Ya
!eai ?a?®«i§®c  ? ? a??  aFa¬Ya  ?«? ? ? a??c®§ca a  aea?-
ae??. ?¤ ?®, ¤®?aa? Yaai ®!eic«iai a? § aY«?    !aaa ?ae©
?« aa. „®?aaa?¬e aae«??    !aaa ?ae© ?« aa ?a? aa«®c??,
ca® ?a? ??ae? «?§ ae?? Y aaY!aYaai a®§¤ ?Y caY¬Y®F® ®!e-
Y?a . ˜ ?a?¬Ya,

class shape (* //  !aaa ?ae© ?« aa
point center;

public:
where() (* return center; *)
move(point p) (* center = p; draw(); *)
virtual void rotate(int) = 0; // c?aa i c?aaa «i i aea?ae?i
virtual void draw() = 0; // c?aa i c?aaa «i i aea?ae?i
virtual void hilite() = 0; // c?aa i c?aaa «i i aea?ae?i

*)

shape x; // ®e?!? : ?®?ea?  a®§¤ ?i ®!eY?a   !aaa ?a-
®F®
// ?« aa 
shape* sptr; // a? § aY«i    !aaa ?ae© ?« aa ¤®?aaa?¬
shape f(); // ®e?!? :  !aaa ?ae© ?« aa Y ¬®¦Ya ic-
«iaiai
// a??®¬ c®§ca a 
int q(shape s); // ®e?!? :  !aaa ?ae© ?« aa Y ¬®¦Ya
ic«iaiai
// a??®¬  aFa¬Ya  aea?ae??
shape& h(shape&);// aae«?     !aaa ?ae© ?« aa c ? –
cYaacY a?? 
// c®§ca a  ?«?  aFa¬Ya  aea?ae?? ¤®?aaa?¬

˜aY¤?®«®¦?¬, ca® D ic«iYaai ?a®?§c®¤e¬ ?« aa®¬ Y?®a-
aY¤aacY® ®a  !aaa ?a®F® ! §®c®F® ?« aa  B. ’®F¤  ¤«i ? ¦-
¤®© c?aa®© c?aaa «i®© aea?ae?? pvf c B «?!® D ¤®«¦Y
®!Ya?Yc?c ai ®?aY¤Y«Y?Y pvf, «?!®D ¤®«¦Y ®!eic«iai pvf ? ?
c?aaai aea?ae?i.

˜ ?a?¬Ya, a ?a?®«i§®c ?Y¬ ?®? § ®F® ceeY ?« aa 
shape:

class circle : public shape (* // circle ic«iYaai ?a®-
?§c®¤e¬ // ®a  !aaa ?a®F® ?« aa 
int radius; // private

public:
void rotate(int) (* *) // ®?aY¤Y«iYaai c?aaa «i i
// aea?ae?i:
// ¤Y©aac?i ?® ca eY?i ®?aa¦-
// ®aa? ®aaaaaacaia
void draw(); // circle::draw ¤®«¦  !eai
// F¤Y-«?!® ®?aY¤Y«Y 
void hilite() = 0; // ?YaY®?aY¤Y«Y?Y aea?ae??
// ? ? “c?aa®©”

”a?ae?©-?®¬?®Yae ¬®Faa !eai ®!eic«Ye ?§ ?®aaaa?a®a 
 !aaa ?a®F®?« aa , ® ce§®c c?aa®© c?aaa «i®© aea?ae?? Y-
?®aaY¤aacY® ?«? ?®acY® ?§ a ?®F® ?®aaaa?a®a ?a?c®¤?a ?
®e?!?Y caY¬Y? ce?®«Y?i.

?®aY?aa ‘++

– 124 –

‹Y?a?cYa??Y ?a c?« ®?aY¤Y«Y?i ?®aY?aa  c ‘++, !Y§®a-
®a?aY«i® ? ?®aY?aaa ?« aa , a«Y¤aia ®!e?¬ ?a c?« ¬ ‘, ®
a acYa®¬ a®F®, ca® ‘++, c ®a«?c?Y ®a ‘, ?®§c®«iYa ®!eic«Y?-
i? ? ¤ ea, a ? ? aea?ae?© cY§¤Y, F¤Y ¬®¦Ya  a®¤?aiai ®?Y-
a a®a. ’ ? i F?!?®aai ®§ c Ya, ca® Y®!a®¤?¬  ®aa®a®¦®aai
?a? ?aYa?aYa ae?? a ??a aea §, ? ? “®!eY¬«ie?© ?®aY?aa” ?
“a®c?  ®!eic«Y?i”.

?®aY?aa ?« aa 

?¬i ? ?®¬?®Ya  ?« aa  • ?¬YYa ?®aY?aa ?« aa  “«®-
? «ie© ?® ®a®eY?i •”; ®® ¬®¦Ya ?a?®«i§®c aiai c a«Y¤ai-
e?a a?aa ae?ia:

– c aea?ae?ia-?®¬?®Ya a •

– c cea ¦Y?ia a??  x.M, F¤Y x Yaai ®!eY?a •

– c cea ¦Y?ia a??  xptr->M, F¤Y xptr Yaai a? § aY«i
®!eY?a  •

– c cea ¦Y?ia a??  X::M ?«? D::M, F¤Y D Yaai ?a®?§c®¤-
e© ?« aa ®a X

– c aae«? a c?YaY¤ c ?aY¤Y« a ?« aa , ?®a®a®¬a ?a? ¤-
«Y¦?a ?®¬?®Ya

?« aae, ?YaYc?a«?¬eY ¤ eY ?«? ?¬Y  typedef, ®!eic-
«YeY c ?aY¤Y« a ?« aa  •, «?!® ?¬Y  aea?ae?©, ®!eic«YeY
? ? “¤aa§ii” •, Y ic«iiaai ?®¬?®Ya ¬? •; ?a ?¬Y  ?a®aa®
?¬Yia ®!eY¬«ie?© ?®aY?aa.

‘?aeaeY ?¬Y 

?¬i ¬®¦Ya !eaia?aea®ice¬ ®!eic«Y?Y¬ a®F® ¦Y ?¬Y? c
®!eY¬«ieY¬ !«®?Y ?«? c ?« aaY. ‘?aeae© ?®¬?®Ya ?« aa  aY¬
Y ¬YYY ®aa Yaai ¤®aaa?e¬ ?a? ?®¬®e? ¬®¤?ae?? a®a  ?®aY?a-
a , § ¤ ®F® a ?¬YY¬ ?« aa  X:M. ‘?aea®Y ?¬i a ?®aY?aa®¬
ae ©«  (F«®! «i®Y) ?®§c®«iYa aae«?a   YF® ?a? ?®¬®e? a a-
®© ®?Ya ae?? ::,  ?a?¬Ya ::g. ?¬i ?« aa  • ¬®¦Ya !eai a?ae-
a® ?¬YY¬ ®!eY?a , aea?ae??, «?!® a¬Ya a®a , § ¤ ®F® c
?®aY?aaY •, Y§ c?a?¬® ®a ?®a«Y¤®c aY«i®aa? ®!eic«Y?i
?¬Y. ?¤ ?®, ?¬i a?aea®F® ?« aa  • ¤®aaa?® ?a??a?®«i§®c –
?? ?aYae??a  • a a®®acYaaacaie?¬ ?«icYce¬ a«®c®¬ class,
struct ?«? union.

’®c?  ®!eic«Y?i ?¬Y? a  a®¤?aai Y?®aaY¤aacY® ?®a-
«Y YF® ?®«®F® ®!eic«Y?i, ® ¤® ??ae? «?§ a®a , Ya«? a ?®-
c®© aaeYaacaYa.

?a a?®Y ?§«®¦Y?Y ?a c?« ®?aY¤Y«Y?i ?®aY?aa  ‘++

‘«Y¤aie?Y ?a c?«  ?a?¬Y?¬e ?® caY¬ ?¬Y ¬, c?«ic i
?¬Y  typedef ? ?¬Y  ?« aa®c, ?a? aa«®c??, ca® a® ?«? ?®-
Y?¬i ¤®?aaa?¬® c ‘++ c ?®?aYa®¬ ®!aa¦¤ Y¬®¬ ?®aY?aaY:

1. ‘ c «  a ¬® ?¬i ?a®cYaiYaai    «?c?Y Y®¤®§ c-
®aaY©. …a«? c ?aY¤Y« a ?®aY?aa  Y®¤®§ c®aa? ®aaaaaaca-
ia, a® ??ae??aaYaai ?®a«Y¤®c aY«i®aai ¤®aaa? .

2. …a«? ®e?!®? a?a c«Y?i ¤®aaa?  Y ®! aa¦Y®, a®
?a®cYaiYaai a?? ®!eY?a , aea?ae??, ?« aa , typedef, ? a.¤.

3. …a«? ?¬i ?a?®«i§aYaai cY ? ?®©-«?!® aea?ae?? ?«?
?« aa , «?!® ?¬YYa ?aYae??a a a®© ®?Ya ae?? ?®aY?aa  ¤®aaa-
?  ::, ? Ya«? ?¬i Y ?c «?ae?ae?a®c ® !? a®© ®?Ya ae?Y©

– 125 –
::?«? ®?Ya ae?i¬?ce!®a ?®¬?®Ya  . ?«? ->, a® ia® ?¬i ¤®«¦®
!eai ?¬YY¬ F«®! «i®F® ®!eY?a , aea?ae?? ?«? a¬Ya a®a .

4. …a«? ?¬i n ?®ic«iYaai c ®¤®¬ ?§ c?¤®c: X::n, x.n
(F¤Y x ia® ®!eY?a ?« aa  • ?«? aae«?    •), «?!® ptr->n
(F¤Y ptria® a? § aY«i   •),a® n ic«iYaai ?¬YY¬ ?®¬?®Ya 
•?«? ?®¬?®Ya®¬ ?« aa , ?a®?§c®¤e¬ ®a ?®a®a®F® ic«iYaai •.

5. ‹i!®Y ¤® a?a ?®a Y a aa¬®aaY®Y ?¬i, ?a?®«i§aY¬®Y
c ? cYaacY aa a?cYa?®© aea?ae??-?®¬?®Ya , ¤®«¦® !eai ®!e-
ic«Y® c !«®?Y, c ?®a®a®¬®® caaaYc Yaai, «?!® c ®!eY¬«i-
eY¬!«®?Y, «?!® ic«iaiai F«®! «ie¬ ?¬YY¬. ?!eic«Y?Y «®-
? «i®F® ?¬Y? n a?aec Ya ®!eic«Y?i n c ®!eY¬«ie?a !«®? a ?
F«®! «ieY ®!eic«Y?i n. ?¬Y  c a §«?cea?®aY?aa a Y¬®Faa
!eai ?YaYFaa¦Ye.

6. ‹i!®Y Y a aa¬®aaY®Y ¤® a?a ?®a ?¬i, ?a?®«i§aY¬®Y
c ? cYaacY ?¬Y? Yaa a?cYa?®© aea?ae?? ?®¬?®Ya  ?« aa  •,
¤®«¦® !eai ®!eic«Y® c !«®?Y, c ?®a®a®¬ ®® caaaYc Yaai,
«?!® c ®!eY¬«ieY¬ !«®?Y, !eai ?®¬?®Ya®¬ ?« aa  • ?«? ! §®-
c®F® ®a®a?aY«i® • ?« aa , «?!® !eai F«®! «ie¬ ?¬YY¬.
?!eic«Y?Y «®? «i®F® ?¬Y? n a?aec Ya ®!eic«Y?i n c ®!eY¬-
«ie?a !«®? a,?®¬?®Ya a ?« aa – aea?ae?ia ? F«®! «iea ®!e-
ic«Y?ia n. ?!eic«Y?Y ?¬Y? ?®¬?®Ya  a?aec Ya ®!eic«Y?i
ia®F® ?¬Y? c ! §®cea ?« aa a.

7. ?¬i  aFa¬Ya  aea?ae?? c ®?aY¤Y«Y?? aea?ae??  a®¤?a-
ai c ?®aY?aaY a ¬®F® cYeYF® !«®?  ¤ ®© aea?ae??. ?¬i  a-
Fa¬Ya  aea?ae?? c Y-®?aY¤Y«iieY¬ ®!eic«Y?? aea?ae?? c®®!eY
Y ?¬YYa ?®aY?aa . ?®aY?aa  aFa¬Ya  ?® a¬®«c ?i ®!eic«i-
Yaai a®c?®© ®!eic«Y?i ¤ ®F®  aFa¬Ya , ®Y ?®§c®«iYa
¤®aaa? ? «®? «ie¬ ?YaY¬Ye¬ ?«? Y-aa a?cYa??¬ ?®¬?®Ya ¬
?« aa . ?aFa¬Yae ?® a¬®«c ?i cec?a«iiaai c ? ¦¤®© a®c?Y
ce§®c .

8. ??ae? «?§ a®a ?®aaaa?a®a  (a¬. “??ae? «?§ a®a-?®a-
aaa?a®a ” c ®??a ?? a?a ?a?a  ¤Y?« a a®a  ?« aa  c a !«?aeY
1.12   aaa.37 ®a?F? « ) cec?a«iYaai c ?®aY?aaY a ¬®F®
cYeYF® !«®?  ?®aaaa?a®a , ? ?®ia®¬a a §aYe Ya aae«??  
?¬Y   aFa¬Ya®c ?®aaaa?a®a .

„?aY?a?ce ?aY?a®aeYaa®a  Turbo C++

•®ai Turbo C++ ?a?®«i§aYa ?a?®«i§aYa ?aYFa?a®c e©
®¤®?a®a®¤e© ?®¬??«ia®a ? ? ?a? a !®aY c ?aYFa?a®c ®©
aaY¤Y a §a !®a?? (IDE), a ? ? ?a? ce§®cY ?®¬??«ia®a  ?§ ?®-
¬ ¤®© aaa®??, ?®«Y§® aY¬ Y ¬YYY a®aa ?ai aYa¬?®«®F?i,
a®aa ?ceaiai ®a !®«YY a ?a, ¬®F®?a®a®¤ea ?®¬??«ia®a®c.
‚ a«ac Y ?®a«Y¤?a   ?Yac®¬ ?a®a®¤Y ®!a !®a?? ?aa®¤®F®
aY?aa  ?a®Fa ¬¬e ce?®«iYaai ?®¤?«icY?Y caYa ?¬Yie?aaic?«i-
c Y¬ea ae ©«®c, ?a®cYa?  caYa aa«®cea ¤?aY?a?c ?®¬??«iae??,
a ae?aY?Y caYa ?¬Yie?aai ¬ ?a®a®c ? ?®«acY?Y ?a®¬Y¦aa®c®-
F® ae ©«  ¤«i ®!a !®a?? ?®a«Y¤aie?¬? ?a®a®¤ ¬? ?®¬??«ia®a .
˜®a?®«i?a? ? ?aYFa?a®c  i aaY¤  a §a !®a??, a ? ? cYaa?i
?®¬ ¤®© aaa®?? Turbo C++ ce?®«iia ?Yace© ?a®a®¤, Y a®§-
¤ c i?a? ia®¬ ? ??a-«?!® ?a®¬Y¦aa®cea ae ©«®c, Turbo C++
c?«ic Yac aY!i Y§ c?a?¬e© ?aY?a®aeYaa®a, CPP.EXE, ?®a®ae©
?¬YYa   cea®¤Y a ?®© ?a®¬Y¦aa®ce© ae ©«. CPP ?®«Y§Y  
aa ¤?? ®a« ¤??, ?®a?®«i?a?®? §ec Ya c c?aa®¬ c?¤Y aY§a«ia ae
a !®ae ¤?aY?a?c c?«icY?i, aa«®cea ¤?aY?a?c ?®¬??«iae?? ?
a«®¦ea ¬ ?a®a ae?aY?©.

CPP ?®§c®«iYa ®!a eY?Y ? ¤®?a¬Ya ae?? ?® Y¬a c ¤? «®-
F®c®¬ aY¦?¬Y.

‘«Y¤aieYY ®!aa¦¤Y?Y ¤?aY?a?c ?aY?a®aeYaa®a , ?a a?a ?-
a?a ? aY¬ a?? , ?a?¬Y?¬e, a«Y¤®c aY«i®, ? ? ? a ¬®¬a

– 126 –
?aY?a®aeYaa®aa CPP, a ? ? ? YF® aea?ae?i¬, caaa®Ye¬ c ?®¬??-
«ia®ae Turbo C++.

˜aY?a®aeYaa®a  a®¤?a ¤?aY?a?ce ?aY?a®aeYaa®a  (?®a®aeY
 §ec ia a ?¦Y a?a c«iie?¬?aaa®? ¬? ?aY?a®aeYaa®a ) ? ce?®«-
iYa «Y?a?cYa??©   «?§  a®¤ie?aai c ?a aea §.

˜aY?a®aeYaa®a Turbo C++ c?«ic Yac aY!i a«®¦e© ?a®aeYaa®a
¬ ?a®a®c, a? ?aaie?© ?aa®¤e© ?®¤ ?YaY¤ ®!a !®a?®©YF® ?®¬-
??«ia®a®¬.˜aY?a®aeYaa®a ®!Ya?Yc?c Ya ¬®eeY aaY¤aac  ? F?!-
?®aai, § ?«ic ie?Yai c a«Y¤aieY¬:

– ??aY¤Y«Y?Y ¬ ?a®a®c, ?®a®aeY a«a¦ a ¤«i a?¦Y?i
aaa¤®Y¬?®aa? ?a®Fa ¬¬?a®c ?i ? a«aceY?? c?a Y¬®aa? ?®¤ .
˜Y?®a®aeY ¬ ?a®ae ?®§c®«iia ?§!Y¦ ai § aa a   ce§®c aea?-
ae?©.

– ‚?«icY?Y aY?aa®c ?§ ¤aaF?a ae ©«®c, a ??a ? ? ae ©«e
§ F®«®c? , c ?®a®aea a®¤Ya¦ aai ?a®a®a??e aa ¤ aaea !?!«?-
®aYcea ? ®?aY¤Y«iY¬ea ?®«i§®c aY«Y¬ aea?ae?©,   a ?¦Y !a?-
c «ieY ?®aa ae.

– “aa ®c?  aa«®c®© ?®¬??«iae?? ¤«i a«aceY?i ¬®!?«i-
®aa? ?®«ac Y¬ea ?®¤®c ? ¤«i aeY«Y© ®a« ¤??.

„?aY?a?ce ?aY?a®aeYaa®a  ®!ec® ?®¬Ye iaai c  c «®
?aa®¤®F® ?®¤ , ® ¤®?aaa?¬e c «i!®© a®c?Y ?a®Fa ¬¬e.

‹i! i aaa®?  a cY¤ae?¬ a?¬c®«®¬ # a aa¬ aa?c Yaai? ?
¤?aY?a?c  ?aY?a®aeYaa®a , Ya«?a®«i?®# Y ca®¤?a c aaa®?®ce©
«?aYa «, a?¬c®«iai ?®aa aa ?«? ?®¬¬Ya a?©. ‚Y¤aeY¬a a?¬-
c®«a # ¬®¦Ya ?aY¤eYaac®c ai, «?!® a«Y¤®c ai §  ?¬,?a®!Y«i-
eY a?¬c®«e (§  ?a?«icY?Y¬ a?¬c®«  ®c®© aaa®??).

˜®«e© a?a ?a?a ?aY?a®aeYaa®a  Turbo C++ ?®? §  c a«Y-
¤aieY© a !«?aeY:

‘?a ?a?a ¤?aY?a?c ?aY?a®aeYaa®a  Turbo C++ ’ !«?ae  1.23
———————————————————–
ae ©«-¤«i-?aY?a®aeYaa®a :
Faa?? 

Faa?? :
c aai Faa??e
Faa??  c aai-Faa??e

c aai-Faa??e:
®c i-aaa®? 
if-a §¤Y«
a?a c«iie i aaa®? 

if-a §¤Y«:
if-Faa??  endif-aaa®? 

if-Faa?? :
#if cea ¦Y?Y-a?? -?®aa ae ®c i-aaa®? 
#ifdef ?¤Ya?ae?? a®a ®c i-aaa®? 
#ifndef ?¤Ya?ae?? a®a ®c i-aaa®? 

elif-Faa??e:
elif-Faa?? 
elif-Faa??e elif-Faa?? 

elif-Faa?? :
#elif cea ¦Y?Y-a?? -?®aa ae

else-Faa?? :

– 127 –
#else ®c i-aaa®? 

endif-aaa®? :
#endif ®c i-aaa®? 

a?a c«iie i-aaa®? :
#include «Y?aY¬e-?aY?a®aeYaa®a  ®c i-aaa®? 
#define ?¤Ya?ae?? a®a a??a®?-§ ¬Ye ®c i-aaa®? 
#define ?¤Ya?ae?? a®a «Yc i-?aaF« i-a?®!? 
) a??a®?-§ ¬Ye ®c i-aaa®? 
#undef ?¤Ya?ae?? a®a ®c i-aaa®? 
#line ®c i-aaa®? 
#pragma ®c i-aaa®? 
#pragma warn ¤Y©aac?Y a®?a eY?Y ®c i-aaa®? 
#pragma inline ®c i-aaa®? 
? ®c i-aaa®? 

¤Y©aac?Y: ®¤® ?§
+ – .

a®?a eY?Y:
amb ampapt aus big cincpt
def dupelf mod par piapro
rch retrng rpt rvf sigstr
stu stvsus ucp use volzst

«Yc i-?aaF« i-a?®!? :
a?¬c®« «Yc®© ?aaF«®© a?®!?? !Y§ ?aY¤eYaacaie?a ?a®!Y«i-
ea a?¬c®«®c

a??a®?-§ ¬Ye:

«Y?aY¬e-?aY?a®aeYaa®a :
?¬i-§ F®«®c?  (a®«i?® ¤«i ¤?aY?a?ce #include)
?¤Ya?ae?? a®a (!Y§ a §«?cY?i ?«icYc®F® a«®c )
?®aa a 
aaa®?®ce©-«?aYa «
®?Ya ae?i
?a?aa a®a
«i!®© Y-?a®!Y«ie© a?¬c®«, Y ®a®aie?©ai ? ?aY¤e¤ae?¬
?a?a ¬

?¬i-§ F®«®c? :
®a«Y¤®c aY«i®aai-a?¬c®«®c-§ F®«®c? >

?®a«Y¤®c aY«i®aai-a?¬c®«®c-§ F®«®c? :
a?¬c®«-§ F®«®c? 
?®a«Y¤®c aY«i®aai-a?¬c®«®c-§ F®«®c?  a?¬c®«-§ F®«®c? 

a?¬c®«-§ F®«®c? :
«i!®© a?¬c®« ?§ ?aa®¤®F® ¬®¦Yaac  a?¬c®«®c, §  ?a?«i-
cY?Y¬ a?¬c®«  ®c®©-aaa®?? (\n) ?«? a?¬c®«  “!®«ieY cY¬”
(>).

®c i-aaa®? :
a?¬c®« ®c®© aaa®??
———————————————————–

˜aaa i ¤?aY?a?c  #

˜aaa i ¤?aY?a?c  a®aa®?a?§ aaa®??, c?®a®a®© a®¤Ya¦?aai
Y¤?aacYe©a?¬c®« #. ˜a  ¤?aY?a?c  caYF¤  ?F®a?aaYaai
?aY?a®aeYaa®a®¬.

„?aY?a?ce #define ? #undef

– 128 –
„?aY?a?c  #define ®?aY¤Y«iYa ¬ ?a®a. ? ?a®ae ®!Ya?Yc?-
c ia ¬Ya ?§¬ § ¬Ye «Y?aY¬e  !®a®¬ ae®a¬ «iea, ?®¤®!ea
?a?®«i§aY¬ea c aea?ae?ia ? a ¬Yaa®c, «?!® ?aaa®© § ¬Ye.

˜a®aaeY ¬ ?a®ae #define

‚ ?a®aaea a«ac ia, !Y§ ? a ¬Yaa®c, a?a ?a?a ¤ ®© ¤?-
aY?a?ce a«Y¤aie?©:

#define ?¤Ya?ae?? a®a_¬ ?a®a  ®a«Y¤®c aY«i®aai_«Y?- aY¬>

? ¦¤®Y ca®¦¤Y?Y ?¤Ya?ae?? a®a _¬ ?a®a  c ?aa®¤e© ?®¤
?®a«Y ¤ ®© a?a c«iieY© aaa®?? !a¤Ya § ¬YY®   ¬YaaY –
c®§¬®¦®, ?aaa®©, -?®a«Y¤®c aY«i®aaii_«Y?aY¬ (?¬Yiaai Y?®-
a®aeY a aa¬ aa?c Y¬eY ?¦Y ?a?«icY?i). ’ ??Y § ¬Ye  §ec –
iaai ¬ ?a®a ae?aY?i¬?. ˜®a«Y¤®c aY«i®aai «Y?aY¬ ?®F¤   –
§ec ia aY«®¬ ¬ ?a®a .

‹i!eY ca®¦¤Y?i?¤Ya?ae?? a®a ¬ ?a®a , ®! aa¦Y®Y c
«?aYa «iea aaa®? a, a?¬c®«iea ?®aa a a ?«? ?®¬¬Ya a?ia
a ae?aY?i Y ?®¤«Y¦ a.

˜aaa i ?®a«Y¤®c aY«i®aai «Y?aY¬ ?®§c®«iYaiaeaeY?a?c®Y
a¤ «Y?Y caYa  ©¤Yea ?¤Ya?ae?? a®a®c ¬ ?a®a®c ?§ ?aa®¤®-
F® ?®¤ :

#define HI “„®!ae© ¤Yi!”
#define empty
#define NIL “”

puts(HI); /* a ae?aiYaai c: puts(“„®!ae© ¤Yi!”); */
puts(NIL); /* a ae?aiYaai c: puts(“”); */
puts(“empty”); /* a ae?aY?i empty Y ?a®?aa®¤?a ! */
/* a ae?aY?Y empty Y !a¤Ya ce?®«Y® ? c ?®¬¬Ya a?-
ia! */

˜®a«Y a ae?aY?i ? ¦¤®F® ?®?aYa®F® ¬ ?a®a  ¤ «iY©eYY
a? ?a®c ?Y ?a®¤®«¦?aai a¦Y ¤«i ®c®F®, a ae?aY®F® aY?a-
a . ˜a® ¤ Ya c®§¬®¦®aai ®aF ?§ ae?? c«®¦Yea ¬ ?a®a®c:
a ae?aYe© aY?aa ¬®¦Ya c ac®i ®cYaY¤i a®¤Ya¦ ai ?®¤«Y¦ e?Y
a ae?aY?i ?¤Ya?ae?? a®ae ¬ ?a®a®c. ?¤ ?®, Ya«? ¬ ?a®a ?a?
a ae?aY?? ®!a §aYa ¤?aY?a?ca ?aY?a®aeYaa®a , a® a ? i ¤?aY?-
a?c  ?aY?a®aeYaa®a®¬ a¦Y Y a a?®§ Yaai:

#define GETSTD #include

GETSTD /* ®e?!?  ?®¬??«iae?? */

GETSTD !a¤Ya a ae?aY c #include. ?¤ ?®,
?aY?a®aeYaa®a Y aa Ya a ¬ ®!a ! aec ai iaa c?®«Y ¤®?aaa?-
¬ai c ¤aaF?a aa«®c?ia ¤?aY?a?ca,   ?YaY¤ aa YY c a ?®¬ c?¤Y
?®¬??«ia®aa. ?®¬??«ia®a c®a?a?¬Ya#include ? ? Y-
¤®?aaa?¬e© cc®¤. ? ?a®a Y ¬®¦Ya !eai a ae?aY c® caY¬i
a®!aacY®F®a ae?aY?i. ˜®ia®¬a cea ¦Y?i a??  #define A A
Y¤®?aaa?¬e ca«Y¤aac?Y Y®?aY¤Y«Y®aa? aY§a«ia a .

„?aY?a?c  #undef

?®¦® ®a¬Y?ai ®?aY¤Y«Y?Y ¬ ?a®a  ?a? ?®¬®e? ¤?aY?a?ce
#undef:

#undef ?¤Ya?ae?? a®a_¬ ?a®a 

„  i aaa®?  a¤ «iYa«i!ai a YY ccY¤Yai ?®a«Y¤®c –
aY«i®aai «Y?aY¬ ?§ ?¤Ya?ae?? a®a  ¬ ?a®a ;®?aY¤Y«Y?Y ¬ ?-
a®a  aYaiYaai, ? ?¤Ya?ae?? a®a YF® aa ®c?aai Y®?aY¤Y«Y-

– 129 –
e¬.

? ?a®a ae?aY?i caaa? aaa®? #undef Y ce?®«iiaai.

‘®aa®i?Y ®?aY¤Y«Y®aa? ? Y®?aY¤Y«Y®aa? ic«iYaai
c ¦e¬ ac®©aac®¬ ?¤Ya?ae?? a®a , Y§ c?a?¬® ®a YF® ae ?a?cYa-
?®F® ®?aY¤Y«Y?i. “a«®ceY ¤?aY?a?ce ?aY?a®aeYaa®a  #ifdef ?
#ifndef, ?®a®aeY a«a¦ a ¤«i ?a®cYa?? a®F®, ic«iYaai «? ?¤Y-
a?ae?? a®a c aY?ae?© ¬®¬Ya ®?aY¤Y«Ye¬, ?«? Ya, ?aY¤aa c-
«iia a®!®© F?!??© ¬Ya ?§¬ a?a c«Y?i ¬®F?¬?  a?Y?a ¬? ?®¬-
??«iae??.

˜®a«Y a®F®, ? ? ?¤Ya?ae?? a®a ¬ ?a®a  aa «
Y®?aY¤Y«Ye¬, ® ¬®¦Ya !eai¤ «YY?YaY®?aY¤Y«Y¤?aY?a?c®©
#define, a ?a?®«i§®c ?Y¬ a®© ¦Y a ¬®© ?«? ¤aaF®© ?®a«Y¤®c –
aY«i®aa? «Y?aY¬.

#define BLOCK_SIZE 512

buff = BLOCK_SIZE*blks; /* a ae?aiYaai c: 512*blks */

#undef BLOCK_SIZE
/* ?a?®«i§®c ?Y BLOCK_SIZE aY?Yai Yc®§¬®¦® – ia®
“Y?§cYaae©” ?aY?a®aeYaa®aa ?¤Ya?ae?? a®a */

#define BLOCK_SIZE 128 /*?YaY®?aY¤Y«Y?Y a §¬Ya  !«®? */

buf = BLOCK_SIZE*blks; /* a ae?aiYaai c: 128*blks */

˜®?ea? ?YaY®?aY¤Y«Y?i a¦Y ®?aY¤Y«Y®F® ?¤Ya?ae?? a®a 
¬ ?a®a  ?a?cY¤Ya ? a®®!eY?i aa®ci ?aY¤a?aY¦¤Y?i, Ya«?
a®«i?® ®c®Y®?aY¤Y«Y?i Y ?®ca®aiYa aY?aeYY a a®c®aaii ¤®
?®a«Y¤Y© «Y?aY¬e. ˜aY¤?®ca?aY«ie© a?®a®! a !®ae a aY¬? ¦Y
®?aY¤Y«Y?i¬? c ¤aaF?a ae ©« a § F®«®c?  a«Y¤aie?©:

#ifndef BLOCK_SIZE
#define BLOCK_SIZE 512
#endif

…a«? ?¤Ya?ae?? a®a BLOCK_SIZE c aY?ae?© ¬®¬Ya ®?aY¤Y-
«Y, a® aaY¤ii aaa®?  Y ®!a ! aec Yaai ?aY?a®aeYaa®a®¬; c
?a®a?c®¬ ¦Y a«ac Y ce?®«iYaai ®?aY¤Y«Y?Y aaY¤Y© aaa®??.

?a¬Ya?¬,ca® ¤?aY?a?c  ?aY?a®aeYaa®a  Y ¤®«¦  § ? c?-
c aiai a®c?®© a § ?ia®© (;). ‹i!eY a?¬c®«e,  ©¤YeY ?aY?-
a®aeYaa®a®¬ c ?®a«Y¤®c aY«i®aa? «Y?aY¬, c?«ic i a®c?? a § –
?ia®©, ?®iciaai c ¬ ?a®a ae?aY?ia. ˜®a«Y¤®c aY«i®aai
«Y?aY¬ § ? c?c Yaai ?Yac®© caaaYcY®© ®c®© aaa®?®© !Y§
?aY¤eYaacaieYF® a?¬c®«  ®!a a®©  ?«®®© cYaae. ‹i! i ?®a-
«Y¤®c aY«i®aai ?a®!Y«iea a?¬c®«®c, c?«ic i ?®¬¬Ya a?? c
?®a«Y¤®c aY«i®aa? «Y?aY¬, § ¬YiYaai   ®¤? a?¬c®« ?a®!Y-
« .

˜a®Fa ¬¬?aae, ?a?ce?e?Y a !®a ai   i§e?Y  aaY¬!«Ya ,
¤®«¦e ?aY®¤®«Yai ¦Y« ?Y  ??a ai:

#define BLOCK_SIZE = 512 /* ?®cY¬a ?®a«Y¤®c aY«i®aai
«Y?aY¬ c?«ic Ya a?¬c®« = */

??ae?? -D ? -U

??aY¤Y«Y?Y ? ®a¬Y  ®?aY¤Y«Y?i ?¤Ya?ae?? a®a®c ce?®«-
iYaai a ?¦Y ?a? ?®¬®e? ®?ae?© ?®¬??«ia®a  ?®¬ ¤®© aaa®?? –
D ? -U (a¬. ?« ca 4,”?®¬??«ia®a ?®¬ ¤®© aaa®??” c ˜a?®-
c®¤aacY ?®«i§®c aY«i). ?¤Ya?ae?? a®ae ¬®Faa !eai ®?aY¤Y«Ye,
® Y ¬®Faa !eaiic® ®a¬YYe, ?a? ?®¬®e? ¬Yi ?aYFa?a®c –

– 130 –
®© aaY¤e a §a !®a?? Options \! Compiler \! Defines (a¬.
?« ca 1,”‘?a c®c?? ?® ?aYFa?a®c ®©aaY¤Ya §a !®a??”, a ?-
¦Y c ˜a?®c®¤aacY ?®«i§®c aY«i.)

?®¬ ¤ i aaa®? 

tcc -Ddebug=1; paradox=0; X -Umysym myprog.c

i?c?c «Ya  ?®¬YeY?i c ?a®Fa ¬¬a aaa®?:

#define debug 1
#define paradox 0
#define X
#undef mysym

?«icYceY a«®c  ? § e?eYeY a«®c 

„®?aaa?¬®, ® Y aY?®¬Y¤aYaai, ?a?®«i§®c ai ?«icYceY
a«®c  Turbo C++ c ? cYaacY ?¤Ya?ae?? a®a®c ¬ ?a®a®c:

#define int long /* ¤®?aaa?¬®, ® ¬®¦Ya ?a?cYaa? ? ? –
a aaa®ae?cYa??¬ ?®a«Y¤aac?i¬ */
#define INT long /* ¤®?aaa?¬® ?, cYa®ia®, ?®«Y§® */

‘«Y¤aie?Y ?aY¤®?aY¤Y«YeY F«®! «ieY ?¤Ya?ae?? a®ae Y
¬®Faa ?®ic«iaiai Y?®aaY¤aacY® a«Y¤®¬ §  ¤?aY?a?c ¬?
#define?«? #undef:

__STDC__ __DATE__
__FILE__ __TIME__
__LINE__

?a¬Ya?¬  «?c?Y c ia?a ?¬Y a cY¤ae?a ? ac®aa®cea ¤c®©-
ea a?¬c®«®c ?®¤cYa??c ?i.

? ?a®ae a ? a ¬Yaa ¬?

„«i ®?aY¤Y«Y?i ¬ ?a®a®c a ? a ¬Yaa ¬? ?a?®«i§aYaai
a«Y¤aie?© a?a ?a?a:

#define ?¤Ya?ae?? a®a_¬ ?a®a () ?®a-
«Y¤®c aY«i®aai-«Y?aY¬

‹i! i § ?ia i c ?aaF«ea a?®!? a caaa?  aFa¬Ya  a aa-
¬ aa?c Yaai ? ? c aai  aFa¬Ya ,   Y ? ?a §¤Y«?aY«i  aFa-
¬Ya®c.

?a¬Ya?¬,ca® ¬Y¦¤a ?¤Ya?ae?? a®a®¬-¬ ?a®a  ? «Yc®©
?aaF«®© a?®!?®© a??a? – aFa¬Ya®c Y ¬®¦Ya  a®¤?aiai? ®¤-
®F® ?a®!Y«i®F® a?¬c®« . ??ae?® «ie© a??a®?- aFa¬Ya®c
-ia® ?®a«Y¤®c aY«i®aai ?¤Ya?ae?? a®a®c, a §¤Y«Yea § ?iae-
¬?, ? ? c a??a?Y  aFa¬Ya®c aea?ae?? ‘. ? ¦¤e© a §¤Y«Ye©
§ ?ia®© ?¤Ya?ae?? a®a?Fa Ya a®«iae®a¬ «i®F®  aFa¬Ya , ?«?
¦Y ¬Ya??-§ ?®«?aY«i.

‚e§®c a ??a ¬ ?a®a®c ce?®«iYaai § ??aii

?¤Ya?ae?? a®a-¬ ?a®a ()

c ?®a«Y¤aieY¬ ?aa®¤®¬ ?®¤Y. ‘?a ?a?a ce§®c    «®F?-
cY a?a ?a?aa ce§®c  aea?ae?©; ¤Y©aac?aY«i®, ¬®F?Yaa –
¤ aaeY !?!«?®aYceY “aea?ae??” ‘ aY «?§®c e c c?¤Y
¬ ?a®a®c. ?¤ ?®, ?¬YYaai ai¤ c®§¬®¦ea a §«?c?©, ?®a®aeY
¬®Faa ?a?cYaa? ? a«ac ©e¬ ®e?!? ¬ (a¬. aaa.140 ®a?F? « ).

??ae?® «ie© a??a®?-ae ?a?cYa??a- aFa¬Ya®c ¤®«¦Y a®-

– 131 –
¤Ya¦ ai a® ¦Y c?a«® a §¤Y«iY¬ea § ?ia®© «Y?aY¬, ?§cYaaea
? ? ae ?a?cYa??Y  aFa¬Yae, ca® a®¤Ya¦?aai c a??a?Y-ae®a¬ «i-
ea- aFa¬Ya®c c aaa®?Y a #define: ? ¦¤®¬a ae®a¬ «i®¬a  aFa-
¬Yaa ¤®«¦Y a®®acYaaac®c ai ®¤? ae ?a?cYa??©  aFa¬Ya. …a«?
c?a«®  aFa¬Ya a c ¤caa a? § ea a??a?®c a §«?c®, a® ce¤ –
Yaai a®®!eY?Y ®! ®e?!?Y.

‚e§®c ¬ ?a®a  ?a?c®¤?a? ¤ca¬ a?? ¬§ ¬Ye. ‚®-?Yacea,
?¤Ya?ae?? a®a ¬ ?a®a  ? § ?«icYeY c ?aaF«eY a?®!??  aFa-
¬Yae § ¬Yiiaai ?®a«Y¤®c aY«i®aaii «Y?aY¬. ‡ aY¬ ae®a¬ «i-
eY  aFa¬Yae,  ©¤YeY c ¤ ®© ?®a«Y¤®c aY«i®aa? «Y?aY¬,
§ ¬Yiiaai a®®acYaaacaie?¬? ae ?a?cYa??¬?  aFa¬Ya ¬? ?§
a??a? -ae ?a?cYa??a- aFa¬Ya®c. ˜ ?a?¬Ya,

#define CUBE(x) ((x)*(x)*(x))

int n,y
n = CUBE(y):

¤ Ya c aY§a«ia aY a«Y¤aieai § ¬Ya:

n = ((y)*(y)*(y));

? «®F?ce¬ ®!a §®¬, ?®a«Y¤ii aaa®?  c

#define SUM ((a) + (b))

int i,j,sum;
sum = SUM(i,j);

?a? a ae?aY?? ¤ aa sum = ((i)+(j)). ˜a?c?  ? ¦aeYF®ai
?§!ea?  ?aaF«ea a?®!®? aa Ya ®cYc?¤®©, Ya«? a aa¬®aaYai
?a?¬Ya:

n = CUBE(y+1);

˜Y§ caaaYY© ? ae ?aaF«ea a?®!®? c ®?aY¤Y«Y?? a ae?-
aY?Y ¤ aa § ??ai: n=y+1*y+1*y+1, ca® ?a? «Y?a?cYa?®¬   «?-
§Y a c®:

n = y + (1*y) + (1*y) + 1; // Ya«? y Y a cY 0 ?«? -3,
a® c // ?a! c®§c®¤?aai (y+1) !

? ? ? c a«ac Y ?a®aaea ¬ ?a®®?aY¤Y«Y?©, ?a®?§c®¤?aai
?®ca®a®Y a? ?a®c ?Y aY?aa  ¤«i ®?aY¤Y«Y?i Y®!a®¤?¬®aa?
?®ca®aea ¬ ?a®a ae?aY?© ?®«ac?ce?aai ¬ ?a®-?¤Ya?ae?? a®-
a®c.

˜a? ?a?®«i§®c ?? ¬ ?a®a®c a® a??a? ¬? aFa¬Ya®c a«Y¤a-
Ya ®!a a?ai c?¬ ?Y   a«Y¤aie?Y ¬®¬Yae:

1. ‚«®¦YeY ?aaF«eY a?®!?? ? § ?iaeY:
‘??a®?-ae ?a?cYa??a- aFa¬Ya®c ¬®¦Ya a®¤Ya¦ ai c«®¦YeY
?aaF«eY a?®!??, ?a? aa«®c?? a®®acYaaac?i c?a« ®a?aec ie?a
c?a«a § ?aec ie?a a?®!®?; ?a®¬Y a®F®, § ?iaeY, § ?«icYeY
c® caaaY?Y ?aaF«eY a?®!?? ?«? ? cec??, Y a aa¬ aa?c iaai
c ? cYaacY a §¤Y«?aY«Y©  aFa¬Ya®c:

#define ERRMSG(x, str) showerr(“Error”,x,str)
#define SUM(x,y) ((x) + (y))

ERRMSG(2, “Press Enter, then Esc”);
// a ae?a?aai c: showerr(“Error”,2,”Press Enter, then
Esc”); */ return SUM(f(i,j), g(k.l));
// a ae?a?aai c: return ((f(i,j)) + (g(k,l))); */

2. ‘?«Y?c ?Y «Y?aY¬ ?a? ?®¬®e? ##: ¬®¦® ce?®«?ai

– 132 –
a?«Y?c ?Y (a«?i?Y) ¤caa «Y?aY¬, a §¤Y«?c ?a a?¬c®« ¬? ##
(? ?«ia ®?ae?® «ie¬? ?a®!Y«ie¬? a?¬c®« ¬? a ? ¦¤®© aa®a®-
e). ˜aY?a®aeYaa®a a¤ «iYa ?a®!Y«ieY a?¬c®«e ?##, ®!eY¤?i-
i¤cY ®a¤Y«ieY «Y?aY¬ec ®¤a ®cai«Y?aY¬a. ˜a® aaY¤aac® ¬®¦-
® ?a?®«i§®c ai ¤«i ?®aaaa?a®c ?i?¤Ya?ae?? a®a®c;
 ?a?¬Ya, ce?®«?c ®?aY¤Y«Y?Y

#define VAR(i,j) (i##j)

? § aY¬ ce§c c VAR(x,6), ¬®¦® ?®«ac?ai a ae?aY?Y
(x6). ˜a®a ¬Ya®¤ § ¬YiYa aa ae© (Y ®!Ya?Yc?c ie?© ¬®!?«i-
®aai ?®¤ ) ¬Ya®¤ ?a?®«i§®c ?i (i/**/j).

3. ˜aY®!a §®c ?Y ? aaa®? ¬ ?a? ?®¬®e? #: a?¬c®« #¬®¦®
?®¬Yaa?ai ?YaY¤ ae®a¬ «ie¬  aFa¬Ya®¬ ¬ ?a®a  a aY¬, ca®!e
?®a«Y ?®¤aa ®c??ae ?a?cYa??©  aFa¬Ya !e« ?aY®!a §®c  c
aaa®?a. ˜®ia®¬a, a acYa®¬ a«Y¤aieYF® ®?aY¤Y«Y?i ¬ ?a®a :

#define TRACE(flag) printf(#flag “=%d\n”,flag)

aea F¬Ya ?®¤ 

int highval = 1024;
TRACE(highval);

aa Ya a ce¬

int highval = 1024;
printf(“highval” “= %d\n”, highval);

ca® c ac®i ®cYaY¤i !a¤Ya a aa¬ aa?c aiai ? ?

int highval = 1024;
printf(“highval=%d\n”, highval);

4 ‘?¬c®« ®!a a®©  ?«®®© cYaae ¤«i ?a®¤®«¦Y?i aaa®-
??: ¤«? i ?®a«Y¤®c aY«i®aai «Y?aY¬ ¬®¦Ya
?a®¤«?aiaaa®?a?a? ?®¬®e? ®!a a®©  ?«®®© cYaae (\). ‘?¬-
c®«e ®!a a®©  ?«®®© cYaae ? ®c®© aaa®?? ®!  ceaY§ iaai,
? c aY§a«ia aY ®!a §aYaai ae ?a?cYa? i ?®a«Y¤®c aY«i®aai
«Y?aY¬, ?a?®«i§aY¬ i c a ae?aY??:

#define WARN “ae ?a?cYa?? ia® ®¤®\
aaa®c®Y a®®!eY?Y”

puts(WARN);
/*   i?a Y !a¤Ya: ae ?a?cYa?? ia® ®¤®aaa®c®Y a®®!eY-
?Y */

5. ˜®!®ceY iaeaeY?ae ? ?a®c?Y ®? a®aa?: aa®¦Yaai ¬Y¦¤a
ce§®c ¬? ¬ ?a®a®c ? aea?ae?i¬? ?®F¤  a?aec Ya a §«?c?i ¬Y¦¤a
?¬?. ˜a? ce§®cY ¬ ?a®a  ®aaaaaacaYa caaa®Ye© ?®aa®«i a?-
?®c ¤ ea, ?®ia®¬a a §«?c?Yc a?? a ¤ ea ae®a¬ «i®F® ?
ae ?a?cYa?®F®  aFa¬Ya®c ¬®¦Ya ce§c ai Y?aY¤a? §aY¬eY aY-
§a«ia ae, ?a?c?a ?®a®aea Y«YF?® aaa ®c?ai, ?a?cY¬ ®a®a?-
aY«i® a ?®© ®e?!?? Y !a¤Ya ce¤ ® ?? ??a ?aY¤a?aY¦¤Y?©.
˜a? ce§®c a ¬ ?a®a®c ¬®Faa a ?¦Y c®§??aai Y¦Y« aY«ieY
?®!®ceY iaeaeY?ae, ®a®!Y® ?®F¤ ae ?a?cYa??©  aFa¬Ya cec?a-
«iYaai !®«YY ®¤®F® a § . ‘a c?aY CUBE ? cube c a«Y¤aieY¬
?a?¬YaY:

int cube(int x) (*
return x*x*x;
*)
#define CUBE(x) ((x)*(x)*(x))

int b =0, a = 3;

– 133 –
b = cube(a++);
/* cube() ?YaY¤ Yaai ae ?a?cYa??©  aFa¬Ya = 3; ?®ia®¬a
b = 27, ? aY?Yai a = 4 */
a = 3;
b = CUBE(a++);
/* a ae?aiYaai c: ((a++)*(a++)*(a++)); ? aY?Yai a = 6 */

?a®F®c®Y § cY?Y b § c?a?a ®a a®F®, ca® ?®¬??«ia®a ¤Y-
« Ya a a ae?aYe¬ cea ¦Y?Y¬.

‚?«icY?Y ae ©«®c ¤?aY?a?c®© #include

„?aY?a?c  #include ?®¤?«ic Ya ? ?aa®¤®¬a ?®¤a § ¤ eY
c Y© ae ©«e, ?§cYaaeY ? ? c?«ic Y¬eY ae ©«e, ae ©«e § F®«®c-
?®c?«? § F®«®c??. ‘?a ?a?a ia®© ¤?aY?a?ce ?¬YYa aa? ae®a¬e:

#include ¬i_§ F®«®c? >
#include “?¬i_§ F®«®c? ”
#include ?¤Ya?ae?? a®a_¬ ?a®a 

‚ ¤ ®¬ a«ac Y aF«®ceY a?®!?? ic«iiaai ae ?a?cYa?? § –
??aec Y¬e¬?c aY?aaY ¤?aY?a?ce «Y?aY¬ ¬?,   Y ¬Ya a?¬c®« ¬?,
®!®§ c ie?¬?, ca® ?¬i_§ F®«®c?  ic«iYaai ®?ae?® «ie¬.

’aYa?© c a? a § ??a? ?aY¤?®« F Ya, ca® ? a?¬c®« , «?!® “?¬i_§ F®«®c? “.

˜Yace© ? ca®a®© c a? ae ?aY¤?®« F ia, ca® ?®?ea®? ¬ ?-
a®a ae?aY?© a¤Y« ® Y !a¤Ya; ¤aaF?¬? a«®c ¬?, ?¬i_§ F®«®c-
?  ??®F¤  Y a? ?aaYaai c ?®?a? a?¤Ya?ae?? a®a®c ¬ ?a®a®c.
?¬i_§ F®«®c?  ¤®«¦® !eai ¤®?aaa?¬e¬ ?¬YY¬ ae ©«  DOS a a a-
e?aY?Y¬ (aa ¤?ae?®® ae ©«e § F®«®c?  ?¬Yia a ae?aY?Y .h) ?
®?ae?® «ie¬?¬YY¬?aa? ¤®aaa?  ? Y¬aa a®®acYaaacaie?¬? a §-
¤Y«?aY«i¬?.

˜aY?a®aeYaa®a a¤ «iYa aaa®?a #include ? § ¬YiYa YY,  –
c? i a aY?aeY© aaa®?? ?aa®¤®F® ?®¤ , ?®«e¬ aY?aa®¬ ae ©« 
§ F®«®c? . ‘ ¬ ?aa®¤e© ?®¤ ®aa Yaai !Y§ ?§¬YY?©,®¤ ?®-
?®¬??«ia®a “c?¤?a” cYai a ae?aYe© aY?aa aeY«??®¬. ’ ??¬ ®!-
a §®¬, ?®¬YeY?Y c aY?aa ¤?aY?a?ce #include ¬®¦Ya ?®c«?iai
  ?®aY?aa ? ?a®¤®«¦?aY«i®aai ¦?§? «i!ea ?¤Ya?ae?? a®a®c
c® c?«ic Y¬ea ae ©« a.

…a«? ?®¬Yaa?ai c ?¬i_§ F®«®c?  ?®«®Y ?¬i ?aa? ¤®aaa? 
? ae ©«a, a® ?®?a? ae ©«  !a¤Ya ce?®«Ya®«i?®c a? § ®© a –
??¬ ®!a §®¬ ¤?aY?a®a??.

˜ §«?c?Y¬Y¦¤a ae®a¬ a ¬? ¬i_§ F®«®c? > ? “?¬i_§ F®«®c-
? ” § ?«ic Yaai c  «F®a?a¬Y ?®?a?  c?«ic Y¬®F® ae ©« , ?a?¬Y-
iY¬®¬ c ? ¦¤®¬ a«ac Y; ia?  «F®a?a¬e ®??a e c a«Y¤aie?a
¤caa a §¤Y« a.

˜®?a? ae ©«  § F®«®c?  ?a? ae®a¬ aY ¬i_§ F®«®c? >

‚ a? a ¬i_§ F®«®c? >§ ¤ Ya aa ¤ aae© c?«ic Y¬e©
ae ©«; ?®?a? ?®a«Y¤®c aY«i® ce?®«iYaai c® caYa c?«ic Y¬ea
¤?aY?a®a?ia c a®© ?®a«Y¤®c aY«i®aa?, c ?®a®a®© ®? ®?aY¤Y-
«Ye. …a«? ? c ®¤®© ?§ ia?a ¤?aY?a®a?© ?® a¬®«c ?i ?a?®-
¬e© ae ©« Y  ©¤Y, a® ce¤ Yaai a®®!eY?Y ®! ®e?!?Y.

˜®?a? ae ©«  § F®«®c?  ?a? ae®a¬ aY “?¬i_§ F®«®c? ”

‚ a? a “?¬i_§ F®«®c? ” § ¤ Ya c?«ic Y¬e© ae ©«, a®§¤ –

– 134 –
c Y¬e© ?®«i§®c aY«Y¬; a c «  ce?®«iYaai YF® ?®?a? c
aY?aeY© ¤?aY?a®a?? (®!ec® c a®© ¤?aY?a®a??, c ?®a®a®©  a®-
¤?aai ?aa®¤e© ?®¬??«?aaY¬e© ae ©«). …a«? a ¬ ae ©« Y  ©¤Y,
a® ?®?a? ?a®¤®«¦ Yaai c® caYa c?«ic Y¬ea ¤?aY?a®a?ia, ? ? c
a«ac Y ae®a¬ a  ¬i_§ F®«®c? >.

˜a?c®¤?¬eY ?¦Y ?a?¬Yae ?®iaiia ®??a eY a §«?c?i:

#include
/* § F®«®c®? ?§ aa ¤ aa®© c?«ic Y¬®© ¤?aY?a®a?? */

#define myinclude”c:\tc\include\mystuff.h”
/* ˜a?¬Yc ?Y: §¤Yai ¤®?aaa?¬e ®¤? aeY a?¬c®«e ®!a a®©
 ?«®®© cYaae; c ®?Ya a®aY ‘ ??eYaai:
“c:\\tc\\include\\mystuff.h” */

#include myinclude
/* ¬ ?a®a ae?aY?Y */

#include “myinclude.h”
/* ¬ ?a®a ae?aY?Y ®aaaaaacaYa */

˜®a«Y a ae?aY?i ca®a®© ®?Ya a®a#include § aa c?a ?aY?-
a®aeYaa®a ?a? ai a¦e© ae ©« c C:\TC\INCLUDE\mystuff.h, ?
?F¤Y !®«YY. ’aYa?© ?a?¬Ya #include§ aa c«iYa ?aY?a®aeYaa®a
ce?®«?ai ?®?a?myinclude.h a c «  c aY?aeY© ¤?aY?a®a??,  
§ aY¬ c® c?«ic Y¬ea ¤?aY?a®a?ia.

“a«®c i ?®¬??«iae?i

Turbo C++ ?®¤¤Ya¦?c Yaaa«®cai ?®¬??«iae?i ?aaY¬ § ¬Ye
a®®acYaaacaie?a aaa®? ?aa®¤®F® ?®¤  ?aaa®© aaa®?®©. ?F®a?-
aaY¬eY a ??¬ ®!a §®¬ aaa®?? ia® aY aaa®??, ca®  c? iaai a
a?¬c®«  # (§  ?a?«icY?Y¬ ¤?aY?a?c #if, #ifdef, #ifndef,
#else, #elif ? #endif),   a ?¦Y «i!eY aaa®??, ?®a®aeY c aY-
§a«ia aY ce?®«Y?i ¤?aY?a?c Y ¤®«¦e ?®¬??«?a®c aiai. ‚aY
¤?aY?a?ce aa«®c®© ?®¬??«iae?? ¤®«¦e § cYae aiai c a®¬ ¦Y
?aa®¤®¬ ?«? c?«ic Y¬®¬ ae ©«Y, F¤Y  a®¤?aai ?a  c «®.

„?aY?a?ce aa«®c®© ?®¬??«iae?? #if, #elif, #else ? #endif

„?aY?a?ce aa«®c®© ?®¬??«iae?? #if, #elif, #else ?
#endif a !®a ia   «®F?c® ®!e?®cYe¬ aa«®ce¬ ®?Ya a®a ¬
‘.?? ?a?®«i§aiaai a«Y¤aie?¬ ®!a §®¬:

#if cea ¦Y?Y-1-a?? -?®aa ae




#endif

…a«? cea ¦Y?Y-1-a?? -?®aa ae(¤«i ?®a®a®F®ce?®«iYaai
¬ ?a®a ae?aY?Y) ¤ Ya Ya«Yc®Y § cY?Y (?aa? ), a® aaa®??
?®¤  (c®§¬®¦®, ?aaaeY), ?aY¤aa c«Y®F®a §¤Y«®¬-1, ?®a®aeY
¬®Faa ?aY¤aa c«iai a®!®© ? ? ?®¬ ¤eY aaa®?? ?aY?a®aeYaa®a ,
a ? ? ®!eceY aaa®?? ?aa®¤®F® ?®¤ , ®!a ! aec iaai ?aY?a®-
aeYaa®a®¬ ? a®®acYaaacaie?¬ ®!a §®¬ ?YaY¤ iaai ?®¬??«ia®aa
Turbo C++. ‚ ?a®a?c®¬ a«ac Y, Ya«? cea ¦Y?Y-1-a?? -?®a-
a ae ¤ Ya a«Yc®Y § cY?Y («®¦i), a §¤Y«-1?F®a?aaYaai
(¬ ?a®a ae?aY?Y ? ?®¬??«iae?i ¤ ®F® a §¤Y«  Y ce?®«iia-
ai).

‚ a«ac Y “?aa? ” ?®a«Y ®!a !®a?? a §¤Y« -1 ?aY?a®aeYa-

– 135 –
a®a®¬ a?a c«Y?Y ?YaY¤ Yaai a®®acYaaacaieY©¤?aY?a?cY #endif
(?®a®a i § ? c?c Ya ¤ aiaa«®cai ?®aaaa?ae?i) ? ?a®¤®«¦ –
Yaai c a«Y¤aieY¬-a §¤Y«Y. ‚ a«ac Y “«®¦i” a?a c«Y?Y ?YaY¤ –
Yaai a«Y¤aieY© aaa®?Y #elif (Ya«? ®  ®?aY¤Y«Y  c ¤ ®©
?®aaaa?ae??),F¤Y cec?a«iYaaicea ¦Y?Y-2-a?? -?®aa ae. ‚
a«ac Y “?aa?e” ®!a ! aec Yaai a §¤Y«-2, ?®a«Y cYF® a?a c«Y-
?Y ?YaY¤ Yaai a®®acYaaacaieY© ¤?aY?a?cY #endif, ? a.¤.,¤®
aYa ?®a, ?®?  Y !a¤Ya ¤®aa?Faa  ?®a«Y¤ii ¤?aY?a?c  #else
?«? #endif. ??ae?® «i i ¤?aY?a?c  #else ?a?®«i§aYaai c ? –
cYaacY  «iaYa a?c®F® aa«®c?i c a®¬ a«ac Y, Ya«? caY ?aY¤e-
¤ae?Y ?a®cYa?? ¤ «? § cY?Y “«®¦i”. ˜®a«Y¤®c aY«i®aai aa-
«®cea ¤?aY?a?c § ? c?c Yaai ¤?aY?a?c®© #endif.

?!a !®a e© ?aY?a®aeYaa®a®¬ a §¤Y« ¬®¦Ya c ac®i ®cYaY¤i
a®¤Ya¦ ai c«®¦YeY   «i!ai F«a!?a aa«®ceY ?aY¤«®¦Y?i,
?a?cY¬ ? ¦¤®© ¤?aY?a?cY #if ¤®«¦  a®®acYaaac®c ai § ?aec i-
e i ¤?aY?a?c  #endif.

?a®F®ce¬ aY§a«ia a®¬ ceeY®??a ®F® aaeY a?i ic«iYaai
a®, ca® ¤«i ¤ «iY©eY© ®!a !®a?? ?YaY¤ Yaai a®«i?® ®¤? a §-
¤Y« (c®§¬®¦®, ?aaa®©). ??aeYeYa §¤Y«e a«a¦ a a®«i?® ¤«i
®aa«Y¦?c ?i c®§¬®¦ea c«®¦Yea aa«®cea ?®aaaa?ae?©, a ?
ca® ? ¦¤ i ¤?aY?a?c  #if ¤®«¦  ®!i§ aY«i® ?¬Yai a®®acYaa-
acaieai Y©§ cYae ieai ¤?aY?a?ca #endif.

˜a®cYaiY¬eY cea ¦Y?i-a?? -?®aa ae ?a? cec?a«Y??
¤®«¦e ¤ c ai aeY«®c?a«Yai ?®aa aa.

??Ya ae?i defined

??Ya ae?i defined ¤ Ya  «iaYa a?ce©, !®«YY F?!??© a?®-
a®! ?a®cYa?? a®F®, ®?aY¤Y«Ye «? ?®¬!? ae?? ?¤Ya?ae?? a®a®c,
?«? Ya. „  i ®?Ya ae?i ¤®?aaa?¬  a®«i?® c cea ¦Y?ia #if ?
#elif.

‚ea ¦Y?Y defined(?¤Ya?ae?? a®a)?«? defined ?¤Ya?ae?? –
a®a (a?®!?? Y®!i§ aY«ie) ¤ Ya 1 (?aa? ), Ya«? ¤ ®Y a?¬-
c®«?cYa?®Y ?¬i !e«® a YY ®?aY¤Y«Y® (?a? ?®¬®e? ¤?aY?a?ce #
defined) ?ia® ®?aY¤Y«Y?Y Y !e«® c?®a«Y¤aac?? ®a¬YY® (?a?
?®¬®e? #undef); c ?a®a?c®¬ a«ac Y ®® ¤ Ya 0 (?aa? ). ˜®i-
a®¬a ¤?aY?a?c 

#if defined(mysym)

ia® a® ¦Y, ca®

#ifdef mysym

˜aY?¬aeYaac® § ?«ic Yaai c a®¬, ca® ¬®¦® ?a?®«i§®c ai
defined ae??«?cYa?? c a«®¦®¬ cea ¦Y??, a«Y¤aieY¬ §  ¤?aY?-
a?c®© #if,  ?a?¬Ya

#if defined(mysym) && !defined(yoursym)

“a«®ceY ¤?aY?a?ce #ifdef ? #ifndef

“a«®ceY ¤?aY?a?ce #ifdef ? #ifndef ?®§c®«iia ?a®cY-
a?ai, ®?aY¤Y«Y «?c aY?ae?© ¬®¬Ya ¤ e© ?¤Ya?ae?? a®a, a®
Yaai !e«  «? ®!a !®a   ?aY¤e¤ae i¤?aY?a?c  #define ¤«i ¤ –
®F® ?¤Ya?ae?? a®a  ? ?a®¤®«¦ Ya «? ®  ¤Y©aac®c ai c aY?a-
e?© ¬®¬Ya.

‘aa®? 

#ifdef ?¤Ya?ae?? a®a

?¬YYa a®c® a ?®© ¦Y iaeaeY?a, ca® ?

– 136 –

#if 1

Ya«? ?¤Ya?ae?? a®a c aY?ae?© ¬®¬Ya ®?aY¤Y«Y, ? a ?®©
¦Y iaeaeY?a, ca® ?

#if 0

Ya«? ?¤Ya?ae?? a®a c aY?ae?© ¬®¬Ya Y ®?aY¤Y«Y.

#ifndef,  ?a®a?c, ¤ Ya § cY?Y “?aa? “, Ya«? ?¤Ya?-
ae?? a®a “Y ®?aY¤Y«Y”, ?®ia®¬a aaa®? 

#ifndef ?¤Ya?ae?? a®a

?¬YYa a®c® a ?®© ¦Y iaeaeY?a, ca® ?

#if 0

Ya«? ?¤Ya?ae?? a®a c aY?ae?© ¬®¬Ya ®?aY¤Y«Y, ? a ?®©
¦Y iaeaeY?a, ca® ?

#if 1

Ya«? ?¤Ya?ae?? a®a c aY?ae?© ¬®¬Ya Y ®?aY¤Y«Y.

‘?a ?a?a a«Y¤aYa a?a ?a?aa ¤?aY?a?c #if, #elif, #else
? #endif, ®??a ®¬a c ?aY¤e¤aeY¬ a §¤Y«Y.

?¤Ya?ae?? a®a, ®?aY¤Y«Ye© ? ? ?¬Yie?© ?aaa®Y (NULL)
§ cY?Y, ac?a Yaai ®?aY¤Y«Ye¬.

„?aY?a?c  a?a c«Y?i a¬Ya ae?Y© aaa®? #line

„?aY?a?c  #linea«a¦?a¤«i § ¤ ?i?a®Fa ¬¬Y a?®a®!  a¬Y-
a ae?? aaa®?, ?a?®«i§aY¬®© ?a? a®§¤ ?? ?YaY?aYaaea aae«®? ?
?a? ce¤ cY a®®!eY?© ®! ®e?!? a. …a«? ?a®Fa ¬¬ a®aa®?a ?§
a §¤Y«®c, c§iaea ?§ ¤aaF?a ?a®Fa ¬¬ea ae ©«®c, c aa® !ec Ya
?®«Y§® ®!®§ c?ai a ??Ya §¤Y«e ®¬Ya ¬? aaa®?, c§iae¬? ?§
a®®acYaaacaieYF® ?aa®¤®F® aY?aa ,   Y ®!ece¬? ?®a«Y¤®c –
aY«ie¬? ®¬Ya ¬? aaa®? a®aa c®© ?a®Fa ¬¬e. ‘?a ?a?a ¤?-
aY?a?ce a«Y¤aie?©:

#line aeY«®c?a«Y i-?®aa a 

? ®!®§ c Ya, ca® a«Y¤aie i ?aa®¤ i aaa®?  !YaYaai  –
c? i a ®¬Ya  aaa®??, § ¤ ®F® aeY«®c?a«Y®©-?®aa a®©,
?§ ae ©« , § ¤ ®F® “?¬YY¬-ae ©« “. ˜®a«Y a®F®, ? ? ?¬i-ae ©-
«  !e«® ®¤ ¦¤e § ¤ ®, caY ?®a«Y¤aie?Y ?®¬ ¤e #line, ®a®-
aie?Yai ? ¤ ®¬a ae ©«a, ¬®¦Ya ®?aaa?ai ice©  aFa¬Ya
?¬i-ae ©« . ˜ ?a?¬Ya,

/* TEMP.C: ?a?¬Ya ¤?aY?a?ce #line */

#include

#line 4 “junk.c”

– 137 –

void main()
(*
printf(” in line %d of %s”,__LINE__,__FILE__);
#line 12 “temp.c”
printf(“\n”);
printf(” in line %d of %s”,__LINE__,__FILE__);
#line 8
printf(“\n”);
printf(” in line %d of %s”,__LINE__,__FILE__);
*)

‚?«icY?Y stdio.h ®§ c Ya, ca®   cea®¤Y ?aY?a®aeYaa®a 
!a¤Ya Yca® !®«ieYY.

…a«? § ?aaa?ai TEMP.C cYaY§ CPP (cpp temp), a®   cea®-
¤Y ?®«ac?aai ae ©« TEMP.I, ?®a®ae© ceF«i¤?a a ?:

temp.c 1:
c:\borland\tc\cpp\include\stdio.h 1:
c:\borland\tc\cpp\include\stdio.h 2:
c:\borland\tc\cpp\include\stdio.h 3:

c:\borland\tc\cpp\include\stdio.h 212:
c:\borland\tc\cpp\include\stdio.h 213:
temp.c 2:
temp.c 3:
junk.c 4: void main()
junk.c 5: (*
junk.c 6: printf(” in line %d of %s”,6,”junk.c”);
junk.c 7:
temp.c 12: printf(“\n”);
temp.c 13: printf(” in line %d of %s”,13,”temp.c”);
temp.c 14:
temp.c 8: printf(“\n”);
temp.c 9: printf(” in line %d of %s”,9,”temp.c”);
temp.c 10: *)
temp.c 11:

…a«? ce§ aY¬ ?®¬??«?aaYaY TEMP.C, a® ?®«ac?aai a«Y¤ai-
e?© cea®¤:

in line 6 of junk.c
in line 13 of temp.c
in line 9 of temp.c

? ?a®ae a ae?aiiaai c  aFa¬Ya a #line, ? ? c ¤?aY?a?-
c a #include.

˜aY¦¤Y caYF®  § cY?Y ¤?aY?a?ce #line § ?«ic Yaai c
?a?®«i§®c ?? YY c aa?«?a a, ?¬Yie?a   cea®¤Y ?®¤e ‘,   Y
c ?®¤ a, a®§¤ c Y¬ea cY«®cY?®¬ “caacai”.

„?aY?a?c  #error

„?aY?a?c  #error ?¬YYa a«Y¤aie?© a?a ?a?a:

#error a®®!eY?Y-®!-®e?!?Y

„?aY?a?c  FYYa?aaYa a®®!eY?Y:

Error: ?¬i-ae ©«  ®¬Ya-aaa®?? : Error directive: a®®!-

– 138 –
eY?Y

„  i ¤?aY?a?c  ®!ec® caaa ?c Yaai c aa«®ceY ?®a-
aaa?ae?? ?aY?a®aeYaa®a , ?®a®aeY ®aa«Y¦?c ia ? ??Y-«?!® Y¦Y-
« aY«ieY aa«®c?i caY¬Y? ?®¬??«iae??.?!ec®ia® aa«®c?Y
“«®¦®”. …a«? aa«®c?Y “?aa?®”, a® ?®¬??«ia®a ¬®¦Ya ce¤ ai
a®®!eY?Y ®! ®e?!?Y ? ?aY?a a?aia !®aa. „«i ia®F® ¤?aY?a?c #
error ?®¬Ye Yaai c aa«®cai cYaci, ?®a®a i ¤ Ya ¤«i ?a?®¬®F®
Y¦Y« aY«i®F® aa«®c?i aY§a«ia a “?aa? “.

˜ ?a?¬Ya, ce ®?aY¤Y«?«? #define MYVAL, ?a??¬ ieai § –
cY?i 0 ?«? 1. ‡ aY¬ ¬®¦®c?«ic?ai c ?aa®¤e© ?®¤ aa«®cai
¤?aY?a?ca, ?®a®a i !a¤Ya ?a®cYaiai MYVAL   ?aY¤¬Ya YcYa®-
F® § cY?i:

#if (MYVAL != 0 && MYVAL != 1)
#error MYVAL must be defined to either 0 or 1
#endif
„?aY?a?c  #pragma

„?aY?a?c  #pragma ?®§c®«iYa ?a?®«i§®c ai a?Yae?ae?ceY ¤«i
?®?aYaea aY «?§ ae?© ¤?aY?a?ce c ae®a¬Y

#pragma ?¬i-¤?aY?a?ce

˜a? ?®¬®e? #pragma Turbo C++?®§c®«iYa ®?aY¤Y«?ai «i!eY
¦Y« Y¬eY ¤?aY?a?ce, Y ®!a e iai ¤«iia®F®? ¤aaF?¬, ?®¤¤Ya¦?-
c ie?¬ ?a ?®¬??«ia®a ¬. …a«? ?®¬??«ia®a Y ?®¤¤Ya¦?c Ya ¤ –
®Y ?¬i-¤?aY?a?ce, a® ® ?a®aa® ?F®a?aaYa¤?aY?a?ca #pragma,
Y ce¤ c i?a? ia®¬ ?? ??a a®®!eY?© ®! ®e?!? a?«? ?aY¤a?-
aY¦¤Y?©.

Turbo C++ ?®¤¤Ya¦?c Ya a«Y¤aie?Y ¤?aY?a?ce #pragma:

– #pragma argsused

– #pragma exit

– #pragma inline

– #pragma option

– #pragma saveregs

– #pragma startup

– #pragma warn

„?aY?a?c  #pragma argsused

„?aY?a?c  #pragma argsused ¤®?aaa?¬  a®«i?® ¬Y¦¤a ®?aY-
¤Y«Y?i¬? aea?ae?© ? ¤Y©aacaYa a®«i?®   a«Y¤aieai aea?ae?i.
?  ®a¬YiYa a®®!eY?Y aa®ci ?aY¤a?aY¦¤Y?i:

“Parameter name is never used in function ?¬i-aea?ae??”
(“?¬i ? a ¬Yaa  ?F¤Y Y ?a?®«i§aYaai c aea?ae?? ?¬i-aea?-
ae??”)

„?aY?a?ce #pragma exit ? #pagma startup

„ eY ¤cY ¤?aY?a?ce ?®§c®«iia ?a®Fa ¬¬Y § ¤ ai aea?ae?i
(aea?ae??), ?®a®aeY ¤®«¦e ce§ec aiai «?!® ?a?§ Faa§?Y ?a®F-
a ¬¬e (?YaY¤ ce§®c ¬ main), «?!® ?a? cea®¤Y ?§ ?a®Fa ¬¬e
(Y?®aaY¤aacY® ?YaY¤ cea®¤®¬ ?§ ?a®Fa ¬¬e cYaY§ _exit).

‘?a ?a?a ia?a ¤?aY?a?c a«Y¤aie?©:

– 139 –

#pragma exit ?¬i-aea?ae??
#pragma startup ?¬i-aea?ae??

‡ ¤ ®Y ?¬i-aea?ae?? ¤®«¦® ®a®a?aiai ? a YY®!eic«Y-
®© aea?ae??, Y ?a??¬ ieY©  aFa¬Ya®c ? c®§ca e ieY© § cY-
?Y void; ¤aaF?¬? a«®c ¬?, ia  aea?ae?i ¤®«¦  !eai ®!eic«Y 
? ?:

void func(void);

??ae?® «ie© ? a ¬Yaa ?a?®a?aYa ¤®«¦Y ic«iaiai aeY«e¬
c?a«®¬ c ¤? ? §®Y ®a 64 ¤® 255. ‘a ae?¬ ?a?®a?aYa®¬ ic«iYa-
ai 0. (˜a?®a?aYae ®a 0 ¤® 63 ?a?®«i§aiaai !?!«?®aY? ¬? ‘ ?
Y ¤®«¦e ?a?®«i§®c aiai ?®«i§®c aY«Y¬). ”a?ae?? a® aa ae?¬?
?a?®a?aYa ¬? ce§ec iaai ?Yace¬? ?a? § Faa§?Y ?a®Fa ¬¬e ?
?®a«Y¤?¬? ?a? cea®¤Y ?§ YY. …a«? ?a?®a?aYa Y § ¤ , a® ?®
a¬®«c ?i ® a cY 100. ˜ ?a?¬Ya,

#include

void startFunc(void)
(*
printf(“Startup function.\n”);
*)

#pragma startup startFunc 64
/* ?a?®a?aYa 64 –> ce§ec Yaai ?a? § Faa§?Y ?Yac®© */

void exitFunc(void)
(*
printf(“Wrapping up execution.\n”);
*)

#pragma exit exitFunc
/* ?a?®a?aYa ?® a¬®«c ?i a cY 100 */

void main(void)
(*
printf(This is main.\n”);
*)

?a¬Ya?¬, ca® ?¬i aea?ae??, ?a?®«i§aY¬®© c #pragma
startup?«? exit, ¤®«¦® !eai ®?aY¤Y«Y® (?«? ®!eic«Y®) ¤®
a®F®,? ? caaaYa?aai a®®acYaaacaie i aaa®?  a ¤?aY?a?c®©
#pragma.

„?aY?a?c  #pragma inline

„  i ¤?aY?a?c i?c?c «Ya  ®?ae?? ?®¬??«ia®a  ?®¬ ¤-
®© aaa®?? -B ?«? a®®acYaaacaieY© ®?ae?? ?aYFa?a®c ®© aaY-
¤e Turbo. ?  a®®!e Ya?®¬??«ia®aa, ca® ?a®Fa ¬¬  a®¤Ya¦?a
caaa®YeY  aaY¬!«YaeY ?®¤e (a¬. F« ca 6, “?aYaaeY©a a i§e-
?®¬  aaY¬!«Ya “). ‘?a ?a?a YY a«Y¤aie?©:

#pragma inline

˜aa ¤?aY?a?ca «aceY caYF® ?®¬Ye ai ccYaaa ae ©« , ?®a-
?®«i?a, caaaYa?c ¤?aY?a?ca #pragma inline, ?®¬??«ia®a ?YaY-
§ ?aa? Ya aY!i a ®?ae?Y© -B. ” ?a?cYa?? ¬®¦® ®?aaa?ai ?
®?ae?i -‚, ? ¤?aY?a?ca #pragma inline, ? ?®¬??«ia®a aY¬ Y
¬YYY ce?®«?a?YaY§ ?aa?, ?®F¤  caaaYa?a ®?Ya a®ae asm. ˜ §-
 cY?Y ®?ae?? ? ¤?aY?a?ce a®aa®?a c a®¬, ca®!e ai?®®¬?ai
caY¬i ?®¬??«iae??.

„?aY?a?c  #pragma option

– 140 –
„?aY?a?c  #pragma option ?a?®«i§aYaai¤«i c?«icY?i ®?-
ae?© ?®¬??«ia®a  ?®¬ ¤®© aaa®?? c ?®¤ c eY© ?a®Fa ¬¬e. ‘?-
a ?a?a ia®© ¤?aY?a?ce a«Y¤aie?©:

#pragma option [®?ae??…]

??ae?? ¬®Faa ic«iaiai «i!e¬? ®?ae?i¬? ?®¬ ¤®©aaa®??(§ 
?a?«icY?Y¬ ?YaYc?a«Yea c a«Y¤aieY¬ ? a Fa aeY). ‚ ®¤®©
¤?aY?a?cY ¬®¦Ya  a®¤?aiai «i!®Y c?a«® ®?ae?©.

˜?¦Y ?a?c®¤iaai®?ae??,?®a®aeY Y ¬®Faa  a®¤?aiai c ¤?-
aY?a?cY pragma option:

-B (?®¬??«iae?i a ?a?®«i§®c ?Y¬  aaY¬!«Yaea ?®¤®c)

-c (?®¬??«iae?i !Y§ ?®¬?®®c??)

-dxxx (®?aY¤Y«Y?Y ¬ ?a®a )

-Dxxx = ccc (®?aY¤Y«Y?Y ¬ ?a®a  a aY?aa®¬)

-efff (?¬i .EXE-ae ©«  fff)

-lfff (?¬i c?«ic Y¬®© ¤?aY?a®a??)

-Lfff (?¬i ¤?aY?a®a?? a !?!«?®aY?®©)

-lxset (®?ae?i ?®¬?®®ce??  x)

-M (a®§¤ ?Y ?a? ?®¬?®®c?Y .MAP-ae ©« )

-o ®cYa«Y?

-Q EMS

-S (a®§¤ ?Y   cea®¤Y .ASM-ae ©«  ? ®aa ®c? )

-Uxxx (®a¬Y  ®?aY¤Y«Y?i ¬ ?a®a )

-V (virtual)

-Y (®cYa«Y?)

‘aeYaacaYa ¤c  a®aa®i?i ?®¬??«ia®a . ‚ ?Yac®¬ a®aa®i-
?? c ¤?aY?a?ca pragma option ¬®¦® c?«ic?ai !®«ieYY ?®«?-
cYaac® ®?ae?©, Y¦Y«? c® ca®a®¬. ˜Yac®Y a®aa®i?Y ?®¬??«ia®a 
 §ec Yaai a®aa®i?Y¬ «Y?a?cYa?®F®   «?§ ,  ca®a®Y – a®aa®-
i?Y¬ ?®¤?a®c ?i.

?a?®«i§®c ?Y ?¬Y? ¬ ?a®a ,  c? ieYF®ai ¤ca¬i a?¬c®-
« ¬? ?®¤cYa??c ?i (?®a®a®Y ¬®¦Ya ic«iaiai ?¬YY¬ caaa®Y®-
F® ¬ ?a®a ), c ¤?aY?a?c a #if, #ifdef, #ifndef ?«?
#elif?§¬YiYa a®aa®i?Y ?®¬??«ia®a    a®aa®i?Y ?®¤?a®c –
?i.

˜®ic«Y?Y ?Yac®© aY «i®© «Y?aY¬e (?Yac®F® ®!eic«Y?i
‘) a ?¦Y ?§¬YiYa a®aa®i?Y ?®¬??«ia®a    ?®¤?a®c ?Y.

„aaF?¬? a«®c ¬?, ¬®¦®?a?®«i§®c ai ¤?aY?a?ce #pragma, #
include, #define ? Y?®a®aeY a §®c?¤®aa? #if c® caY¬i a®a-
a®i?i «Y?a?cYa?®F®   «?§ ?®¬??«ia®a . ‚® caY¬i ia®© ae §e
ce ?¬YYaY c®§¬®¦®aai ?a? ?®¬®e? #pragma option ?§¬Yiai ®?-
ae?? ?®¬ ¤®© aaa®??.

‚ c?a«®®?ae?©,?®a®aeY ¬®Faa !eai § ¤ e c #pragma option
a®«i?® c a®aa®i?? «Y?a?cYa?®F®   «?§  ?®¬??«ia®a , ca®¤ia:

– 141 –
-Efff (aaa®?  a  aaY¬!«Yae¬ ?¬YY¬)

-f* («i! i ®?ae?i ?« c ieY© a®c??, ?a®¬Y -ff)

-l# (§ c e?Y a?¬c®«e ?¤Ya?ae?? a®a )

-m* («i! i ®?ae?i ¬®¤Y«? ? ¬ia?)

-nddd (cea®¤ i ¤?aY?a®a?i)

-offf (?¬i cea®¤®F® ae ©«  fff)

-u (?a?®«i§®c ?Y a?¬c®«®c ?®¤cYa??c ?i c ?¬Y a cdecl)

-z* (®?ae?i § ¤ ?i «i!®F® ?¬Y? aYF¬Ya )

˜a®c?Y ®?ae?? ¬®Faa ?§¬Yiaiai F¤Y aF®¤®. ‘«Y¤aie?Y ®?-
ae?? ®? §ec ia c®§¤Y©aac?Y   ?®¬??«ia®a a®«i?® Ya«? ®? ?§-
¬Yiiaai ¬Y¦¤a ®!eic«Y?i¬? aea?ae?© ?«? ®!eY?a®c:

-1 “?a c«Y?Y  !®a®¬ ?®¬ ¤

-2 “?a c«Y?Y  !®a®¬ ?®¬ ¤

-a “?a c«Y?Y cea c?c ?Y¬. (?a¬Ya?¬, ca® cea c?c ?Y
?®¬?®Ya®c aaaa?aaaeaaa  c«?c Yaai c a®c?Y ®?aY¤Y«Y?i
aaaa?aaae,   Y ¤ «YY, ?a? ?a?®«i§®c ?? ia®© aaaa?aaae ®!e-
Y?a ¬?.)

-ff “?a c«Y?Y !eaaae¬? ®?Ya ae?i¬? a ?« c ieY© a®c?®©

-G ?YYa ae?i ?®¤ , ®?a?¬?§?a®c ®F® ?® !eaaa®¤Y©aac?i

-k ‘a ¤ aa®Y a?a c«Y?Y aaY?®ce¬ aeaY©¬®¬

-N “?a c«Y?Y ?®aa®«Y¬ aaY? 

-O “?a c«Y?Y ®?a?¬?§ ae?Y©

-P “aa ®c?  ?® a¬®«c ?i a®F« eY?© ® aci§ia Pascal

-r ? -rd “?a c«Y?Y aYF?aaa®ce¬? ?YaY¬Ye¬?

-v “?a c«Y?Y ®a« ¤?®© ?® ¤Y©aac?i¬

-y “?a c«Y?Y aaa®c®© ?ae®a¬ ae?Y©

‘«Y¤aie?Y ®?ae??¬®Faa ?§¬Yiaiai c «i!®© ¬®¬Ya ? ®? §e-
c ia Y¬Y¤«Y®Y c®§¤Y©aac?Y   ?®¬??«ia®a:

-A “?a c«Y?Y ?«icYce¬? a«®c ¬?

-C “?a c«Y?Y c«®¦Y®aaii ?®¬¬Ya a?Yc

-d ‘«?i?Y ?®ca®aiie?aai aaa®?

-gn ?aa ®c?  ?®¬??«iae?? ?®a«Y n ?aY¤a?aY¦¤Y?©

-jn ?aa ®c?  ?®¬??«iae?? ?®a«Y n ®e?!®?

-K ’?? char aaa  c«?c Yaai ? ? unsigned

-wxxx ˜aY¤a?aY¦¤Y?Y (a® ¦Y a ¬®Y, ca® ? #pragma warn)

‹i!eY ?§ ?¬Yie?a ¤c  ?YaY?«ic ie?aai a®aa®i?i ®?ae?©
(a ??Y ? ? -a ?«? -K) ¬®Faa !eai ?YaYcY¤Ye c® c?«icY®Y

– 142 –
?«? ce?«icY®Y a®aa®i?Y, ? ? ia® ¤Y« Yaai c ?®¬ ¤®©
aaa®?Y. „®?®«?aY«i® ?¬YYaai c®§¬®¦®aai § ¤ c ai ?a a a®c-
?®© (.), ca® aaa  c«?c Ya a ??Y ®?ae?? c a®aa®i?Y, § ¤ c Y-
¬®Y ?®¬ ¤®© aaa®?®©.

„?aY?a?c  #pragma saveregs

„?aY?a?c  #pragma saveregs F a a?aaYa, ca® ?a? ca®¤Y c
aea?ae?i huge§ cY?i caYaaYF?aaa®c ®aa aaai !Y§ ?§¬YY?©.
„  i ¤?aY?a?c  ?®F¤  !ec Ya a¦  ¤«i ?aYaaeY©a  a ?®¤ ¬?
  i§e?Y aaY¬!«Ya . „?aY?a?c ¤®«¦  a®¤?aiai Y?®aaY¤aacY-
® ?YaY¤ ®?aY¤Y«Y?Y¬ aea?ae??. …Y ¤Y©aac?Y a a?a®aaa iYaai
a®«i?®   ¤ ai aea?ae?i.

„?aY?a?c  #pragma warn

„  i ¤?aY?a?c  ?®§c®«iYa ?YaY®?aY¤Y«iai ?®?aYaeY
®?ae?? ?®¬ ¤®© aaa®?? -wxxx (?«? a?a c«iai ®?ae?Y© Display
Warnings c ¤? «®F®c®¬ ?®«Y Options \! Compiler \! Messages).

˜ ?a?¬Ya, Ya«? c c eY¬ ?aa®¤®¬ ?®¤Y ?¬Yiaai ¤?aY?a?ce

#pragma warn +xxx
#pragma warn -yyy
#pragma warn .zzz

a® ce¤ c  ?aY¤a?aY¦¤Y?i xxx !a¤Ya a §aYeY  (¤ ¦Y Ya«?
c ¬Yi Options \! Compiler \! Messages ®  !e«  ?YaYcY¤Y  c
a®aa®i?Y off), ?aY¤a?aY¦¤Y?i yyy § ?aYeY ,   aa aaa ce¤ –
c? a®®!eY?i zzz !a¤Ya c®aaa ®c«Y c a® a®aa®i?Y, ?®a®a®Y
!e«® ? ¬®¬Yaa  c «  ?®¬??«iae?? ae ©« .

˜®«e© a??a®? aaYa!a?cYea a®?a eY?© ? a®®!eY?©, ?
?®a®ae¬ ®? ®a®aiaai, a¬. c ?« cY 4, “?®¬??«ia®a ?®¬ ¤®©
aaa®??” c ˜a?®c®¤aacY ?®«i§®c aY«i.

˜aY¤®?aY¤Y«YeY ¬ ?a®ae

Turbo C++ ?¬YYa a«Y¤aie?Y ?aY¤®?aY¤Y«YeY F«®! «ieY
?¤Ya?ae?? a®ae. ‡  ?a?«icY?Y¬ __cplusplus, ? ¦¤®Y ?§ ?a ?
 c? Yaai, ? § ? c?c Yaai¤ca¬i a?¬c®« ¬? ?®¤cYa??c ?i
(__). ˜a? ¬ ?a®ae a ?¦Y  §ec ia !a?c «ie¬? ?®aa a ¬?.

__CDECL__

„ e© ¬ ?a®a a?Yae?ae?cY ¤«i Turbo C++. ? a®®!e Ya ®
a®¬, ca® ae« F -p Y ?a?®«i§®c «ai (¬Yi Cflling
Conventions…C) : ® aaa  c«?c Yaai a ce¬ aeY«®c?a«Y®©
?®aa aY 1, Ya«? -pY ?a?®«i§®c «ai; c ?a®a?c®¬ a«ac Y ®
Y®?aY¤Y«Y.

‘«Y¤aie?Y a?¬c®«?cYa??Y ?¬Y  ®?aY¤Y«iiaai a®F« a®
ce!a ®© c® caY¬i ?®¬??«iae?? ¬®¤Y«? ? ¬ia?:

__COMPACT__ __MEDIUM__
__HUGE__ __SMALL__
__LARGE__ __TINY__

„«i ?®?aYa®© ?®¬??«iae?? ®?aY¤Y«Ye¬ ic«iYaai a®«i?®
®¤? ?§ ia?a ¬ ?a®a®c; ?a®c?Y, ?® ®?aY¤Y«Y?i, Y ®?aY¤Y«Y-
e. ˜ ?a?¬Ya, Ya«? ?a? ?®¬??«iae??ce!a   ¬®¤Y«i ? ¬ia?
small, a® ¬ ?a®a __SMALL__ ®?aY¤Y«Y,   ®aa «ieY Y®?aY¤Y-
«Ye, ?®ia®¬a ¤?aY?a?c 

#if defined(__SMALL__)

¤ aa § cY?Y “?aa? “,  

– 143 –

#if defined(__HUGE__)

«?!® «i! i ¤aaF i ?§ ®aa ce?aai) ¤ aa § cY?Y “«®¦i”.
” ?a?cYa?®Y § cY?Y «i!®F® ?§ ia?a ¬ ?a®a®c, ?®F¤  ® ®?aY-
¤Y«Y, a c® 1.

__cplusplus

„ e© ¬ ?a®a a?Yae?ae?cY ¤«i Turbo C++. ? ?®§c®«iYa
 ??a ai ¬®¤a«i, ?®a®ae© c Y?®a®aea a«ac ia !a¤Ya ?®¬??«?-
a®c aiai c ‘,   c Y?®a®aea – c ‘++.?a?®«i§®c ?Y aa«®cea
¤?aY?a?c ?®¬??«iae?? ?®§c®«iYa a?a c«iai, ? ??Y c aa? ?a®F-
a ¬¬e ¤«i ‘ ? ‘++ !a¤aa c?«icYe c ?®¬??«iae?i.

__DATE__

„ e© ¬ ?a®a ¤ Ya ¤ aa  c «  ®!a !®a?? ?aY?a®aeYaa®a®¬
¤ ®F® ?aa®¤®F® ae ©«  (c c?¤Y aaa®?®c®F® «?aYa « ).

? ¦¤®Y c?«icY?Y __DATE__ c ¤ e© ae ©« ¤ Ya ®¤® ? a®
¦Y § cY?Y, Y§ c?a?¬® ®a a®F®, a?®«i?® caY¬Y? ?a®¤®«¦ Ya-
ai ®!a !®a?  ae ©«  ?aY?a®aeYaa®a®¬. „ a  ?¬YYa ae®a¬a
mmmddyyyy,F¤Y mmm ia® ¬Yaiae (Jan, Feb ? a.¤.), dd a c® c?a-
«a ¬Yaiae  (®a 1 ¤® 31, ?a?cY¬ Ya«? ia® c?a«® ¬YieY 10, a®
?Yace© a?¬c®« d a cY ?a®!Y«a),   yyyy ia® F®¤ (1990, 1991 ?
a.¤.)

__FILE__

„ e©¬ ?a®a ¤ Ya ?¬i aY?aeYF® ®!a ! aec Y¬®F®
?aY?a®aeYaa®a®¬ ?aa®¤®F® ae ©«  (c c?¤Y aaa®?®c®F® «?aY-
a « ). ?®F¤  ?aY?a®aeYaa®a ®!a ! aec Ya ¤?aY?a?ca #include
?«? #line, «?!®?a? § cYaeY?? ®!a !®a?? c?«ic Y¬®F® ae ©« ,
¤ e© ¬ ?a®a a®®acYaaacaie?¬ ®!a §®¬ ¬YiYa ac®Y § cY?Y.

__LINE__

„ e© ¬ ?a®a ¤ Ya ?®«?cYaac® ®!a !®a ea ?aY?a®aeYaa®-
a®¬ ? ¤ ®¬a ¬®¬Yaa aaa®? aY?aeYF® ?aa®¤®F® ae ©« . ?!ec®
?Yac i aaa®?  ?aa®¤®F® ae ©«  ®?aY¤Y«iYaai a ®¬Ya®¬ 1, a®ai
  ia® ¬®¦Ya ?®c«?iai ¤?aY?a?c  #line. ?ae®a¬ ae?i ® ¤?aY?a?-
cY #line a¬.   aaa. 144 ®a?F? « .

__MSDOS__

„ e© ¬ ?a®a a?Yae?ae?cY ¤«i Turbo C++. ? ¤ Ya aeY«®-
c?a«Yai ?®aa aa 1 ¤«i caYa a«ac Yc ?®¬??«iae??.

__OVERLAY__

„ e© ¬ ?a®a a?Yae?ae?cY ¤«i ‘++. ? ?aY¤®?aY¤Y«Y a c-
e¬ 1, Ya«?¬®¤a«i ?®¬??«?aaYaaia ®?ae?Y© -Y (c?«icY 
?®¤¤Ya¦?  ®cYa«Y©ea aaaa?aaa). …a«? ®cYa«Y©eY aaaa?aaae Y
?®¤¤Ya¦?c iaai, a® ¤ e© ¬ ?a®a Y®?aY¤Y«Y.

__PASCAL__

„ e© ¬ ?a®a a?Yae?ae?cY ¤«i ‘++. ? a®®!e Ya ® a®¬,
ca®!e« ?a?®«i§®c  ae« F -p. ? ?a®a aaa ®c«Y a ce¬ aeY«®-
c?a«Y®© ?®aa aY 1, Ya«? ae« F -p ?a?®«i§®c «ai; c ?a®a?c-
®¬ a«ac Y ® Y®?aY¤Y«Y.

__STDC__

„ e© ¬ ?a®a ®?aY¤Y«Y a ce¬ ?®aa aY 1, Ya«? ?®¬??-
«iae?i ce?®«iYaai ?a? aaa ®c«Y®¬ ae« FY a®c¬Yaa?¬®aa? a

– 144 –
ANSI (-A?«? ¬YiANSI Keywords Only…On); c ?a®a?c®¬ a«ac Y
¬ ?a®a Y®?aY¤Y«Y.

__TIME__

„ e© ¬ ?a®a ¤ Ya caY¬i  c «  ®!a !®a?? ?aY?a®aeYaa®-
a®¬ aY?aeYF® ?aa®¤®F® ae ©«  (c c?¤Y aaa®?®c®F® «?aYa « ).

? ? ? c a«ac Y ¬ ?a®a  __DATE__, ? ¦¤®Y c?«icY?Y
__TIME__ !a¤Ya a®¤Ya¦ ai ®¤® ? a® ¦Y § cY?Y, Y§ c?a?¬®
®a a®F®, a?®«i?® caY¬Y? ?a®¤®«¦ « ai ®!a !®a?  ae ©« . ?
?¬YYa ae®a¬ a hh:vv:ss, F¤Y hh ia® c ae (®a 00 ¤® 23), mm ia®
¬?aae (®a 00 ¤® 59),   ss ia® aY?a¤e (®a 00 ¤® 59).

__TURBOC__

„ e© ¬ ?a®a a?Yae?ae?cY¤«i ‘++. ? ¤ Ya ®¬Ya aY?aeY©
cYaa?? TurboC++ cc?¤Y eYaa ¤ae a?a?c®© ?®aa ae. ˜ ?a?¬Ya,
cYaa?i 1.0 !a¤Ya ?aY¤aa c«Y  c c?¤Y 0x0100.

?« c  2. ˜YaY?aYaaeY aae«?? ?® !?!«?®aY?Y ?a?®«iieY©
a?aaY¬e

„  i F« c  a®¤Ya¦?a ®!§®a !?!«?®aYcea ?®¤?a®Fa ¬¬
Turbo C++ ? c?«ic Y¬ea ae ©«®c.

‚ ¤ ®© F« cY

– ®!eiaiYaai, § cY¬ c ¬ ¬®Faa ?® ¤®!?aiai ?aa®¤eY
?®¤e !?!«?®aY?? ?a?®«iieY© a?aaY¬e Turbo C++

– ?YaYc?a«iiaai ? ®??aec iaai ae ©«e § F®«®c? 

– !?!«?®aYceY ?®¤?a®Fa ¬¬e Faa???aaiaai c a®®acYaaac??
a a §«?ce¬? ? aYF®a?i¬? ce?®«iY¬ea ?¬? § ¤ c.

Turbo C++ ?®aa c«iYaai a !®«YY cY¬ 450 aea?ae?i¬? ? ¬ ?-
a®a ¬?, ?®a®aeY ce ¬®¦YaY ce§ec ai?§ ac®Y© ?a®Fa ¬¬e ¤«i ce-
?®«Y?i e?a®?®F® ?aaF  § ¤ c, c?«ic i § ¤ c? cc®¤ /cec®¤ 
? ? cea®?®F®, a ? ? ?§?®F® aa®ci, ¬ ??a«iae?? a ?®a®? ¬??
ae ©« ¬?, a a?aY¤Y«Y?i? ¬ia?, ?aY®!a §®c ?i ¤ ea, ¬ aY¬ –
a?cYa??a cec?a«Y?© ?¬®F?Y¤aaF?Y. ˜a? aea?ae?? ? ¬ ?a®ae,
 §ec Y¬eY !?!«?®aYce¬? ?®¤?a®Fa ¬¬ ¬?, ?®¤a®!® ®??a e c
‘?a c®c??Y ?® !?!«?®aY?Y.

˜®¤?a®Fa ¬¬e Turbo C++a®¤Ya¦ aai c !?!«?®aYcea ae ©« a
(Cx.LIB, CPx.LIB, MATHx.LIB ? GRAPHICS.LIB). ˜®a?®«i?a
TurboC++ ?®¤¤Ya¦?c Ya eYaai a §«?cea ¬®¤Y«Y© ? ¬ia?, ? ¦¤ i
¬®¤Y«i, §  ?a?«icY?Y¬ ¬®¤Y«? tiny, ?¬YYa ac®© a®!aacYe©
!?!«?®aYce© ae ©« ? ae ©« ¬ aY¬ a?cYa??a aea?ae?©, c ?®a®aea
 a®¤iaai cYaa?? ia?a ?®¤?a®Fa ¬¬ a?Yae? «i® ¤«i a®®acYaa-
acaieY© ¬®¤Y«? ? ¬ia?. (?®¤Y«i tiny ?a?®«i§aYa ®¤? ae ©«e a
¬®¤Y«ii small).

‚ ‘++ caYF¤  a¦® ?a?®«i§®c ai ?a®a®a??e. „®?®«?aY«i-
ai ?ae®a¬ ae?i ® ?a®a®a?? a aea?ae?© a¬.   aaa.60 ®a?F? –
« ).

Turbo C++ ic«iYaai aY «?§ ae?Y© ?®a«Y¤YF® aa ¤ aa 
ANSI C, ?®a®ae©, ?®¬?¬® caYF® ?a®cYF®, ?®§c®«iYa (? aa?«Y®
aY?®¬Y¤aYa) § ¤ c ai ?a®a®a??e aea?ae?© ¤«i ?a?®«i§aY¬ea c
c eY© ?a®Fa ¬¬Y   ‘ ?®¤?a®Fa ¬¬.

˜?!«?®aYceY ?®¤?a®Fa ¬¬e Turbo C++ ®!eic«iiaai a® ac®-
?¬? ?a®a®a?? ¬? c ®¤®¬ ?«? !®«YY ae ©«®c § F®«®c? .
‡ cY¬ a¦Y ¤®aaa? ? ?aa®¤e¬ ?®¤ ¬ !?!«?®aY?? ?a?®«i-
ieY© a?aaY¬e

– 145 –

˜?!«?®aY?  ?a?®«iieY© a?aaY¬e Turbo C++ a®¤Ya¦?a aceeY
450 aea?ae?©, ®a®aie?aai ? e?a®?®¬a ¤? ? §®a § ¤ c: a?a c-
«Y?Y IBM PC   ?¦Y¬ aa®cY, ?aYaaeY©a a DOS, cc®¤/cec®¤,
a?a c«Y?Y ®!a !®a?®©, ¬ ??a«iae?? a® aaa®? ¬? ? ? ¬iaii,
¬ aY¬ a?cYa??Y cec?a«Y?i, a®aa?a®c?  ? ?®?a?, ? a.¤. ‘a-
eYaacaYa Ya?®«i?® cYa??a ?a?c?, ?® ?®a®ae¬ c ¬ ¬®¦Ya ?® –
¤®!?aiai ¤®aaa? ? ?aa®¤e¬ ?®¤ ¬ ia?a aea?ae?©:

– ?®¦Ya ®! aa¦?aiai, ca® Y?®a®a i aea?ae?i, ?®a®aai ce
a®!?a YaYai  ??a ai,   «®F?c , ®¤ ?® Y ?®«®aaii i?c?-
c «Ya , aea?ae?? ?§ !?!«?®aY??. ?¬Yi ¤®aaa? ? YY ?aa®¤®¬a
?®¤a c !?!«?®aY?Y ?a?®«iieY© a?aaY¬e, ce?¬YYaYc®§¬®¦®aai
a?®aaY?a?a®c ai YY?® ac®?¬ aaY!®c ?i¬, ca® ?®§c®«?a ?§!Y-
¦ ai a®§¤ ?i a®!aacY®© ®a¤Y«i®© aea?ae??.

– ?®F¤  ?a? ®a« ¤?Y aaY!aYaai ?®!®«ieY a§ ai ® a®¬,
? ? aaaa®Y  a  ?«? ? i !?!«?®aYc i aea?ae?i. „®aaa? ? ?a-
a®¤e¬ ?®¤ ¬ !?!«?®aY?? ?a?®«iieY© a?aaY¬e c ¤ ®© a?aa –
ae?? cYai¬  ?®«Y§Y.

– ?®F¤  ce Y ¬®¦YaY c a®c®aa? ceia?ai, ca® ?®?aYa®
¤Y« Ya a  ?«? ? i aea?ae?i, ?®«Y§® c§F«iaai   YY ?aa®¤e©
?®¤.

– ‚ ¬ ¬®¦Ya ?® ¤®!?aiai a!a ai cY¤ae?Y a?¬c®«e ?®¤cYa-
??c ?i c a?¬c®«?cYa??a ?¬Y a ‘. ˜a® ¬®¦® a¤Y« ai a®«i?®
?¬Yi ¤®aaa? ? ?aa®¤e¬ ?®¤ ¬ aea?ae?© !?!«?®aY?? ?a?®«iieY©
a?aaY¬e.

– ‚e ¬®F®¬a ¬®¦YaY  ac?aiai, ?§ac i a¦ aeY, ?a®aeYaa?-
® «i®  ??a eY ?aa®¤eY ?®¤e !?!«?®aYcea aea?ae?©.

˜® caY¬ ia?¬ ?a?c? ¬,   a ?¦Y ?® ¬®F?¬¤aaF?¬, c ¬ ¬®-
¦Ya ?® ¤®!?aiai¤®aaa?? ?aa®¤e¬ ?®¤ ¬ !?!«?®aY???a?®«iieY©
a?aaY¬e Turbo C++. ˜®a?®«i?a ae?a¬  Borland ?a?¤Ya¦?c Yaai
?a?ae??  “®a?aea®©  aa?aY?aaae”, ¬e ?aY¤®aa c«iY¬ c®§¬®¦-
®aai «?aeY§?a®c ®F® ¤®aaa?  ? ?aa®¤e¬ ?®¤ ¬ !?!«?®aY??
?a?®«iieY© a?aaY¬e Turbo C++. ‚aY, ca® c ¬ a¦® ¤«i ia®F®
a¤Y« ai,ia® § ?®«?ai !« ?, ?®aa c«iY¬e© a ? ?Ya®¬ Turbo C+
+, ?a?«®¦?ai ?« aY¦e© cY?, ? c ¬ !a¤aacea« e ?aa®¤eY ?®¤e
!?!«?®aY?? ?a?®«iieY© a?aaY¬e Turbo C++.

” ©«e § F®«®c?  Turbo C++

” ©«e § F®«®c? , ®?aY¤Y«iY¬eY aa ¤ aa®¬ ANCI C, a®®a-
cYaaacY® ®!®§ cYe   ?®«ia. ” ©«e § F®«®c?  ‘++ a ?¦Y
®!®§ cYe   ?®«ia a«Yc .

” ©«e § F®«®c? ,  §ec Y¬eY a ?¦Y c?«ic Y¬e¬? ae ©« ¬?,
a®¤Ya¦ a ®!eic«Y?i ?a®a®a??®c !?!«?®aYcea aea?ae?©. ‚ ?a
a ?¦Y  a®¤iaai ®?aY¤Y«Y?i a??®c ¤ ea ? a?¬c®«?cYa??a
?¬Y ?®aa a !?!«?®aYcea aea?ae?©,   a ?¦Y F«®! «ieY ?YaY-
¬YeY, ®?aY¤Y«iY¬eY TurboC++ ? !?!«?®aYce¬? aea?ae?i¬?.
?¬Y  ae ©«®c § F®«®c?  ? ?a a®¤Ya¦?¬®Y c !?!«?®aY? a Turbo C
++ a«Y¤aia aa ¤ aaa ANSI C.

alloc.h ?!eic«iYa aea?ae?? a?a c«Y?i ? ¬iaii (a a?aY-
¤Y«Y?Y ? ®a¬Y  a a?aY¤Y«Y?i ? ¬ia? ? a.¤.)

ANSI C assert.h ??aY¤Y«iYa ®a« ¤®ce© ¬ ?a®a assert

C++ bcd.h ??aY¤Y«iYa ?« aa ‘++ bcd ? ?YaYFaa¦YeY ®?Y-
a ae?? ¤«i ?« aa  bcd ? ¬ aY¬ a?cYa??Y aea?ae??
¤«i bcd

bios.h ?!eic«iYa a §«?ceY aea?ae??, ?a?®«i§aY¬eY ?a?

– 146 –
ce§®cY ?®¤?a®Fa ¬¬ ROM BIOS IBM PC

C++ complex.h ?!eic«iYa ?®¬?«Y?aeY ¬ aY¬ a?cYa??Y
aea?ae?? ‘++

conio.h ?!eic«iYa a §«?ceY aea?ae??, ?a?®«i§aY¬eY ?a?
ce§®cY ?®¤?a®Fa ¬¬ DOS cc®¤ /cec®¤  a ?®a®«?

ANSI C ctype.h ‘®¤Ya¦?a ?ae®a¬ ae?i, ?a?®«i§aY¬ai ¬ ?a®-
a ¬? a?¬c®«i®© ?« aa?ae?? ae?? ? a?¬c®«iea ?aY®!a §®c ?©
(a ??¬?, ? ? isalpha ? toascii)

dir.h ‘®¤Ya¦?a aaaa?aaae, ¬ ?a®ae ? aea?ae?? ¤«i
a !®ae a ¤?aY?a®a?i¬? ? ?aai¬? ¤®aaa? 

dos.h ??aY¤Y«iYa a §«?ceY ?®aa ae ? a®¤Ya¦?a ®!eic-
«Y?i, Y®!a®¤?¬eY ?a? ce§®c a DOS ? a?Yae? «iea ce§®c a
8086

ANSI C errno.h ??aY¤Y«iYa ¬Y¬®?cYa??Y ?®aa ae ?®¤®c
®e?!®?

fcntl.h ??aY¤Y«iYa a?¬c®«?cYa??Y ?®aa ae, ?a?®«i-
§aY¬eY a®c¬Yaa® a !?!«?®aYc®© ?®¤?a®Fa ¬¬®©
open

ANSI C float.h ‘®¤Ya¦?a ? a ¬Yaae ?®¤?a®Fa ¬¬ ®!a !®a??
c?aY« a ?« c ieY© a®c?®©.

C++ fstream.h ?!eic«iYa ?« aae ?®a®?®c ‘++, ?®¤¤Ya¦?c ie?Y
cc®¤-cec®¤ c ae ©«e

C++ generic.h ‘®¤Ya¦?a ¬ ?a®a ¤«i ®!eic«Y?© a®¤®cea
ae ©«®c

graphics.h ?!eic«iYa ?a®a®a??e Fa ae?cYa??a aea?ae?©

io.h ‘®¤Ya¦?a aaaa?aaae ? ®!eic«Y?i ?®¤?a®Fa ¬¬
cc®¤ /cec®¤  ?§?®F® aa®ci

C++ iomanip.h ?!eic«iYa ¬ ??a«ia®ae cc®¤ /cec®¤  ?®a®?®c
‘++ ? a®¤Ya¦?a ¬ ?a®a ¤«i a®§¤ ?i ? a ¬Yaa?-
§®c ea ¬ ??a«ia®a®c

C++ iostream.h ?!eic«iYa ?®¤?a®Fa ¬¬e (cc®¤ /cec®¤ )
?®a®?®c ! §®c®F® (cYaa?? 2.0) ‘++

ANSI C limits.h ‘®¤Ya¦?a ? a ¬Yaae aaY¤e ?a®Fa ¬¬?a®c –
?i, ?ae®a¬ ae?i ®! ®Fa ?cY?ia caY¬Y? ?®¬??«iae??,   a ?¦Y
c?a«YeY ¤? ? §®e ?aYFa «iea a??®c

ANSI C locale.h ?!eic«iYa aea?ae??, a®¤Ya¦ e?Y ?ae®a¬ –
ae?i, a?Yae?ae?cai ¤«i ?®?aYa®© aaa e ? i§e? 

ANSI C math.h ?!eic«iYa ?a®a®a??e ¬ aY¬ a?cYa??a aea?-
ae?©; ®?aY¤Y«iYa ¬ ?a®a HUGE_VAL ? ®!eic«iYa aaaa?aaaa ?a?«i-
cY?i, ?a?®«i§aY¬ai ?®¤?a®Fa ¬¬®© matherr

mem.h ?!eic«iYa aea?ae?? ¬ ??a«?a®c ?i ? ¬iaii.
(?®F?Y ?§ ?a a ?¦Y ®?aY¤Y«Ye c string.h)

process.h ‘®¤Ya¦?a aaaa?aaae ? ®!eic«Y?i ¤«i aea?ae?©
spawn… ? exec…

ANSI C setjmp.h ??aY¤Y«iYa a?? jmp_buf, ?a?®«i§aY¬e©
aea?ae?i¬?
longjmp ? setjmp, ? ®!eic«iYa ?®¤?a®Fa ¬¬e

– 147 –
longjmp ? setjmp

share.h ??aY¤Y«iYa ? a ¬Yaae, ?a?®«i§aY¬eY c aea?ae?ia,
a !®a ie?a a a §¤Y«Y?Y¬ ae ©« 

ANSI C signal.h ??aY¤Y«iYa ¬ ?a®ae, ?a?®«i§aY¬eY ¤«i
caY?i a??a?®c  aFa¬Ya®c aea?ae?©, ®!eic«Yea ? ? ?a??¬ i-
e?Y ?YaY¬Y®Y c?a«®  aFa¬Ya®c ( ?a?¬Ya, vprintf, vscanf ?
a.¤.)

ANSI C stddef.h ??aY¤Y«iYa Ya?®«i?® ®!e?a a??®c ¤ ea
? ¬ ?a®a®c

ANSI C stdio.h ??aY¤Y«iYa a??e ¤ ea ? ¬ ?a®ae, Y®!-
a®¤?¬eY ¤«i ? ?Ya  aa ¤ aa®F® cc®¤ /cec®¤  (Standard I/O
Package), ®?aY¤Y«Y®F® ?Ya?F ®¬ ? ˜?ac? ? a ae?aY®F® c
‘?aaY¬Y UNIX V.
??aY¤Y«iYa ?aY¤®?aY¤Y«YeY ?®a®?? aa ¤ aa-
®F® cc®¤ /cec®¤  stdin, stdout, stdprn ?
stderr,   a ?¦Y ®!eic«iYa ?®¤?a®Fa ¬¬e cc®¤ /
cec®¤  aa®ci ?®a®?®c

C++ stdiostr.h ?!eic«iYa ?« aae ?®a®?®c ‘++ ¤«i ?a?®«i-
§®c ?i c ae ©«®cea aaaa?aaa a stdio FILE.

ANSI C stdlib.h ?!eic«iYa Y?®a®aeY e?a®?® ?a?®«i§aY¬eY
?®¤?a®Fa ¬¬e: ?®¤?a®Fa ¬¬e ?aY®!a §®c ?i, ?®¤?a®Fa ¬¬e ?®-
?a? /a®aa?a®c?? ? ?a®c?Y

C++ stream.h ?!eic«iYa ?®¤?a®Fa ¬¬e (cc®¤ /cec®¤ ) ?®-
a®?®c ‘++ (cYaa?? 1.2)

ANSI C string.h ?!eic«iYa Ya?®«i?® ?®¤?a®Fa ¬¬ aaa®?®-
cea ¬ ??a«iae?© ? ¬ ??a«iae?© a ? ¬iaii

C++ strstrea.h ?!eic«iYa ?« aae ?®a®?®c ‘++ ¤«i a !®ae
a ! ©a®ce¬? ¬ aa?c ¬? c ? ¬ia?

sys\stat.h ?!eic«iYa a?¬c®«?cYa??Y ?®aa ae, ?a?®«i§aY-
¬eY ?a? ®a?aea?? ? a®§¤ ?i ae ©«®c

sys\timeb.h ?!eic«iYa aea?ae?i time ? aaaa?aaaa timeb,
c®§ca e Y¬ai time

sys\types.h ?!eic«iYa a?? type_t, ?a?®«i§aY¬e© aea?ae?i¬?
caY¬Y?

ANSI C time.h ??aY¤Y«iYa aaaa?aaaa, § ?®«iY¬ai
?®¤?a®Fa ¬¬ ¬? ?aY®!a §®c ?i caY¬Y? asctime, localtime ?
gmtime,   a ?¦Y a??, ?a?®«i§aY¬e© ?®¤?a®Fa ¬¬ ¬? ctime,
difftime, gmtime, localtime ? stime; a ?¦Y a®¤Ya¦?a ?a®a®a?-
?e ia?a ?®¤?a®Fa ¬¬.

values.h ??aY¤Y«iYa c ¦eY ?®aa ae, c?«ic i ¬ e?®§ –
c?a?¬eY ?®aa ae; ®!Ya?Yc?c Ya a®c¬Yaa?¬®aaii a a?aaY¬®©
UNIX V
? aYF®a?? !?!«?®aYcea ?®¤?a®Fa ¬¬
———————————————————–

˜?!«?®aYceY ?®¤?a®Fa ¬¬e Turbo C++ce?®«iia !®«ie®Y
?®«?cYaac® a §«?cea§ ¤ c.‚ ¤ ®¬ a §¤Y«Y ?YaYc?a«Ye caY
?®¤?a®Fa ¬¬e,   a ?¦Y c?«ic Y¬eY ae ©«e, c ?®a®aea ®? ®!eic-
«Ye, a §!?aeY   Ya?®«i?® ®!e?a ? aYF®a?© ?® ce?®«iY¬e¬
§ ¤ c ¬. ˜®«ai ?ae®a¬ ae?i ?® ?YaYc?a«Ye¬ ?¦Y aea?ae?i¬
a¬.c F« cY 1 “˜?!«?®aY?  ?a?®«iieY© a?aaY¬e” ‘?a c®c??  ?®
!?!«?®aY?Y.

– 148 –
˜®¤?a®Fa ¬¬e ?« aa?ae?? ae?? ——————————

„ eY ?®¤?a®Fa ¬¬e ?« aa?ae?ae?aaia a?¬c®«e ASCII ? ?
!a?ce, a?a c«iie?Y a?¬c®«e, § ?? ?a?aa ae??, a?¬c®«e cYaa-
YF® aYF?aaa  ? a.¤.

isalnum (ctype.h) isascil (ctype.h) isdigt (ctype.h)
isalpha (ctype.h) iscntrl (ctype.h) isgraph (ctype.h)
islower (ctype.h) ispunct (ctype.h) isupper (ctype.h)
isprint (ctype.h) isspace (ctype.h) isxdigit(ctype.h)

˜®¤?a®Fa ¬¬e ?aY®!a §®c ?i —————————–

„ eY ?®¤?a®Fa ¬¬e ce?®«iia ?aY®!a §®c ?i a?¬c®«®c ?
aaa®? ?§  «ae c?a®F® c a §«?ceYc?a«®ceY ?aY¤aa c«Y?i (c?a-
«  a ?« c ieY© a®c?®©, aeY«eY c?a« , long) ?®!a a®,   a ?¦Y
?aY®!a §®c ?i a?¬c®«®c cYaaYF® aYF?aaa  ? ?¦Y¬a, ? ®!-
a a®.

atof (stdlib.h) itoa (stdlib.h) _tolower (ctype.h)
atof (stdlib.h) itoa (stdlib.h) tolower (ctype.h)
atof (stdlib.h) strtod (stdlib.h) _tolower (ctype.h)
ocvt (stdlib.h) strtol (stdlib.h) tolower (ctype.h)
fcvt (stdlib.h) strtcul (stdlib.h) ultoa (stdlib.h)
gcft (stdlib.h) toascil (ctype.h)

˜®¤?a®Fa ¬¬e a?a c«Y?i ¤?aY?a®a?i¬?———————–

˜a? ?®¤?a®Fa ¬¬e ¬ ??a«?aaia ¤?aY?a®a?i¬? ? ?¬Y ¬?
?aa? ¤®aaa? .

cndir(dir.h) fnsplit (dir.h) mkdir (dir.h)
findfirst (dir.h) getcurdir (dir.h) mktemp (dir.h)
findnext(dir.h) getcwd (dir.h) rmdir (dir.h)
fnmerge(dir.h) detdisk (dir.h) searchpath(dir.h)
setdisk (dir.h)

„? F®aa?cYa??Y ?®¤?a®Fa ¬¬e——————————-

˜a? ?®¤?a®Fa ¬¬e aY «?§aia caaa®YeY aaY¤aac  ?®?a? 
®e?!??.

assert(assert.h)
matherr(math.h)
perror(errno.h)

?a ae?cYa??Y ?®¤?a®Fa ¬¬e ——————————–

˜a? ?®¤?a®Fa ¬¬e ?®§c®«iia a®§¤ c ai i?a eY Fa ae?cYa-
??Y ?aY¤aa c«Y?i a aY?aa®c®© c aaii.

arc (graphics.h) fillellipse (graphics.h)
bar (graphics.h) fillpoly (graphics.h)
bar3d (graphics.h) floofill (graphics.h)
circle (graphics.h) getarccoords (graphics.h)
cleardevice (graphics.h) getaspectratio (graphics.h)
clearviewport(graphics.h) getbkcolor (graphics.h)
closgraph (graphics.h) getcolor (graphics.h)
detectgraph (graphics.h) getdefaultpallette(graphics.h)
drawpoly (graphics.h) getdrivername (graphics.h)
ellipse (graphics.h) getfillpattern (graphics.h)
getfillsettings (graphics.h) outtext (graphics.h)
getgraphmode (graphics.h) outtextxy(graphics.h)
getimage (graphics.h) pieslice (graphics.h)
getfinesettings (graphics.h) pufimage (graphics.h)
getmaxcolor (graphics.h) pulpixel (graphics.h)
getmaxmode (graphics.h) rectangle(graphics.h)

– 149 –
getmaxx (graphics.h) registerbgidriver(graphics.h)
getmaxy (graphics.h) registerbgifont (graphics.h)
getmodename (graphics.h) restorecrtmode (graphics.h)
getmoderange (graphics.h) sector (graphics.h)
getpalette (graphics.h) settaffpalette (graphics.h)
getpixel (graphics.h) setaspectratio (graphics.h)
gettextsettings (graphics.h) setbkcolor (graphics.h)
getviewsettings (graphics.h) setcolor (graphics.h)
getx (graphics.h) setcursortype (conio.h)
gety (graphics.h) setfillpattern (graphics.h)
graphdefaults (graphics.h) setfillstyle (graphics.h)
grapherrormsg (graphics.h) setgraphbufsize (graphics.h)
_graphfreemem (graphics.h) setgraphmode (graphics.h)
_graphgetmem (graphics.h) setlinestyle (graphics.h)
graphresult (graphics.h) setpalette (graphics.h)
imagesize (graphics.h) setrgbpalette (graphics.h)
initgraph (graphics.h) settextjunistify (graphics.h)
installuserdriver(graphics.h)settexttyle (graphics.h)
installuserfont (graphics.h)setusercharsize (graphics.h)
line (graphics.h)setviewport (graphics.h)
linerel (graphics.h)setvisualpage (graphics.h)
lineto (graphics.h)setwritemode (graphics.h)
moverei (graphics.h)textheight (graphics.h)
moveto (graphics.h)textwidth (graphics.h)
˜®¤?a®Fa ¬¬e cc®¤ /cec®¤  ——————————–

˜a? ?®¤?a®Fa ¬¬e aY «?§aia aaY¤aac  cc®¤ /cec®¤   
aa®cY ?®a®?®c ? DOS.

access (io.h)creatnew (io.h)
cgets (conio.h)creattemp (io.h)
_chmod (io.h)cscanf (conio.h)
chmod (io.h)dup (io.h)
chsize (io.h)dup2 (io.h)
clearerr (stdio.h)eof (io.h)
_close (io.h)fclosse (stdio.h)
close (io.h)fcloseali (ctdio.h)
cprintf (conio.h)fdopen (stdio.h)
cputs (conio.h)foof (stdio.h)
_creat (io.h)ferror (stdio.h)
creat (io.h)fflush (stdio.h)
fgetc (stdio.h)printf (stdio.h)
fgetchar (stdio.h)putc (stdio.h)
fgetpos (stdio.h)putch (conio.h)
fgets (stdio.h)putchar (stdio.h)
fllelength (io.h)puts (stdio.h)
flleno (stdio.h)putw (stdio.h)
flushall (stdio.h)_read (io.h)
fopen (stdio.h)read (io.h)
fprintf (stdio.h)remove (stdio.h)
fputc (stdio.h)rename (stdio.h)
fputchar (stdio.h)rewind (stdio.h)
fputs (stdio.h)scanf (stdio.h)
fread (stdio.h)setbuf (stdiio.h)
freopen (stdio.h)setcursortype (conio.h)
fscanf (stdio.h)setftime (io.h)
fseek (stdio.h)setmode (io.h)
fsetpos (stdio.h)setvbuf (stdio.h)
fstat (sys\stat.h)sopen (io.h)
ftell (stdio.h)sprintf (stdio.h)
fwrite (stdio.h)sscanf (stdio.h)
getc (stdio.h)stat (sys\stat.h)
getch (conio.h) _strerror (string.h,stdio.h)
getchar (stdio.h) strerorr (stdio.h)
getche (conio.h) tell (io.h)
getftime (io.h) tmpfile (stdio.h)
getpaus (conio.h) tmpnam (stdio.h)

– 150 –
gets (stdio.h) ungetc (stdio.h)
getw (stdio.h) ungetch (conio.h)
iocti (io.h) unlock (io.h)
isatty (io.h) vfprintf (stdio.h)
kbhit (conio.h) vfscanf (stdio.h)
lock (io.h) vprintf (stdio.h)
iseek (io.h) vscanf (stdio.h)
_open (io.h) vsprintf (stdio.h)
open (io.h) vsscanf (io.h)
perror (stdio.h) _write (io.h)

˜®¤?a®Fa ¬¬e ?aYaaeY©a  ———————————
(DOS, 8086, BIOS)

˜a? ?®¤?a®Fa ¬¬e aY «?§aia ®!a eY?i ? aaY¤aac ¬ DOS,
BIOS ? a?Yae?ae?ce¬ aaY¤aac ¬ ¤ ®F® ?®¬?iiaYa .

absread (dos.h) bioskey (bios.h) dosexterr (dos.h)
abswrite (dos.h) bioskey (bios.h) enable (dos.h)
bdos (dos.h) biosprint (bios.h) FP_OFF (dos.h)
bdosptr (dos.h) biostime (bios.h) FP_SEG (dos.h)
bioscom (bios.h)country (dos.h) freemem (dos.h)
blosdisk (bios.h)ctrlbrk (dos.h) geninterrupt(dos.h)
biosequip(bios.h)disable (dos.h) getcbrk (dos.h)
getdfree (dos.h) int86 (dos.h) poke (dos.h)
getdta (dos.h) int86x (dos.h) pokeb (dos.h)
getfat (dos.h) intdos (dos.h) randbrd (dos.h)
getfatd (dos.h) intdosx (dos.h) randbwr (dos.h)
getpsp (dos.h) intr (dos.h) segread (dos.h)
getvect (dos.h) keer (dos.h) setcbrk (dos.h)
getverity(dos.h) MK_FP (dos.h) setdta (dos.h)
harderr (dos.h) outport (dos.h) setvect (dos.h)
hardresume(dos.h)outportb (dos.h) setverity (dos.h)
hardretn(dos.h)parsfnm (dos.h) sleep (dos.h)
inport(dos.h)peek (dos.h) unlink (dos.h)
inportb(dos.h)peekb (dos.h)

˜®¤?a®Fa ¬¬e ¬ ??a«iae?? ——————————–

˜a? ?®¤?a®Fa ¬¬e ®!a ! aec ia aaa®??? !«®?? ? ¬ia?: ?®-
??a®c ?Y, aa cY?Y, ?aY®!a §®c ?i ? ?®?a?.

memccpy(mem.h,string.h) stricmp(string.h)
memchr(mem.h,string.h) stricmpi(string.h)
memcmp(mem.h,string.h) sprien(string.h)
memcpy(mem.h,string.h) striwr(string.h)
memicmp(mem.h,string.h) stncat(string.h)
memmoye(mem.h,string.h) stncmp(string.h)
memset(mem.h,string.h) strncmpi(string.h)
movedata(mem.h,string.h) strncpy(string.h)
movmem(mem.h,string.h) strnicmp(string.h)
setmem(mem.h) strnset(string.h)
stpcpy(string.h) strpbrk(string.h)
strcat(string.h) strrchr(string.h)
strchr(string.h) strrev(string.h)
strcmp(string.h) strset(string.h)
strcoll(string.h) strspn(string.h)
strcpy(string.h) strstr(string.h)
strcspn(string.h) strtok(string.h)
strdup(string.h) strupr(string.h)
strerror(string.h) strxfrm(string.h)

? aY¬ a?cYa??Y ?®¤?a®Fa ¬¬e —————————–
˜a? ?®¤?a®Fa ¬¬e ce?®«iia ¬ aY¬ a?cYa??Y cec?a«Y?i ?
?aY®!a §®c ?i.

abs (complex.h,stdlib.h) atof(stdlib.h,math.h)

– 151 –
acos (complex.h,math.h) atoi(stdlib.h)
arg (complex.h) atol(stdlib.h)
asin (complex.h,math.h) bcd(std.h)
atan (complex.h,math.h) cabs(math.h)
atan2 (complex.h,math.h) ceil(math.h)
clear87 (float.h) ltoa(stdlib.h)
complex (complex.h) _matherr (math.h)
conj (complex.h) matherr(math.h)
_control(float.h) modf(math.h)
cos (complex.h,math.h) norm(complex.h)
cosh (complex.h,math.h) polar(complex.h)
div (math.h) poly(math.h)
ecvt (stdlib.h) pow(complex.h,math.h)
exp (math.h) pow10(math.h)
fabs (math.h) rand(stdlib.h)
fcvt (stdlib.h) random(stdlib.h)
floor (math.h) randomize(stdlib.h)
fmod (math.h) real(complex.h)
_fpreset(float.h) _rotl(stdlib.h)
frexp (math.h) _rotr(stdlib.h)
gcvt (stdlib.h) sin(complex.h,math.h)
hypot (math.h) sinh(complex.h,math.h)
imag (complex.h) sqrt(complex.h,math.h)
itoa (stdlib.h) srand(stdlib.h)
labs (stdlib.h) _status87(float.h)
ldexp (math.h) strtod(stdlib.h)
ldiv (math.h) strtol(stdlib.h)
log (complex.h,math.h) strtoul(stdlib.h)
log10 (complex.h,math.h) tan(complex.h,math.h)
_lrotl (stdlib.h) tanh(complex.h,math.h)
_lrotr (stdlib.h) ultoa(stdlib.h)

˜®¤?a®Fa ¬¬e a?a c«Y?i ? ¬iaii ————————-

˜a? ?®¤?a®Fa ¬¬e ®!Ya?Yc?c ia ¤? ¬?cYa?®Y a a?aY¤Y«Y-
?Y ? ¬ia? ¤«i ¬®¤Y«Y© ¤ ea small ? large

allocmem (dos.h) farrealloc (alloc.h)
brk (alloc.h) free (alloc.h,
calloc (alloc.h) stdlib.h)
coreleft (alloc.h, heapcheck (alloc.h)
stdlib.h) heapcheckfree (alloc.h)
farcalloc (alloc.h) heapcheckknode (alloc.h)
farcoreleft (alloc.h) heapwalk (alloc.h)
farfree (alloc.h) malloc (alloc.h,
farheapcheck (alloc.h) stdlib.h)
farheapcheckfree(alloc.h) realloc (alloc.h,
farheapchecknode(alloc.h) stdlib.h)
farheapfllfree (alloc.h) sbrk (alloc.h)
farheapwalk (alloc.h) setblock (dos.h)
farmalloc (alloc.h)
˜ §eY ?®¤?a®Fa ¬¬e ————————————-

˜a? ?®¤?a®Fa ¬¬e ?aY¤®aa c«iia aaY¤aac  ?YaYa®¤  § 
?aY¤Y«e «®? «i®F® ?®aY?aa , a §«?ceY §ca?®ceY iaeaeY?ae ?
«®? «ieY iaeaeY?ae.

delay (dos.h) setjmp (setjmp.h)
localeconv (locale.h) setlocale (locale.h)
longjmp (setjmp.h) sound (dos.h)
nosound (dos.h)

˜®¤?a®Fa ¬¬e a?a c«Y?i ?a®aeYaa ¬? ———————-

˜a? ?®¤?a®Fa ¬¬e § ?aa? ia ? § cYae ia ce?®«Y?Y ®¤?a
?a®aeYaa®c ?§ ¤aaF?a.

– 152 –
abort (process.h) execvp (process.h) spawnl (process.h)
execl (process.h) execvpe(process.h) spawnle (process.h)
execle (process.h) _exit (process.h) spawnlp (process.h)
execlp (process.h) exit (process.h) spawnlpe(process.h)
execlpe(process.h) getpid (process.h) spawnv(process.h)
execv (process.h) reise (signal.h)spawnve (process.h)
execve (process.h) signal (signal.h)spawnvp (process.h)
spawnvpe(process.h)

‘a ¤ aaeY ?®¤?a®Fa ¬¬e ——————————–

˜a? ?®¤?a®Fa ¬¬e ic«iiaai aa ¤ aae¬?.

abort (stdlib.h) exit (stdlib.h)malloc(stdlib.h)
abs (stdlib.h) fcvt (stdlib.h)putenv(stdlib.h)
atexit (stdlib.h) free (stdlib.h)qsort(stdlib.h)
atof (stdlib.h) gcvt (stdlib.h)rand(stdlib.h)
atol (stdlib.h) getenv (stdlib.h)realloc (stdlib.h)
atol (stdlib.h) itoa (stdlib.h)srand(stdlib.h)
bsearch(stdlib.h) labs (stdlib.h)stdtod(stdlib.h)
calloc (stdlib.h) lfind (stdlib.h)strtol(stdlib.h)
ecvt (stdlib.h) lsearch(stdlib.h)swab(stdlib.h)
_exit (stdlib.h) itoa (stdlib.h)system(stdlib.h)

˜®¤?a®Fa ¬¬e cec®¤    ¤?a?«Y© aY?aa®cea ®?® ————-

˜a? ?®¤?a®Fa ¬¬e cec®¤ia aY?aa   i?a .

clreol (conio.h) gotoxy (conio.h)
clrscr (conio.h) highvideo (conio.h)
delline (conio.h) insline (conio.h)
gettext (conio.h) lowvideo (conio.h)
gettextinvo(conio.h) movetext (conio.h)
normvideo (conio.h) textcolor (conio.h)
puttext (conio.h) textmode (conio.h)
necursortype (conio.h) wherex (conio.h)
textattr (conio.h) wherey (conio.h)
textbackground(conio.h) window (conio.h)

˜®¤?a®Fa ¬¬e caY¬Y? ? ¤ ae —————————–

˜a? ?®¤?a®Fa ¬¬e ?aY¤ § cYe ¤«i ?aY®!a §®c ?© ? ¬ –
??a«iae?© caY¬YY¬ ? ¤ a®©.

asctime (time.h) mktime (time.h)
ctime (time.h) setdate (dos.h)
difftime (time.h) settime (dos.h)
dostounix (dos.h) stime (time.h)
ftime (sys\timeb.h)strftime (time.h)
getdate (dos.h) time (time.h)
gettime (dos.h) tzset (time.h)
gmtime (time.h) unixtodos (dos.h)
locoltime (time.h)

˜®¤?a®Fa ¬¬e ¤«i ®!a !®a?? ?YaY¬Y®F® a??a?   aFa¬Ya®c

˜a? ?®¤?a®Fa ¬¬e ?a?®«i§aiaai¤«i ¤®aaa?  ? ?YaY¬Ye¬
a??a? ¬  aFa¬Ya®c ( ?a?¬Ya, vprintf ? a.¤.).

va_arg (stdarg.h)
va_end (stdarg.h)
va_stsrt (stdarg.h)

– 153 –

?« c  3 ˜®a®?? ‘++

„  i F« c  a®¤Ya¦?a ?a a??© ®!§®a cc®¤ /cec®¤  ?®a®-
?®c ‘++. ‚c®¤/cec®¤ ?®a®?®c c ‘++?a?®«i§aYaai ¤«i ?aY®!a §®-
c ?i a???§?a®c ea ®!eY?a®c c c?a Y¬e© aY?aa, ? ®!a a®.
? ?®§c®«iYa ®?aY¤Y«iai aea?ae?? cc®¤ /cec®¤ , ?®a®aeY § aY¬
 ca®¬ a?cYa?? ?a?®«i§aiaai ?a?¬Y?aY«i® ? a®®acYaaacaie?¬
®?aY¤Y«Yea ?®«i§®c aY«Y¬ a?? ¬. ˜®a«Y¤aie?Y ?a?¬Yae  a®-
¤iaai c ?« cY 5, “?a®ce ‘++” ¤®?a¬Ya  “˜ c «® a !®ae”;
?a?c®¤?¬ i a ¬ ¦Y !?!«?®Fa ae?i ?aY¤« F Ya Ya?®«i?®  §c ?©
??F ¤«i aF«a!«Y®F® ?§acY?i ¤ ®F® ?a?¬Ya .

˜®ceY ?®a®?? c¬Yaa® aa aea

Turbo C++ ?®¤¤Ya¦?c Ya ? ? aa aai !?!«?®aY?a ‘++
stream, a ? ? ®cai aa®cYaeYaac®c ai !?!«?®aY?a iostream
‘++ cYaa?? 2.0. ‚®§¬®¦®aai a !®ae a ®!Y?¬? cYaa?i¬? ?®¬®¦Ya
c ¬, Ya«? a c a ?¬Yiaai ?a®Fa ¬¬e,  ??a eY ?® aa ae¬ a®F-
« eY?i¬, ? ce ¦Y« YaY ?a?®«i§®c ai Turbo C++ ¤«i ?YaYa®¤  ?
!®«YY iaeaeY?a?ce¬ ?®a®? ¬ cc®¤ /cec®¤  cYaa??2.0. ?e  aa®i-
aY«i® aY?®¬Y¤aY¬ c ¬?a? a®§¤ ?? ®cea ?a®Fa ¬¬ ?®«i§®-
c aiai !?!«?®aY?®© iostream cYaa?? 2.0. ˜a?c®¤i Y?®a®aeY
¬ aYa? «e, Y®!a®¤?¬eY ¤«i?YaYa®¤  ? ?®a®? ¬ cYaa?? 2.0 ( –
c? i a® aaa.184 ®a?F? « ), ¤  i F« c  F« ce¬ ®!a §®¬
?®acie Yaai ?« aa ¬ ??a c?« ¬ ?®a®?®c iostream cYaa?? 2.0.

?a?®«i§®c ?Y ?®a®?®c 2.0

“a®cYaeYaac®c eY ?®a®?? iostream cYaa?? 2.0, a®ai ?
®!Ya?Yc?c ia ?® !®«ieY© c aa? a®c¬Yaa?¬®aai ¤«i aa a®© cYa-
a?? ‘++, ?aY¤« F ia aY¬ Y ¬YYY ®ceY c®§¬®¦®aa?, aci§ –
eY a ?a?®«i§®c ?Y¬ ¬®¦YaacY®F®  a«Y¤®c ?i ? ?a®c?¬?
aaY¤aac ¬?, ?®ic?ce?¬?ai c ‘++ cYaa?? 2.0.

?!aa¦¤Y?Y a §«?c?© ¬Y¦¤a aa ae¬? ?®a®? ¬? ? ®ce¬? ?®-
a®? ¬?,   a ?¦Y ®a®ce ?aY®!a §®c ?i aa aea ?®a®?®c c ®ceY
a¬. c a §¤Y« a “?a?®«i§®c ?Y aa aea ?®a®?®c” ? “?a®ce ?Y-
aYa®¤  ? ?®a®? ¬ cYaa?? 2.0” c ?®aeY  aa®ieY© F« ce.

?®aeY?ae?i ?®a®?®c ‘++  aeY«Y    aYeY?Y Ya?®«i??a
?a®!«Y¬, aYe Y¬ea aa ¤ aae¬? !?!«?®aYce¬?aea?ae?i¬? cc®¤ /
cec®¤  ‘, a ??¬? ? ?printf? scanf. ˜®a«Y¤?Y, a §a¬YYaai ®a-
a iaai ¤®aaa?e¬? ¤«i ?a®Fa ¬¬?aa , a !®a ieYF® c ‘++, ®
a«aceY i F?!?®aai ? i«YF a®aai ?®a®?®c ‘++ a¬Yie ia
?a?c«Y? aY«i®aai aea?ae?© !?!«?®aY?? stdio.h. ?« aae, aci-
§ eY a ?®a®? ¬? ‘++, ?aY¤« F ia c ¬ a ae?aiY¬eY !?!«?®aY-
??, ?®§c®«iie?Y c ¬ ce?®«iai ae®a¬ a?a®c e© cc®¤/cec®¤a
?®aa®«Y¬a??®c ? ?¤«i ?aY¤®?aY¤Y«Yea, a ? ? ¤«i ®?aY¤Y«iY-
¬ea ?®«i§®c aY«Y¬ a??®c ¤ ea a?®¬®eii ?YaYFaa¦Yea ®?Ya –
ae?©? ?a®c?a ®!eY?a®-®a?Ya?a®c ea ¬Ya®¤®c.

„«i ®!a eY?i ? cc®¤a/cec®¤a ?®a®?®¬ c e  ?a®Fa ¬¬ 
¤®«¦  c?«ic ai ae ©« iostream.h. „«i Y?®a®aea aea?ae?© ?®a®-
?®c aaY!aiaai ? ¤aaF?Y ae ©«e § F®«®c? . ˜ ?a?¬Ya, ¤«i ce?®«-
Y?i ae®a¬ a?a®c ?i c ®?Ya a?c®© ? ¬ia? a ?a?®«i§®c ?Y¬
?« aa®c istrstream ? ostrstream Y®!a®¤?¬ ae ©« strstream.h.
” ©« § F®«®c?  strstream.h c?«ic Ya a ?¦Y iostream.h. …a«?
c ¬ aaY!aYaai ?« aa fstream, c?«ic?aY ae ©« fstream.h,a ?-
¦Yc?«ic ie?© iostream.h. ? a §a¬YYaai, ¬®¦® c?«ic?ai ®¤®c-

– 154 –
aY¬Y® ? fstream.h, ? strstream.h.

—a® a ?®Y ?®a®??

˜®a®?®¬  §ec Yaai  !aaa ?a®Y ?®ia?Y, ®a®aieYYai ?
«i!®¬a ?YaY®aa ¤ ea ®a ?aa®c??  (?«? ?®aa ce??  ¤ ea)
? ?a?Y¬??a (?«? ?®aaY!?aY«i) ¤ ea. ’ ?¦Y ?a?®«i§aiaai a?-
®?¬e ?§c«YcY?Y, ?a?Y¬ ? ?®«acY?Y, ?®F¤  aYci ?¤Ya ® cc®-
¤Y a?¬c®«®c ®a ?aa®c?? , ? caa c? , ?®¬YeY?Y ?«? § ?®¬? –
?Y, ?®F¤  aYci ?¤Ya ® cec®¤Y a?¬c®«®c   ?a?Y¬??.

˜Ya¬®aai   ac®Y ?¬i, ?« aa ?®a®?  ¬®¦Ya !eai
?a?®«i§®c  ¤«i ae®a¬ a?a®c ?i ¤ ea c a?aa ae?ia, Y ?®¤a –
§a¬Yc ie?a aY «i®F® ce?®«Y?i cc®¤ /cec®¤ . ‚e ac?¤?aY,
ca® ae®a¬ a?a®c ?Y c ? ¬ia? ¬®¦® ?a?¬Yiai ? a?¬c®«ie¬
¬ aa?c ¬ ? ?a®c?¬ aaaa?aaa ¬.

˜?!«?®aY?  iostream

˜?!«?®aY?  iostream ?¬YYa ¤c  ? a ««Y«iea ?« aa :
streambuf ? ios. ?!  ®? ic«iiaai ?« aa ¬? ?§?®F® aa®ci ?
? ¦¤e© ce?®«iYa ac®© ?aaF § ¤ c.

streambuf
___________________________________________________________

?« aa streambuf®!Ya?Yc?c Ya ®!e?Y ?a c?«  !aaeYa?§ ae?? ?
®!a !®a?? ?®a®?®c c aYa a«ac ia, ?®F¤  Y aaY!aYaai § c?-
aY«i®F® ae®a¬ a?a®c ?i ia?a ?®a®?®c. streambuf ?aY¤aa c«iYa
a®!®© a¤®!e© ! §®ce© ?« aa, ?a?®«i§aY¬e© ¤aaF?¬? c aai¬?
!?!«?®aY?? iostream, a®ai ® ¤®aaa?Y a ?¦Y ? ¤«i ?a®?§c®¤-
ea ?« aa®c c c e?a aea?ae?ia ? !?!«?®aY? a. ˜®«ie?aac®
aea?ae?©-?®¬?®Ya®c (?a c?«) streambuf ic«iiaai caaa ?c Y¬e-
¬? ¤«i ®!Ya?YcY?i ¬ ?a?¬ «i®© iaeaeY?a?c®aa?. ?« aae
strstreambuf ? filebuf ic«iiaai ?a®?§c®¤e¬? ®a streambuf.

ios
___________________________________________________________

?« aa ios (? a«Y¤®c aY«i®, ?a®?§c®¤eY ®a YF® ?« aae)
a®¤Ya¦?a a? § aY«i   streambuf.

ios ?¬YYa ¤c  ?a®?§c®¤ea ?« aa : istream (¤«i cc®¤ ) ?
ostream (¤«i cec®¤ ). „aaF®© ?« aa, iostream, ic«iYaai ?a®-
?§c®¤e¬ ?« aa®¬ aa §a®a istream ?ostream ca«Y¤aac?Y ¬®-
¦YaacY®F®  a«Y¤®c ?i:

class ios;
class istream : virtual public ios;
class ostream : virtual public ios;
classiostream : public istream, public ostream;

?a®¬Y a®F®, aaeYaacaYaaa? ?« aa  withassign, ic«iie?aai
?a®?§c®¤e¬? ?« aa ¬? ®a istream, ostream ? iostream:

class istream_withassign : public istream;
class ostream_withassign : public ostream;
class iostream_withassign : public iostream;

?« aae ?®a®?®c
___________________________________________________________

– ?« aa ios a®¤Ya¦?a ?YaY¬YeY a®aa®i?i ¤«i ?aYaaeY©-
a  a streambuf ? ®!a !®a?? ®e?!®?.

– ?« aa istream ?®¤¤Ya¦?c Ya ? ? ae®a¬ a?a®c eY, a ? ?

– 155 –
Yae®a¬ a?a®c eY ?aY®!a §®c ?i ?®a®?®c a?¬c®«®c, ?§c«Y? Y-
¬ea ?§ streambuf.

– ?« aa ostream ?®¤¤Ya¦?c Ya ? ? ae®a¬ a?a®c eY, a ? ?
Yae®a¬ a?a®c eY ?aY®!a §®c ?i ?®a®?®c a?¬c®«®c, ?®¬Ye Y-
¬ea c streambuf.

– ?« aa iostream ®!eY¤?iYa ?« aae istream ? ostream
¤«i ¤ca ?a c«Yea ®?Ya ae?©, c ?®a®aea ®¤? ?®a®? ¤Y©aacaYa
? ? ? ?aa®c??, ? ? ? ?a?Y¬??.

– ˜a®?§c®¤eY ?« aae withassign ®!Ya?Yc?c ia cYaeaY
?aY¤®?aY¤Y«Yea “aa ¤ aaea” ?®a®? : cin, cout, cerr ?
clog, ®??aec Y¬eY c a«Y¤aieY¬ a §¤Y«Y. ?« aae withassign ¤®-
! c«iia ? a®®acYaaacaie?¬ ! §®ce¬ ?« aa ¬ ®?Ya ae?? ?a?ac®Y-
?i, a«Y¤aie?¬ ®!a §®¬:

class istream_withassign : public istream (*
istream_withassign();
istream& operator=(istream&);
istream& operator=(streambuf*);
*)

?   «®F?c® ¤«i ostream_withassign ?
iostream_withassign.

?« aa®¬ ?®a®?   §ec Yaai «i!®© ?« aa, ?a®?§c®¤e© ®a
?« aa®c istream ? ostream.

—YaeaY aa ¤ aaea ?®a®? 

˜a®Fa ¬¬e ‘++  c? iaai a cYaeai¬i ?aY¤®?aY¤Y«Ye¬?
®a?aeae¬? ?®a®? ¬?, ®!eic«Ye¬? ? ? ®!eY?ae ?« aa®c
withassign c iostream.h a«Y¤aie?¬ ®!a §®¬:

extern istream_withassign cin;
extern ostream_withassign cout;
extern ostream_withassign cerr;
extern ostream_withassign clog;

?a ?®aaaa?a®aece§ec iaai cai??© a § ?a? c?«icY??
iostream.h, ® ae ?a?cYa? i ??ae? «?§ ae?i ce?®«iYaai a®«i?®
®¤? a §.

—YaeaY aa ¤ aaea ?®a®?  ce?®«iia a«Y¤aieYY:

cin ‘a ¤ aae© cc®¤ (¤Ya?a??a®a ae ©«  0)
(‘®®acYaaacaYa stdin)

cout ‘a ¤ aae© cec®¤ (¤Ya?a??a®a ae ©«  1)
(‘®®acYaaacaYa stdout)

cerr ‘a ¤ aae© cec®¤ ®e?!®? (¤Ya?a??a®a ae ©«  2).
cerr !aaeYa?§aYaai ?®!«®c®; ®c?aa?  !aaeYa  ?a®?aa®¤?a ?a?
? ¦¤®© ®c®© caa c?Y
(‘®®acYaaacaYa stderr)

clog „ e© ?®a®? ?aY¤aa c«iYa a®!®© ?®«®aaii !aaeYa?-
§aY¬ai cYaa?i cerr.

? ? ? c ‘, ce ¬®¦YaY ?YaY § c?ai ia? aa ¤ aaeY ?¬Y-
    ¤aaF?Y ae ©«e ?«? a?¬c®«ieY !aaeYae ?®a«Y § Faa§??
?a®Fa ¬¬e.
‚ec®¤

‚ec®¤ ?®a®?  ®aaeYaac«iYaai®?Ya a®a®¬ caa c??,?«? ?®¬Y-
eY?i, - 156 - a ae?i a¤c?F  c«Yc® - 157 - int i = 1; cout - 158 - showbase = 0x0080, // ?®? § ai   cea®¤Y a? § aY«i // a?aaY¬e ac?a«Y?i showpoint = 0x0100, // ?®? § ai ?®§?ae?i ¤Yaia?c®© a®c?? // (  cea®¤Y) uppercase = 0x0200, // cec®¤ eYaa ¤ae a?a?cea § cY?© // !a?c ¬? cYaaYF® aYF?aaa  showpos = 0x0400, // ?®? § ai § ? "+" ¤«i ?®«®¦?aY«iea // c?aY« scientific = 0x0800, // ?a?®«i§®c ai § ??ai c?aY« a ?« c - // ieY© a®c?®© a cec®¤®¬ i?a?®Yae … //  ?a?¬Ya, 12345E2 fixed = 0x1000, // ?a?®«i§®c ai § ??ai c?aY« a ?« c - // ieY© a®c?®© a??  123.45 unitbuf = 0x2000, // aa?a ?Y caYa ?®a®?®c ?®a«Y caa c?? stdio = 0x4000, // aa?a ?Y stdout ? stderr ?®a«Y // caa c?? *); ˜ §a¬YYaai, ia?ae« F?  a«Y¤aiaai ?a®?§c®¤e¬? ?« aa ¬? ostream ? istream. ˜a?®aaaaaac?? a?Yae? «iea ¤Y©aac?© ?®«i- §®c aY«iae« F?aaa  c«?c iaai a ??¬ ®!a §®¬, ca®!e ce?®«i- «®ai ?®? § ®Y c?a?¬Ya a ceeY ae®a¬ a?a®c ?Y ?® a¬®«c ?i. ‘aeYaacaia aea?ae??, ?®§c®«iie?Y aaa ®c?Y,?a®cYa?a ? a!a®aae- « F®cae®a¬ a , ? ? ?® ®a¤Y«i®aa?, a ? ? aci§ e¬? Faa?? ¬?. ˜Y?®a®aeY ae« F?  ca®¬ a?cYa?? ®c?e iaai ?®a«Y ? ¦¤®F® cc®¤ / cec®¤ . ?a®c ?Y a?aaY¬e ac?a«Y?i ?a? ?aY®!a §®c ?ia ___________________________________________________________ ˜® a¬®«c ?i caa c? ?aYFa «iea a??®c ce?®«iYaai c ¤Yaia?c®© § ??a?. ˜a® ¬®¦® ?§¬Y?ai a®®acYaaacaie?¬? aaa - ®c? ¬? ae« F®c ios::dec, ios::oct ? ios::hex (a¬. a §¤Y« "¬ ??a«ia®ae"). …a«?caY ia? ae« F? a cea«i (?® a¬®«c ?i), a® caa c?  ce?®«iYaai c ¤Yaia?c®¬ ae®a¬ aY. ??a?  ___________________________________________________________ ˜® a¬®«c ?i caa c?? cec®¤ia ¬??¬ «i®Y c?a«® a?¬c®- «®c, ?®a®ae¬? ¬®¦Ya !eai?aY¤aa c«Y ®?Ya ¤ ?a c®© c aa?. „«i a®F®, ca®!e ?§¬Y?ai ia® a¬®«c ?Y, ¬®¦® ?a?®«i§®c ai a¤®!eY aea?ae?? § ¤ ?i e?a?e cec®¤ : int ios::width(int w); // aaa  c«?c Ya ?®«Y e?a?e c w // ? c®§ca e Ya ?aY¤e¤aeai e?a?a int ios::width(); // c®§ca e Ya aY?aeai e?a?a -- // Y c®ai ?? ??a ?§¬YY?© ‡ cY?Ywidth ?® a¬®«c ?i a c® a«i, ca® i?c?c «Ya® cec®¤a !Y§ ¤®?®«?aY«iea § ?®«?aY«Y©. ˜Ya«Yc i e?a?  ®§-  c Ya, ca® caa c?? !a¤aa ce?®«iai cec®¤ Y a¦Y § ¤ ®© e?a?e, ??a? Y®!a®¤?¬®aa?!a¤aa ?a?®«i§®c e § ?®«?aY«? ¤® ia®© e?a?e. ?a¬Ya?¬, ca®aaYcY?Y e?a?e ?a? ia®¬ Y ce?®«- iYaai: Ya«? a? §  i e?a?  ¬YieY ae ?a?cYa?®F® c?a«  a?¬- c®«®c¤«i ?aY¤aa c«Y?i cec®¤ , a® ®  !a¤Ya ?a®?F®a?a®c   (? ? ?a? width, aaa ®c«Y®© a c®© a«i). ˜ ?a?¬Ya, int i = 123; int old_w = cout.width(6); cout - 159 -   ®c?e Yaai c ®«i, a ? ca® c int i, j; ... cout.width(4); cout >dec a?a®c ?i a ¤Yaia?ce¬?
?aY®!a §®c ?i¬?

hex outs>hex a?a®c ?i a eYaa ¤ae a?-
a?ce¬? ?aY®!a §®c ?i¬?

oct outs>oct a?a®c ?i a c®ai¬Ya?ce¬?
?aY®!a §®c ?i¬?

– 160 –
ws ins>>ws ?§c«YcY?Y ?a®!Y«iea
a?¬c®«®c

endl outs>resetiosflags(l) ?c?aa?  ae®a-
¬ aea !?a®c outs>setiosflags(l) “aa ®c?  ae®a¬ a-
ea !?a®c outs>setfill(n) “aa ®c?  a?¬c®« -§ –
?®«?aY«iouts>setprecision(n) “aa ®c?  a®c-
®aa? ?aY¤aa c«Y?i outs>setw(n) “aa ®c?  e?a?e ?®«i
outs - 161 - int i = 123; cout.fill("*"); cout.width(6); cout >, ?  §ec Yaai ®?Ya ae?Y©
?§c«YcY?i, ?«? ?§c«YcY?Y¬. ??Ya ae?i >> ®!Ya?Yc?c Ya !®«YY
?®¬? ?aai ? c?a Y¬ai  «iaYa a?ca aY¬Y©aaca aea?ae?© scanf c
stdio (®  a ?¦Y «aceY § e?eY  ®a ®e?!®?). ‹Yce© ®?Ya ¤ >>
?aY¤aa c«iYa a®!®© ®!eY?a a??  ?« aa  istream. ? ? ? ¤«i ce-
c®¤ , ?a ce© ®?Ya ¤ ¬®¦Ya !eai «i!®F® a?? , ¤«i ?®a®a®F®
®?aY¤Y«Y cec®¤ ?®a®?®¬.

– 162 –

‚aY caaa®YeY a??e, ?YaYc?a«YeY ceeY¤«i cec®¤ , a ?-
¦Y ?¬Yia ?aY¤®?aY¤Y«YeY ®?Ya ae?? ?§c«YcY?i. ??Ya ae?i >>
¬®¦Ya !eai a ?¦Y?YaYFaa¦Y  ¤«i cc®¤  ?®a®?®¬ c e?a a®!a-
acYea a??®c ¤ ea. ??Ya ae?i >>,?YaYFaa¦Y i ¤«i a?? 
type,  §ec Yaai ?§c«YcY?Y¬ type. ˜ ?a?¬Ya,

cin >> x;

cc®¤?a § cY?Y ?§ cin (aa ¤ aae© ?®a®? cc®¤ , ®!ec®
 ?a c«iY¬e© a ?« c? aaae) c x. ”a?ae?? ?aY®!a §®c ?i ?
ae®a¬ a?a®c ?i § c?aia ®a a??  x, ®a a®F®, ? ??¬ ®!a §®¬ ®?-
aY¤Y«Y® ?§c«YcY?Y,   a ?¦Y ®a aaa ®c®? ae« F®c a®aa®i?i
ae®a¬ a .

˜® a¬®«c ?i >> ®?aa? Ya ?a®!Y«ieY a?¬c®«e (? ? ®?aY-
¤Y«Y® aea?ae?Y© isspace c ctype.h),   § aY¬ ac?aec Ya a?¬c®-
«e, a®®acYaaacaie?Y a??a®!eY?a  cc®¤ . ˜a®?aa? ?a®!Y«iea
a?¬c®«®c a?a c«iYaai ae« F®¬ ios::skipws c ?YaYc?a«?¬®© ?YaY-
¬Y®© a®aa®i?© ae®a¬ a  (a¬. “”®a¬ a?a®c ?Y cec®¤ ”  
aaa.170 ®a?F? « ). ”« F skipws ®!ec® aaa  c«?c Ya ?a®?aa?
?a®!Y«iea a?¬c®«®c. ?c?aa?  ia®F®ae« F  ( ?a?¬Ya, ?a??®¬®-
e?setf)ce?«ic Ya ?a®?aa? ?a®!Y«iea a?¬c®«®c. ?a¬Ya?¬ a ?¦Y
a?Yae? «ie©¬ ??a«ia®a “?a?Y¬?? “, ws, ?®a®ae© ?®§c®«iYa
?F®a?a®c ai ?a®!Y«ieY a?¬c®«e (a¬. a !«?aea 3.1).

?§¬YY?Y ?§c«YcY?©
___________________________________________________________

? ? ? c a«ac Y > ®!« ¤ Ya ac®©aac®¬  aa®-
ae? a?c®aa? a«Yc  ? c®§ca e Ya «Yce© ®?Ya ¤. ‹Yce© ®?Ya ¤
ic«iYaai aae«?®©   ®!eY?a istream, ¤«i ?®a®a®F® !e«  ce§c –
  ¤  i ®?Ya ae?i. ˜a® ?®§c®«iYa ®!eY¤?iaic ®¤®¬ ®?Ya a®-
aY Ya?®«i?® ®?Ya ae?© cc®¤ . ˜ aa¬®aa?¬ a«Y¤aie?© ?a?¬Ya:

int i;
double d;
cin >> i >> d;

˜®a«Y¤ii aaa®?  ce§ec Ya ?a®?aa? ?a®!Y«iea a?¬c®«®c;
ae?aeae, ac?aec Y¬eY a® aa ¤ aa®F® aaaa®©aac  cc®¤ (?® a¬®«-
c ?iia® c e  ?« c? aaa ), ?aY®!a §aiaai § aY¬ c® caaaY?©
¤c®?ce© ae®a¬ a ? § ??aec iaai c ?YaY¬Yai i; § aY¬a®c 
?a®?aa? iaai ?a®!Y«ieY a?¬c®«e, ?  ?®Yae ac?aec Yaaic?a«®
a ?« c ieY© a®c?®©, ?aY®!a §aYaai ? § ??aec Yaai c ?YaY¬Y-
ai d.

?§c«YcY?i ¤«i caaa®Yea a??®c
___________________________________________________________

?§c«YcY?i ¤«i caaa®Yea a??®c ¤Y«iaai  aa? ? aYF®-
a??: ?aYFa «ieY,a ?« c ieY© a®c?®© ? aaa®?®ceY. ? ¦¤®Y ?§
?a ®??a ® ?¦Y, c a«Y¤aie?a a §¤Y« a. „«i caYa c?a«®cea
a??®c c a«ac Y, Ya«??Yace©Y-?a®!Y«ie© a?¬c®« Y ic«iYaai
ae?aea®© ?«? § ?®¬ (?«? ¤Yaia?c®© a®c?®© ¤«i ?aY®!a §®c ?©
a ?« c ieY© a®c?®©), ?®a®? cc®¤?a a®aa®i?Y ®e?!?? (ia® ®??-
a ®   aaa.177 ®a?F? « ) ? c?«®ai ¤® a!a®a  a®aa®i?i
®e?!?? «i!®© ¤ «iY©e?© cc®¤ § ?aYeY.

?aYFa «ieY ?§c«YcY?i

„«i a??®c short, int ? long (signed ? unsigned) ¤Y©a-
ac?Y ®?Ya ae?? >> ?® a¬®«c ?i § ?«ic Yaaic ?a®?aa?Y Y-?a®-
!Y«ieaa?¬c®«®c ? ?aY®!a §®c ?? ?aYFa «i®F® § cY?i ?a-
aY¬ caY?i a?¬c®«®c cc®¤  ¤® aYa ?®a, ?®?  Y caaaYa?aai
a?¬c®«, ?®a®ae© Y ¬®¦Ya ic«iaiai ¤®?aaa?¬®© c aaii ?aY¤a-
a c«Y?i ¤ ®F® a?? . ”®a¬ a a a?®§ c Y¬ea ?aYFa «iea

– 163 –
§ cY?© a®a ¦Y, ca® ? ¤«i aeY«®c?a«Yea ?®aa a ‘++, § ?a-
?«icY?Y¬ aeY«®c?a«Yea aaaeae??a®c. (‘¬. aaa.11 ®a?F? « ).

˜aY¤a?aY¦¤Y?Y

…a«? ce § ¤ «? ?aY®!a §®c ?i a??  hex, dec ?«? oct, a®
?¬Y® a ??YaY§a«ia ae ce? ?®«ac?aY. 0x10 aa ®c?aai0 c ¤Y-
aia?c®¬ ?«? c®ai¬Ya?c®¬ ?aY¤aa c«Y??; 010 aa ®c?aai 10 c
¤Yaia?c®¬ ?aY¤aa c«Y?? ? 16 c eYaa ¤ae a?a?c®¬.

?§c«YcY?i a ?« c ieY© a®c?®©

„«i a??®c float ? double ¤Y©aac?Y ®?Ya ae?? >> a®aa®?a c
?a®?aa?Y ?a®!Y«iea a?¬c®«®c ? ?aY®!a §®c ?? § cY?i a
?« c ieY© a®c?®© ?aaY¬ caY?i cc®¤?¬ea a?¬c®«®c ¤® aYa ?®a,
?®?  Y caaaYa?aai a?¬c®«, ?®a®ae© Y ¬®¦Ya ic«iaiai c aaii
?aY¤aa c«Y?ic?a«  a ?« c ieY© a®c?®©. ”®a¬ a a a?®§ c Y¬ea
§ cY?© a ?« c ieY© a®c?®© a®a ¦Y, ca® ? ¤«i ?®aa a a
?« c ieY© a®c?®© ‘++, §  ?a?«icY?Y¬ aaaeae??a®c. (‘¬. aaa.16
®a?F? « ).

‘?¬c®«ieY ?§c«YcY?i

„«i a??  char (signed ?«? unsigned) ¤Y©aac?Y ®?Ya ae??
>> a®aa®?a c ?a®?aa?Y?a®!Y«iea a?¬c®«®c ? § ??a? a«Y¤aieYF®
(Y-?a®!Y«i®F®) a?¬c®« . …a«? c ¬ aaY!aYaai?a®cYaai a«Y¤ai-
e?© a?¬c®«, Yc ¦®, ic«iYaai «? ® ?a®!Y«ie¬ ?«? Ya, a®
¬®¦® ?a?®«i§®c ai ®¤a ?§ aea?ae?©-?®¬?®Ya®c get:

char ch;
cin.get(ch); // ch aaa  c«?c Yaai   a«Y¤aie?© a?¬c®«
?®a®?  // ¤ ¦Y Ya«? ia® ?a®!Y«ie© a?¬c®«

”a?ae?? get ¤«i cc®¤  ?Fa ia aa ¦Y a®«i, ca® aea?ae??
put¤«i cec®¤ . ‘«Y¤aie?© c a? a get ?®§c®«iYa a?a c«iai
c?a«®¬ ?§c«Y? Y¬ea a?¬c®«®c, ?a a §¬YeY?Y¬ ? ®?®Yce¬ a?¬-
c®«®¬:

istream& istream::get(char *buf, int max, int term=’\n’);

˜a  aea?ae?i ac?aec Ya a?¬c®«e ?§ ca®¤®F® ?®a®?  c a?¬-
c®«ie© ¬ aa?c buf ¤® aYa ?®a, ?®?  Y !a¤Ya ac?a ® max-1
a?¬c®«®c, «?!® ?®?  Y caaaYa?aai a?¬c®«, § ¤ e© term, c
§ c?a?¬®aa? ®a a®F®, ca® ?a®?§®©¤Ya a ieY. ‡ cYae ie?©?aa-
a®©a?¬c®«¤®! c«iYaai  ca®¬ a?cYa??. ˜® a¬®«c ?iaYa¬? a®a®¬
(?®a®ae© Y aaY!aYaai § ¤ c ai) ic«iYaai a?¬c®« ®c®© aaa®??
(‘\n’). ‘ ¬ aYa¬? a®a c ¬ aa?c buf Y ac?aec Yaai ? ?§
istream Y a¤ «iYaai. ? aa?c buf ¤®«¦Y ?¬Yai a §¬Ya ? ? ¬?-
?¬a¬ max a?¬c®«®c.

˜®   «®F?? a aea?ae?Y©-?®¬?®Ya®¬ ostream write (a¬.
aaa.170 ®a?F? « ) ¬®¦® ?a®c?a ai “aeaeY” ¤c®?ceY ¤ eY
a«Y¤aie?¬ ®!a §®¬:

cin.read ( (char*)&x, sizeof(x) );

„«i a??  char* (a aa¬ aa?c Y¬®F® ? ? aaa®? ) ¤Y©aac?Y
®?Ya ae?? >> a®aa®?a c ?a®?aa?Y ?a®!Y«ieaa?¬c®«®c ? § ??a?
a«Y¤aie?a (Y-?a®!Y«iea) a?¬c®«®c ¤® aYa ?®a, ?®?  Y
caaaYa?aai a«Y¤aie?© ?a®!Y«ie© a?¬c®«. ‡ aY¬ ¤®! c«iYaai
§ cYae ie?© a«Yc®© (0) a?¬c®«.‘«Y¤aYa ?aY¤eic«iai®aa®a®¦-
®aai ? ?§!YF ai “?YaY?®«Y?i” aaa®??. ??a?  ?® a¬®«c ?i,
a c i a«i (®§ c Ya, ca® ?aY¤Y«i®Y § cY?Y Y § ¤ ®),
¬®¦Ya !eai ?§¬YY  ?a? ?®¬®e? setw a«Y¤aie?¬ ®!a §®¬:

– 164 –
char array[SIZE];

// ??ae? «?§ ae?i ¬ aa?c 

cin.width(sizrof(array));
cin >> array // ?®§c®«iYa ?§!Y¦ ai ?YaY?®«Y?i

‚ a«ac Y «i!®F® cc®¤ caaa®Yea a??®c, Ya«? ?®Yae cc®¤ 
caaaYa?aai a YY ?Yac®F® Y-?a®!Y«i®F® a?¬c®« , c¬?eYibuf
?cYF® § ??a ® Y !a¤Ya,   a®aa®i?Y istream !a¤Ya aaa ®c-
«Y® a ce¬ “®a? §a”. ’ ??¬ ®!a §®¬, Ya«? ¬?eYi !e«  Y
??ae? «?§?a®c  , a® ®  ? ®aa Yaai Y ??ae? «?§?a®c ®©.

”a?ae?i c®§ca eY?i
___________________________________________________________

”a?ae?i-?®¬?®Ya

istream istream::putback(char c);

c®§ca a?a ®!a a® c istream ®¤? a?¬c®« c; Ya«? ia®a
a?¬c®« Y ¬®¦Ya !eai ?®¬YeY ®!a a®, a® aaa  c«?c Yaai
a®aa®i?Y ?®a®?  “®a? §”. ‘«Y¤aie i ?a®aa i ?®¤?a®Fa ¬¬  ce-
?®«iYa ac?aec ?Y ?¤Ya?ae?? a®a  ‘++ a® aa ¤ aa®F® aaa-
a®©aac  cc®¤ :

void getident (char *s /* ai¤  ?®¬Ye Yaai ?¤Ya?ae?? a®a
*/ )
(*
char c = 0; // § e?a  ®a ?®ae  ae ©« 
cin >> c; // ?a®?aa? ?a®!Y«iea a?¬c®«®c
if (isalpha(c) \!\! c == ‘_’)
do (*
*s++ = c;
c = 0; // § e?a  ®a ?®ae  ae ©« 
cin.get(c);
*) while (isalnum(c) \!\! c ==’_’);
*s = 0; // aYa¬? a®a aaa®??
if (c)
cin.putback(c); // ®¤? a?¬c®« caYF¤  «?e?©
*)

‚c®¤ a??®c, ®?aY¤Y«iY¬ea ?®«i§®c aY«Y¬
___________________________________________________________

‚e ¬®¦YaY a®§¤ c ai ?§c«YcY?i ¤«i ®?aY¤Y«Yea c ¬?
a??®c a ??¬¦Y ®!a §®¬, ? ? ia®¤Y« Yaai a® caa c? ¬?. ?a?®«i-
§ai ?ae®a¬ ae?i ® aaaa?aaaY, ®?aY¤Y«Y®© ceeY, ®?Ya ae?i >>
¬®¦Ya !eai ?YaYFaa¦Y  a«Y¤aie?¬ ®!a §®¬:

istream& operator >> (istream& s, info& m);
(*
s >> m.name >> m.val >> m.units;
return s;
*)

(‚ aY «iea ?a??« ¤ea ?a®Fa ¬¬ a, a §a¬YYaai, ce ¬®¦Y-
aY ¤®! c?ai ?®¤e ¤«i ?a®cYa?? ®e?!®? cc®¤ ). „«i ac?aec ?i
aaa®?? cc®¤ , a ?®©? ? “capacity 1.25 liters”, ¬®¦® ?a?®«i-
§®c ai a«Y¤aieai § ??ai:

cin >> m;
??ae? «?§ ae?i ?®a®?®c

˜®a®?? cin, cout, cerr ? clog ??ae? «?§?aaiaai ? ®a?ae-
c iaai ?a? § Faa§?Y ?a®Fa ¬¬e ? § aY¬ ?®¤?«ic iaai ? a®®a-
cYaaacaie?¬ aa ¤ aae¬ ae ©« ¬. ??ae? «?§ ae?i

– 165 –
(?®aaaa?a®c ?Y) ?®a®?  ®§ c Ya  aa®ae??a®c ?Y YF® a !aaeY-
a®¬ ?®a®? . ?« aa ostream ?¬YYa a«Y¤aie?© ?®aaaa?a®a:

ostream::ostream(streambuf*);

?®a®ae© ??ae? «?§?aaYa ?YaY¬YeY a®aa®i?i ios ?  aa®-
ae??aaYa !aaeYa ?®a®?  a ®!eY?a®¬ ostream. ?®aaaa?a®a istream
a !®a Ya   «®F?ce¬ ®!a §®¬. ‚ !®«ie?aacY a«ac Yc c ¬ Y
aaY!aYaai a?Yae? «i® a aa¬ aa?c ai c®?a®a ¬? !aaeYa?§ ae??.

˜?!«?®aY?  iostream ?aY¤« F Ya ¬®¦Yaac® ?« aa®c, ?a®-
?§c®¤ea ®a streambuf, ostream ? istream, ca® ¤ Ya e?a®??©
ce!®a ¬Ya®¤®c a®§¤ ?i ?®a®?®c a a §«?ce¬? ?aa®c?? ¬? ?
?a?Y¬?? ¬?,   a ?¦Y a §«?ce¬? ¬Ya®¤ ¬? !aaeYa?§ ae??.

‘«Y¤aie?Y ?« aae ic«iiaai ?a®?§c®¤e¬? ®a ?« aa 
streambuf:

filebuffilebuf ?®¤¤Ya¦?c Ya cc®¤/cec®¤ cYaY§ ¤Ya?a??a®ae
ae ©«®c. ”a?ae??-?®¬?®Ya ?« aa  ?®¤¤Ya¦?c ia
aea?ae?? ®a?aea?i, § ?aea?i ae ©«®c ? ?®?a? .

stdiobufstdiobuf ?®¤¤Ya¦?c Ya cc®¤/cec®¤ cYaY§ aaaa?aaae
stdio FILE ? ?aY¤ § c Yaai ?a?«ic?aY«i® ¤«i
a®c¬Yaa?¬®aa? ?®¤®c ‘++ ?a? ?a ?®¬!??a®c ?? a
aaeYaacaie?¬? ?a®Fa ¬¬ ¬? ‘.

strstreambufstrstreambuf ?®§c®«iYa cc®¤ ? cec®¤ a?¬c®«®c ?§
! ©a®cea ¬ aa?c®c c ? ¬ia?. „c  ¤®?®«?aY«iea
?« aa , istrstream ? ostrstream, ®!Ya?Yc?c ia cc®¤/
cec®¤ a ae®a¬ a?a®c ?Y¬ c ? ¬ia?.

‘?Yae? «?§?a®c eY ?« aae ¤«i cc®¤ /cec®¤  c ae ©« ic«i-
iaai ?a®?§c®¤e¬?:

ifstream ic«iYaai ?a®?§c®¤e¬ ®a istream
ofstream ic«iYaai ?a®?§c®¤e¬ ®a ostream
fstream ic«iYaai ?a®?§c®¤e¬ ®a iostream

˜a? aa??« aa ?®¤¤Ya¦?c ia ae®a¬ a?a®c e© cc®¤/cec®¤ c
ae ©«e ?a? ?®¬®e? !aaeYa®c ae ©«®c (filebuf).

˜a®aa®© cc®¤/cec®¤ c ae ©«

?« aa ofstream  a«Y¤aYa ®?Ya ae?? caa c?? ®aostream,  
ifstream  a«Y¤aYa ®?Ya ae???§c«YcY?i ®aistream. ?? a ?¦Y
®!Ya?Yc?c ia ?®aaaa?a®ae ? aea?ae??-?®¬?®Yae ¤«i a®§¤ ??
ae ©«®c ? ®!a !®a?? cc®¤ /cec®¤  c ia®a ae ©«. ‘«Y¤aYac?«ic ai
fstream.h c® caY ?a®Fa ¬¬e, F¤Y ?a?®«i§aiaai ia? ae ©«e.
˜ aa¬®aa?¬ a«Y¤aie?© ?a?¬Ya, c ?®a®a®¬ ae ©« FILE_FROM ?®??-
aaYaai c FILE_TO:

#include fstream.h

char ch;
ifstream f1(“file_from”);
if (!f1) errmsg(“Cannot open ‘filr_from’ for input”);
ofstream f2(“file_to”);
if (!f2) errmsg(“Cannot open ‘filr_to’ for output”);
while ( f2 && f1.get(ch) ) f2.put(ch);

?e?!??, aci§ eY a ?®a®? ¬?, ?®¤a®!® ®!aa¦¤ iaai  
aaa.181 ®a?F? « .

?a¬Ya?¬, ca® Ya«? ?®aaaa?a®ae ifstream ?«? ofstream Y
¬®Faa ®a?aeai a? § eY ae ©«e, a® aaa  c«?c Yaai a®®acYaa-
acaieYY a®aa®i?Y ®e?!?? ?®a®? .

– 166 –

?®aaaa?a®ae ?®§c®«iia ®!eic?ai ?®a®?ae ©«  !Y§ § ¤ ?i
?¬Y®c ®F® ae ©« . ‡ aY¬ ce ¬®¦YaY  aa®ae??a®c ai ¤ e© ?®-
a®? ae ©«  a ?®?aYae¬ ae ©«®¬:

ofstream ofile; // a®§¤ ?Y cea®¤®F® ?®a®?  ae ©« 

ofile.open(“payroll”); // ?®a®? ofile  aa®ae??aaYaai a
// aeʩǨ payroll
// a !®a  a Y?®a®ae¬ ? a®«Y¬
ofile.close(); // payroll § ?aec Yaai
ofile.open(“employee”); // ?®a®? ofile ¬®¦® ?a?®«i§®-
c ai // ?®ca®a®

˜® a¬®«c ?i ae ©«e ®a?aec iaai c aY?aa®c®¬ aY¦?¬Y.˜a®
®§ c Ya, ca®   cc®¤Y ?®a«Y¤®c aY«i®aai c®§ca a  ? aYa-
??/?YaYc®¤  aaa®?? ?aY®!a §aYaai c a?¬c®« ‘\n’. ˜  cec®¤Y
a?¬c®« ‘\n’ ?aY®!a §aYaai c ?®a«Y¤®c aY«i®aai c®§ca a ? –
aYa??/?YaYc®¤ aaa®??. ‚ ¤c®?c®¬ aY¦?¬Y a ??Y ?aY®!a §®c ?i
Y ce?®«iiaai.

”a?ae?i?®¬?®Ya  ofstream::open ®!eic«iYaai a«Y¤aie?¬
®!a §®¬:

void open(char * name, int=ios::out, int prot=filabuf::
openprot);

? «®F?c®, ®!eic«Y?Y ifstream::open ?¬YYa c?¤:

void open(char * name, int=ios::in, int
prot=filabuf::openprot);

‚a®a®©  aFa¬Ya,  §ec Y¬e©aY¦?¬®¬ ®a?aea?i, ?¬YYa ?®-
? § eY a¬®«c ?i. ?aFa¬Ya aY¦?¬  ®a?aea?i (c®§¬®¦®, aci-
§ e© ®?Ya ae?Y© ?‹? a Ya?®«i??¬? !?a ¬? aY¦?¬ )¬®¦® ic®
§ ¤ ai c a«Y¤aieY© ae®a¬Y:

———————————————————–
˜?a aY¦?¬ „Y©aac?Y
———————————————————–
ios::app„®! c«Y?Y ¤ ea – § ??ai caYF¤  c ?®Yae ae ©« 
ios::ate˜®?a? ?®ae  ae ©«  ?®a«Y ?Yac® c «i®F® ®a?aea?i
ios::in?a?aea?Y   cc®¤ (?®¤a §a¬Yc Yaai ¤«i ifstream)
ios::out?a?aea?Y   cec®¤ (?®¤a §a¬Yc Yaai ¤«i ofstream)
ios::trunc“?ca®¦Y?Y a®¤Ya¦?¬®F® c a«ac Y, Ya«? ae ©«
aaeYaacaYa (?®¤a §a¬Yc Yaai, Ya«? ios::out § ¤ ®, ? ?
ios::ate, ? ios::app Y § ¤ e)
ios::nocreate…a«? ae ©« Y aaeYaacaYa, a® open ¤ Ya ®e?!?a
ios::noreplace …a«? ae ©« aaeYaacaYa, open ¤«i ae ©«®c
cec®¤  ¤ Ya ®e?!?a, Ya«? Y aaa ®c«Ye ate ?«? app
———————————————————–

?Y¬®??  aY¦?¬  !YaYaai ?§ ?YaYc?a«?¬®F® § cY?i open
_mode c ios:

class ios (*
public:
enum open_mode (* in, out, app, ate, nocreate,
noreplace *);
*);

??Ya a®a

ofstream ofile(“data”,ios::app\!ios::nocreate);

?®?ea Yaai ®a?aeai ae ©« DATA   cec®¤ c aY¦?¬Y append;
Ya«? ae ©« Y aaeYaacaYa, ia® ?a?cY¤Ya ? Ya¤ cY. ?ae®a¬ ae?i

– 167 –
®! ia®© Ya¤ cY !a¤Ya ®!®§ cY  a®aa®i?Y¬ ®e?!?? ofile. ‚
a«ac Y a¤ c®F® § cYaeY?i ?®a®? ofile !a¤Ya ¤®! c«Y ? ae ©-
«a DATA. ?« aa fstream (?a®?§c®¤e© ®a ¤caa ?« aa®c ifstream
? ofsrtream) ¬®¦Ya ?a?®«i§®c aiai ¤«i a®§¤ ?i ae ©«®c, ®¤-
®caY¬Y® ?®§c®«iie?a ? cc®¤, ? cec®¤:

fstream inout(“data:,ios::in\!ios::out);
inout > j;

„«i ®?aY¤Y«Y?i aY?aeY© ?®§?ae?? “get” ?«? aY?aeY© ?®§?-
ae?? “put” ae ©«  ¬®¦® c®a?®«i§®c aiai aea?ae?i¬? tellg ?
tellp; ®? ®?aY¤Y«iia ?®«®¦Y?Y c ?®a®?Y, F¤Y!a¤Ya ce?®«Y 
a«Y¤aie i ®?Ya ae?i cec®¤  ?«? cc®¤ :

streampos cgp = inout.tellg(); // cgp – ia® aY?ae i ?®-
§?ae?i get

F¤Y streampos ia® typedef c fstream.h. ”a?ae??-?®¬?®-
Yae seekg ? seekp ¬®Faa a!a aec ai § cY?i aY?aeY© ?®§?-
ae?? get ? put:

inout.seekg(cp); // aaa ®c?  c cp aY?aeY© ?®§?ae??
“put”

‚ a? ae seekp ? seekg ?®§c®«iia ?®«ac?ai ?a?®¬eY ?®§?-
ae?? c ®a®a?aY«iea a¬YeY?ia:

inout.seekg(5,ios::beg); // ?YaY¬YeY?Y cp   5 ! ©a ®a
 c « 
inout.seekg(5,ios::cur); // ?YaY¬YeY?Y cp   5 ! ©a
c?YaY¤
inout.seekp(5,ios::end); // ?YaY¬YeY?Y cp   5 ! ©a ¤®
?®ae 

‚ ¬ ¬®¦Ya ?® ¤®!?aiai a a?Yc a ai ? ?§ac?ai ?®¬¬Ya?-
a®c eY ae ©«e§ F®«®c? , ca®!e a§ ai, ? ? c§ ?¬®aci§ e
a §«?ceY ?« aae ?®a®?®c ? ? ? ®!eic«iiaai ?a aea?ae?? ?®¬?®-
Yae.
‘®aa®i?i ®e?!?? ?®a®?  cc®¤ /cec®¤ 

? ¦¤e© ?®a®? ?¬YYa aci§ ®Y a ?¬ a®aa®i?Y ®e?!??, a.
Y.  !®a !?a®c ®e?!®?, ®!eic«Ye© ? ? ?YaYc?a«?¬®Y § cY?Y
io_state c ?« aaY ios:

class ios (*
public:

// !?ae a®aa®i?i ?®a®? 
enum io_state (*
goodbit = 0x00,
eofbit = 0x01,
failbit = 0x02,
badbit = 0x04,
hardfail = 0x10
*);

*);

?a¬Ya?¬,ca® goodbit c ¤Y©aac?aY«i®aa? Y ic«iYaai c?-
a®¬,   ?aY¤aa c«iYa a®!®© a«Yc®Y § cY?Y, a? §ec ieYY  
a®,ca® ?? ??Y !?ae ®e?!?? Y aaa  c«?c «?ai.

?e?!?? cc®¤ /cec®¤  ?®a®?®¬ aaa  c«?c Ya a®®acYaaacai-
e?© !?a(e), ? ? a? § ® c a !«.3.2.

– 168 –
˜?ae ®e?!®? ios ’ !«?ae  3.2
———————————————————–
˜?a a®aa®i?i …F® a¬ea«
———————————————————–
goodbit …a«? ia®a !?a Y aaa ®c«Y, a® caY c ?®ai¤?Y.

eofbit “?®Yae ae ©« “: aaa  c«?c Yaai, Ya«? istream Y
?¬YYa !®«ieY !?a®c ¤«i ?§c«YcY?i. ˜®a«Y¤aie?Y
?®?ea?? ce?®«?ai ?§c«YcY?Y ?F®a?aaiaai.

failbit “aa  c«?c Yaai, Ya«? ?®a«Y¤ii ®?Ya ae?? cc®¤ /
cec®¤  (?§c«YcY?Y ?«? ?aY®!a §®c ?Y) ®?®c?« ai
Ya¤ cY©. ˜®a«Y a!a®a  ¤ ®F® !?a  ®e?!?? ?®a®?
F®a®c ? ?®a«Y¤aieY¬a ?a?®«i§®c ?i.

badbit “aa  c«?c Yaai, Ya«? ?®a«Y¤ii ?®?ea?  cc®¤ /
cec®¤  ic«i« ai Y¤®?aaa?¬®©. ˜®a®? ¬®¦Ya !eai ?a-
?®«i§®c  (Y caYF¤ ) ?®a«Y a!a®a  aa«®c?i ®e?!??.

hardfail “aa  c«?c Yaai, Ya«? ¤«i ¤ ®F® ?®a®?  caaaYa?-
«®ai Yc®aaa ®c?¬®Y a®aa®i?Y ®e?!??.
———————————————————–

˜®a«Y a®F®, ? ? ?®a®? ?®«ac?« a®aa®i?Y ®e?!??, caY ?®-
?ea?? caa c?? ?«? ?§c«YcY?i ?§ ¤ ®F® ?®a®?  !a¤aa ?F®a?-
a®c aiai ¤® aYa ?®a, ?®?  Y !a¤Ya ?a?a c«Y® aa«®c?Y,
ce§c ceYY a®aa®i?Y ®e?!??,   !?a(e) ®e?!?? ®c?eY(e) (?a?
?®¬®e?,  ?a?¬Ya, aea?ae?? ?®¬?®Ya  ios::clear(i). ”a?ae?i-
?®¬?®Ya ios::clear(i) ae ?a?cYa?? aaa  c«?c Ya !?ae ®e?!??
c a®®acYaaac?? a aeY«®c?a«Ye¬  aFa¬Ya®¬ i, a ? ca®
ios::clear(0) ®c?e Ya caY !?ae ®e?!??, §  ?a?«icY?Y¬
hardfail, ?®a®ae© a ??¬ ®!a §®¬ ®c?eY !eai Y ¬®¦Ya.

?a¬Ya?¬, ca® ®?Ya ae?? caa c?? ? ?§c«YcY?i Y ¬®Faa ?§-
¬Y?ai a®aa®i?i ?®a®?  ?®a«Y a®F®, ? ? ?a®?§®e«  ®e?!? . ?§
ia®F® a«Y¤aYa, ca® a®a®eY© ?a ?a??®© ic«iYaai ?a®cYa?  a®a-
a®i?i ®e?!?? ?®a®?  c a®®acYaaacaie?a a®c? a ?a®Fa ¬¬e. ‚
a !«?aeY 3.3 ?a?cY¤Ye aea?ae??-?®¬?®Yae, ?®§c®«iie?Y ce?®«-
iai ?a®cYa?a? aaa ®c?a !?a®c ®e?!??.

”a?ae??-?®¬?®Yae ¤«i ®!a !®a??
aY?aeYF® a®aa®i?i ?®a®? ’ !«?ae  3.3
———————————————————–
”a?ae?i ?®¬?®Ya „Y©aac?Y
———————————————————–
int rdstate(); ‚®§ca e Ya aY?aeYY a®aa®i?Y ®e?!??

void clear(int i=0); “aa  c«?c Ya !?ae ®e?!?? c i.
˜ ?a?¬Ya, ?®¤ str.clear(ios::failbit\!str.rdstate());

aaa  c«?c Ya failbit ?®a®?  str !Y§ a §aa-
eY?i ?a®c?a !?a®c

int good(); ‚®§ca e Ya Y-a«Yc®Y § cY?Y, Ya«? !?ae
®e?!?? Y aaa  c«?c «?ai; c ?a®a?c®¬ a«ac Y
c®§ca e Ya ®«i

int eof(); ‚®§ca e Ya Y-a«Yc®Y § cY?Y, Ya«?
aaa ®c«Y !?a eofbit istream; c ?a®a?c®¬
a«ac Y c®§ca e Ya ®«i.

int fail(); ‚®§ca e Ya Y-a«Yc®Y § cY?Y, Ya«? !e«
aaa ®c«Y ®¤? ?§ !?a®c failbit, badbit ?«?
hardfail; c ?a®a?c®¬ a«ac Y c®§ca e Ya ®«i.

int bad(); ‚®§ca e Ya Y-a«Yc®Y § cY?Y, Ya«? !e«
aaa ®c«Y ®¤? ?§ !?a®c badbit ?«?

– 169 –
hardfail; c ?a®a?c®¬ a«ac Y c®§ca e Ya ®«i.
———————————————————–

‚e ¬®¦YaY a ?¦Y ?®aa®«?a®c ai  «?c?Y ®e?!®?, ?a®cYaii
?®a®?, ? ? Ya«? !e ® !e« «®F?cYa??¬ cea ¦Y?Y¬:

if (cin >> x) return; // cc®¤ c ?®ai¤?Y
… // §¤Yai c®aaa ®c«Y?Y c a«ac Y ®e?!??
if (!cout) errmsg(“?e?!?  cec®¤ !”);

˜a? ?a?¬Yae ?®¤cYa??c ia i«YF a®aai ‘++. ?« aa ios
?¬YYa a«Y¤aie?Y ®!eic«Y?i aea?ae?? operator:

int operator! ();
operator void* ();

??Ya ae?ivoid*() ®?aY¤Y«Y  ? ? “?aY®!a §aie i” ?®a®? c
a? § aY«i, ?®a®ae© !a¤Ya a cY 0 («®¦i), Ya«? aaa ®c«Ye
failbit, badbit ?«? hardfail, ? Y-a«Yc®¬a § cY?i c ?a®-
a?c®¬ a«ac Y. (?a¬Ya?¬, ca® c®§ca e Y¬e© a? § aY«i ¤®«¦Y
?a?®«i§®c aiai a®«i?® c «®F?cYa??a?a®cYa? a; ¤aaF®F® ?a ?a?-
cYa?®F® ?a?¬YY?i ® Y ?¬YYa). ˜YaYFaa¦Y i ®?Ya ae?i
“Y” (!) ®?aY¤Y«Y  ? ? c®§ca e ie i Y-a«Yc®Y § cY?Y
(?aa? ), Ya«? aaa ®c«Ye !?ae ®e?!?? ?®a®?  failbit,
badbit ?«? hardfail; c ?a®a?c®¬ a«ac Y ®  c®§ca e Ya ®«i
(«®¦i).

?a?®«i§®c ?Y ?®a®?®c ?a®e«ea cYaa?©

•®ai !?!«?®aY?? stream cYaa?© 1.x ? iostreamcYaa??2.0
a §¤Y«iia ¬®F?Y ?¬Y  ?« aa®c ? aea?ae?©? ?aY¤« F ia ¬®F?Y
  «®F?ceY aaY¤aac , ?a aaaa?aaae cY?®a®aea c ¦ea ®!« a-
aia Ya?®«i?® ®a«?ce ¤aaF ®a¤aaF .Turbo C++, a«Y¤®c aY«i®,
aY «?§aYa ¤c  ?®a®?  a a §e¬? !?!«?®aY? ¬? ?ae ©« ¬? § F®-
«®c? . „«i a !®ae aeY«??®¬ a® aa ae¬? ?®¤ ¬?, ?a?®«i§aie?¬?
?®a®??, ce ¤®«¦e c?«ic?ai ae ©« stream.h, ?§!YF ai c?«icY?i
iostream.h ? ce?®«iai ?®¬?®®c?a a® aa a®© !?!«?®aY?®©
stream. „®?®«?aY«i i ?ae®a¬ ae?i ® ?®a®? a cYaa?? 1.a  a®-
¤?aai c ae ©«Y OLDSTR.DOC. ?e a ?¦YaY?®¬Y¤aY¬ c ¬ ®§ ?®-
¬?aiai a ®!eic«Y?i¬? ? ?®¬¬Ya a?i¬? c stream.h.

‚ § c?a?¬®aa? ®a ?« aa®c ? aaY¤aac, ?a?®«i§aY¬ea c e?¬?
aa ae¬? a !®a ie?¬? a ?®a®? ¬? ?a®Fa ¬¬ ¬?, Y ?a?«icY  ?a
aa?Ye i ?®¬??«iae?i ? ce?®«Y?Y a ?a?®«i§®c ?Y¬ ®c®© !?!-
«?®aY?? iostream.

˜Y?®¬Y¤ ae?? ?® ?YaYa®¤a ? ?®a®? ¬ cYaa?? 2.0

?«icYc®Y a §«?c?Y ¬Y¦¤a aa ae¬? ? ®ce¬? ?« aa ¬? ?®a®-
?®c a®aa®?a c a®¬, ca®?®¬?®Yae public aa a®F® ?« aa 
streambuf aY?Yai, c ®c®¬ ?« aaY streambuf, ®!eic«Ye ? ?
protected. …a«? c e aa ae© ?®¤ a ?®a®? ¬? ce?®«iYa ? a ??¬
?®¬?®Ya ¬ ?ai¬eY aae«??, «?!® Ya«? a c a ?¬Yiaai ?a®?§c®¤-
eY ®a streambuf ?« aae, ®?aY¤Y«YeY  ®a®c ??a ??a ?®¬-
?®Ya®c, a® ce ¤®«¦e ?YaYa¬®aaYai a ??Y ?a®Fa ¬¬e, ?aY¦¤Y
cY¬ ®? ?®©¤aa a!?!«?®aY?®© iostream. „aaF®©  a?Y?a, a?®a®!-
e©?®c«?iai   a®c¬Yaa?¬®aai, a®aa®?a c a®¬, ca® aa ae©
streambuf?ai¬®?®¤¤Ya¦?c « ?a?®«i§®c ?Y a?¬c®«iea ¬ aa?c®c
¤«i ae®a¬ a?a®c ?i c ®?Ya a?c®© ? ¬ia?. ‚ a«ac Yiostream
ia  ?®¤¤Ya¦?  ?aY¤?®« F Yaai c ?a®?§c®¤®¬ ?« aaY
strstreambuf, ®!eic«iY¬®¬ c strstream.h.

‘a aeY ?®aaaa?a®ae ?®a®? , § ?aa? ie?Y !aaeYae ae ©«®c,
 ?a?¬Ya

istream instream(¤Ya?a??a®a_ae ©« )4

– 170 –
¤®«¦e !eai § ¬YYe  

ifstream instream(¤Ya?a??a®a_ae ©« );

c ?a®Fa ¬¬ a a ?a?®«i§®c ?Y¬ iostream.

‘a aeY ? ®ceY?« aae ?®a®?®c ?®-a §®¬a c§ ?¬®¤Y©aacaia
a stdio. ˜ ?a?¬Ya, stream.h c?«ic Ya stdio.h,   aa aeY
istream ? ostream ?®¤¤Ya¦?c iaa? § aY«?   aaaa?aaaa stdio
FILE. ‚ a«ac Y iostream stdio ?®¤¤Ya¦?c Yaai cYaY§ a?Yae? «?-
§?a®c e© ?« aa stdiostream, ®!eic«Ye© c stdiostream.h.

‚ aa a®© !?!«?®aY?Y stream ?aY¤®?aY¤Y«YeY ?®a®?? cin,
cout ? cerr aci§ e Y?®aaY¤aacY® a ae ©« ¬? aaaa?aaae FILE
c stdio: stdin, stdout ? stderr. ‚a«ac Yiostream ®? ?®¤?«i-
c iaai ? ¤Ya?a??a®a ¬ ae ©«®c ? ?a?®«i§aia a §«?ceY aaa aY-
F?? !aaeYa?§ ae??. „«i a®F®, ca®!e ?§!Y¦ ai ?a®!«Y¬ a !aaeYa?-
§ ae?Y© ?a? a¬Ye ®¬ ?a?®«i§®c ?? ?®¤®c a stdout ? cout,
¬®¦® § ??a ai:

ios::sync_with_stdio();

F¤Y ce?®«iYaai ?®¤?«icY?Y ?aY¤®?aY¤Y«Yea ?®a®?®c ?
ae ©« ¬ stdio c aY¦?¬Y !Y§ !aaeYa?§ ae??. ?a¬Ya?¬, ®¤ ?®, ca®
a ?®© a?®a®! § c?aY«i® § ¬Y¤«iYa a !®aa cin, cout ? cerr,
a®®acYaaacY®.

‘a a i !?!«?®aY?  stream ?®§c®«i«  Y?®aaY¤aacY®
?a?ac ?c ai ®¤? ?®a®? ¤aaF®¬a;  ?a?¬Ya,

ostream outs; outs = cout; // a®«i?® ¤«i aa aea ?®a®?®c

‚ a«ac Y iostream ¤®?aaa?¬® ?a?ac®Y?Y a®«i?® ?®a®?a c
«Yc®© c aa? cea ¦Y?i ?a?ac®Y?i; ¤aaF?¬? a«®c ¬?, a?? 
istream_withassign ?«? ostream_withassign. …a«? c e  ?a®F-
a ¬¬  a®¤Ya¦?a a ??Y ?a?ac®Y?i, a® ?a ¬®¦® «?!® ?YaY??a ai
a ?a?®«i§®c ?Y¬ aae«®? ?«? a? § aY«Y©, «?!® ?§¬Y?ai ®!eic-
«Y?i:

ostream_withassign outs = cout; // a®«i?® ¤«i ®cea ?®-
a®?®c outs - 172 - ˜YF?aaae a?Yae? «i®F®  § cY?i -------------------------------- SP \! \! a? § aY«i aaY?  -------------------------------- BP \! \! a? § aY«i ! §e -------------------------------- SI \! \! ?aa®¤e© ?¤Y?a -------------------------------- DI \! \! ?¤Y?a  § cY?i -------------------------------- ˜?a.4.1 ˜YF?aaae 8086 ˜YF?aaae ®!eYF®  § cY?i ___________________________________________________________ ˜YF?aaa ¬? ®!eYF®  § cY?i  §ec iaai  ?!®«YY c aa® ?a?®«i§aY¬eY ¤«i aa Y?i ? ¬ ??a«?a®c ?i ¤ e¬? aYF?aa- ae. ? ¦¤e© ?§ ?a ?¬YYa Y?®a®aaia?Yae? «iai aea?ae?i, ac®©a- acYai a®«i?® Y¬a. ˜ ?a?¬Ya, - ˜Y?®a®aeY ¬ aY¬ a?cYa??Y ®?Ya ae?? ¬®Faa !eai ce?®«Y- e a®«i?® a ?®¬®eii ?•. - ‚• ¬®¦® ?a?®«i§®c ai ? ? ?¤Y?ae© aYF?aaa. - ‘• ?a?®«i§aYaai ?®¬ ¤®© LOOP ? Y?®a®ae¬? aaa®?®ce¬? ?®¬ ¤ ¬?. -DX Yic® ?a?®«i§aYaai Y?®a®ae¬? ¬ aY¬ a?cYa??¬? ®?Y- a ae?i¬?. ?¤ ?®, aaeYaacaYa ¬®¦Yaac® ®?Ya ae?©, ?®a®aeY ¬®Faa a c® ce?®«iaiai caY¬? ia?¬? aYF?aaa ¬?; c® ¬®F?a a«ac i- a®? c§ ?¬®§ ¬YiY¬e. ‘YF¬YaeY aYF?aaae ___________________________________________________________ ‘YF¬YaeY aYF?aaae a®¤Ya¦ a  c «ieY  ¤aYa  ? ¦¤®F® ?§ cYaeaYa aYF¬Ya®c. ? ? !a¤Ya ®??a ® c a«Y¤aieY¬ a §¤Y«Y, 16-!?a®c®Y § cY?Y c aYF¬Ya®¬ aYF?a?aY a¤c?F Yaai c«Yc®   4 !?a  (a.Y. a¬®¦ Yaai   16), c aY§a«ia aY cYF® ?®«ac - Yaai 20-!?a®ce©  ¤aYa ¤ ®F® aYF¬Ya . ˜YF?aaae a?Yae? «i®F®  § cY?i ___________________________________________________________ 8086 ?¬YYa Ya?®«i?® aYF?aaa®c a?Yae? «i®F®  § cY?i: - ˜YF?aaae SI ? DI ¬®Faa ce?®«iai ¬®F?Y aea?ae?? aY- F?aaa®c ®!eYF®  § cY?i, ?«ia ®? ¬®Faa !eai ?a?®«i§®c e c ? cYacY ?¤Y?aea aYF?aaa®c. - ˜YF?aaa SP a? §ec Ya   aY?aeai cYae?a aaY?  ? c aa® a®¤Ya¦?a a¬YeY?Y ¤«i aYF?aaa  aaY? . - ˜YF?aaa BP - ia® ca®a?ce© a? § aY«i aaY? , ®!ec® ?a?®«i§aY¬e© ¤«i ?¤Y?a?a®c ?i aaY?  a aeY«ii ¤®aaa?  ?  a- Fa¬Ya ¬ ?«? ¤? ¬?cYa??¬ «®? «ie¬ ?YaY¬Ye¬. ”a?ae?? ‘ ?a?®«i§aia c ? cYaacY ! §®c®F®  ¤aYa   aFa- ¬Ya®c ? ¤? ¬?cYa??a «®? «iea ?YaY¬Yea aYF?aaa - a? § - - 173 - aY«i! §e (‚˜). ˜ a ¬Yaae ?¬Yia ?®«®¦?aY«ieY a¬YeY?i ®a®a?aY«i® ‚˜, § c?aie?Y ®a ¬®¤Y«? ? ¬ia?. ‚˜ caYF¤  a? - §ec Ya  ?aY¤e¤aeYYa®aa Y®Y § cY?Y ‚˜.”a?ae??, Y ?¬Yi- e?Y  aFa¬Ya®c, Y ?a?®«i§aia ? Y a®aa iia ‚˜, Ya«? ®?ae?i StandartStack Frame ("‘a ¤ aae© aaY?®ce© aeaY©¬")  a®¤?aai c a®aa®i?? Off. „? ¬?cYa??Y «®? «ieY ?YaY¬YeY ?¬Yia ®aa?ae aY«ieY a¬YeY?i ®a®a?aY«i® ‚˜. ‘¬YeY?i ia? § c?aia ®a a®F®, a?®«i?® ? ¬ia? !e«® a¦Y a a?aY¤Y«Y® ?YaY¬Ye¬ ia®F® a?? . ˜YF?aaa ae« F®c ___________________________________________________________ 16-!?a®ce© aYF?aaa ae« F®c a®¤Ya¦?a cai Y®!a®¤?¬ai ?- ae®a¬ ae?i ® a®aa®i?? 8086 ? aY§a«ia a a ce?®«Y?i ?®a«Y¤?a ?®¬ ¤. c?aaa «ie© aY¦?¬ 8086 \! c®§®!®c«Y?Y \! \! c«®¦Y i § ¤ c  \! \! \! aa®cYi § e?eY®F® \! \! \! cc®¤ /cec®¤  \! \! \! \! ?YaY?®«Y?Y \! \! \! \! \! ?a?§ ? \! \! \! \! \!  ?a c«Y?i \! \! \! \! \! \! ?aYaec ?Y \! \! \! \! \! \! a §aYeY® \! \! \! \! \! \! \! caaaYYY \! \! \! \! \! \! \! ?aYaec ?Y \! \! \! \! \! \! \! \! § ? \! \! \! \! \! \! \! \! \! ®«i \! \! \! \! \! \! \! \! \! \!?YaY®a a \! \! \! \! \! \! \! \! \! \!§ Y¬®¬ \! \! \! \! \! \! \! \! \! \!\! cYa®aai \! \! \! \! \! \! \! \! \! \!\! \! ?YaY®a \! \! \! \! \! \! \! \! \! \!\! \!\! 31 23 \! \!15\! \! \! \! \!\! 7 \!\! \!0 ----------------------------------------------------------- \! \! \! \! \! \! \! \! \! \! \! \! \! \! \!V\!R\! \!N\!IOP\!O\!D\!I\!T\!S\!Z\! \!A\! \!P\! \!C\! ----------------------------------------------------------- \_____________________________/ \_____/ \_________________/ a®«i?® 80386 80286 caY ?a®aeYaa®ae 80a86 80386 ˜?a.4.2 ˜YF?aaa ae« F®c 8086 ˜ ?a?¬Ya, c ¬ ?® ¤®!?«®ai a§ ai, a cY «? aY§a«ia a ®?Ya ae?? cec?a ?i a«i; ¤«i ia®F® c ¬ ¤®aa a®c® ?a®cYa?ai ae« F a«i (!?a ZaYF?aaa  ae« F®c) Y?®aaY¤aacY® aa §a ¦Y ?®a«Y ce?®«Y?i ?®¬ ¤e; Ya«? ¤ e© ae« F aaa ®c«Y, a® aY§a«ia a ¤Y©aac?aY«i®!e« a cY a«i. ˜a®c?Y ae« F?, a ??Y ? ? ae® F? ?YaY®a  ?«? ?YaY?®«Y?i,   «®F?ce¬ ®!a §®¬ a®- ®!e ia c ¬ ® aY§a«ia a a ce?®«Y?i aYa ?«? ?ea ¬ aY¬ a?- cYa??a ?«? «®F?cYa??a ®?Ya ae?©. ˜a®c?Y ae« F? ?®aa®«?aaia aY¦?¬e a !®ae 8086. ”« F  ?- a c«Y?i a?a c«iYa  ?a c«Y?Y¬ a¬YeY?i aaa®?®cea ?®¬ ¤,   ae« F ?aYaec ?© a?a c«iYa aY¬, a §aYeY® «?cYe?¬  ?? a a- e¬ aaaa®©aac ¬, a ??¬ ? ? ?« c? aaa  ?«? ¬®¤Y¬, caY¬Y® ?a?®aa  c«?c ai ce?®«Y?Y aY?aeYF® ?®¤  ¤«i ®!a«a¦?c ?i c®§?? ie?a a ?a?®aaY!®aaY©. ”« F caaaY?a ?aYaec ?© ?a?®«i§aYaai a®«i?® ?a®Fa ¬¬e¬ ®!Ya?YcY?Y¬, ?aY¤ § cY- e¬¤«i ®a« ¤?? ¤aaF®F® ?a®Fa ¬¬®F® ®!Ya?YcY?i. - 174 - ?!ec® aYF?aaa ae« F®c Y ac?aec Yaai? Y ¬®¤?ae?ae?aaYaai Y?®aaY¤aacY®. ?!ec® ®!a eY?i ? ia®¬a aYF?aaaace?®«iia- ai ?®aaY¤aac®¬ a?Yae? «iea  aaY¬!«Yaea ?®¬ ¤ (a ??a ? ? CLD, STI ? CMC),   a ?¦Y?a? ?®¬®e?  a?ae¬Ya?cYa??a ?«®F?cYa- ??a ?®¬ ¤, ¬®¤?ae?ae?aaie?a ?®?aYaeY ae« F?. ˜®¤®!e¬ ¦Y ®!- a §®¬, a®¤Ya¦?¬®Y ?®?aYaea !?a®c aYF?aaa  ae« F®c c«?iYa   a !®aa a ??a ?®¬ ¤, ? ? JZ, RCR? MOVSB. ˜YF?aaa ae« F®c ae ?- a?cYa????®F¤  Y ?a?®«i§aYaai ? ?  ¤aYa ? ¬ia?,   a®¤Ya¦?a ¤ eY ® a®aa®i?? ? a?a c«Y?? 8086. ‘YF¬Ya ae?i ? ¬ia? ???a®?a®aeYaa®a Intel 8086 ?¬YYa aYF¬Ya?a®c ai  aa?- aY?aaaa ? ¬ia?. ? ?¬YYa ®!e?© ®!eY¬ ? ¬ia? 1 ?!, ® ?®§c®- «iYa ®¤®caY¬Y®  ¤aYa®c ai a®«i?® 64 ?! ? ¬ia?. ’ ?®© ac aa®? ? ¬ia?  §ec Yaai aYF¬Ya®¬; ®aai¤  ?  §c ?Y "aYF- ¬Ya?a®c  i  aa?aY?aaa  ? ¬ia?". - 8086 ?®§c®«iYa a !®aa a cYaeai¬i a §«?ce¬? aYF¬Ya - ¬?: ?®¤®ce¬, ¤ ea, aaY?  ? ca?®¬®F aY«ie¬. ?®¤®ce© aYF- ¬Ya a®¤Ya¦?a ¬ e?eY ?®¬ ¤e ?a®Fa ¬¬e; c aYF¬YaY ¤ ea aa ?aai ?ae®a¬ ae?i; aYF¬Ya aaY?  ?¬YYa, a §a¬YYaai, ®aF - ?§ ae?i ?  § cY?Y aaY? ; ca?®¬®F aY«ie© aYF¬Ya ?a?®«i- §aYaai ¤«i aa Y?i Y?®a®aea ca?®¬®F aY«iea ¤ ea. - 8086 ?¬YYa cYaeaY 16-!?a®cea aYF¬Yaea aYF?aaa  (®¤?   ? ¦¤e© aYF¬Ya) a ?¬Y ¬? CS, DS, SS ? ES; ®? a? - §ec ia   ?®¤®ce© aYF¬Ya, aYF¬Ya ¤ ea, aaY?  ? ca?®¬®- F aY«ie© aYF¬Ya, a®®acYaaacY®. - ‘YF¬Ya ¬®¦Ya a a?®« F aiai c ?a®?§c®«i®¬  ¤aYaY ? - ¬ia? - ?a ?a?cYa?? cY§¤Y. ˜® ?a?c? ¬, ?®a®aeY aa aa c ¬ iae ?® ¬YaY ®§ ?®¬«Y?i a ¬ aYa? «®¬, aYF¬Ya ¤®«¦Y a a- ?®« F aiai c ? ¬ia?,  c? i a  ¤aYa , ?a a®F® 16 (¤Yaia?c- ®Y). ‚ec?a«Y?Y  ¤aYa  ___________________________________________________________ ˜®«e©  ¤aYa c8086 a®aa®?a ?§ ¤caa 16-!?a®cea § cY?©:  ¤aYa  aYF¬Ya  ? a¬YeY?i. ˜aY¤?®«®¦?¬, ca®  ¤aYa aYF¬Ya  ¤ ea - a.Y. § cY?Y c aYF?aaaY DS -- a cY 2F84 (eYaa ¤- ae a?a?c®Y) ? ce ¦Y« YaY cec?a«?ai ae ?a?cYa??©  ¤aYa Y?®a®- a®F® i«Y¬Ya  ¤ ea, ?®a®ae© ?¬YYa § cY?Y 0532 (®a®c ?Y 16) ®a  c «  aYF¬Ya  ¤ ea; ? ? ia® a¤Y« ai? ‚ec?a«Y?Y  ¤aYa  !a¤Ya ce?®«Y® a«Y¤aie?¬ ®!a §®¬: a¦® a¤c?aai c«Yc® § cY?Y aYF¬Ya®F® aYF?aaa    4 !?a  (ia® i?c?c «Ya® ®¤®© eYaa ¤ae a?a?c®© ae?aeaY),   § aY¬ a«®¦?ai a cY«?c?®© a¬YeY?i. ˜®«acY®Y 20-!?a®c®Y § cY?Y? Yaai ae ?a?cYa??©  ¤aYa ¤ ea, ? ? ?®? § ® ?¦Y: aYF?aaa DS (?®a«Y a¤c?F ):0010 1111 1000 0100 0000 = 2F840 a¬YeY?Y: 0000 0101 0011 0010 = 00532 -------------------------------------------------------- ?¤aYa:0010 1111 1101 0111 0010 = 2FD72 “c aa®? ? ¬ia? cY«?c?®© 16 ! ©a  §ec Yaai? a Fa ae®¬, ?®ia®¬a F®c®aia, ca® aYF¬Ya caYF¤   c? Yaai  Fa ?aeY ? - a Fa ae . ˜ c «ie©  ¤aYa aYF¬Ya  caYF¤  ic«iYaai20-!?a®ce¬ c?a- «®¬, ® aYF¬Yae© aYF?aaa ?¬YYa caYF® 16 !?a®c - ?®ia®¬a ¬« ¤e?Y 4 !?a  caYF¤  ?aY¤?®« F iaai a ce¬? a«i. ˜a® ®§ - - 175 - c Ya - ? ? !e«® a¦Y a? § ® - ca®  c «® aYF¬Ya  ¬®¦Ya a®- ¤?aiai a®«i?® c  ¤aYa a ? ¬ia?, ?a aea 16, a.Y.  ¤aYa a, c ?®a®aea ?®a«Y¤?Y 4 !?a  (?«? ®¤? eYaa ¤ae a?a?ce© a §ai¤) a cY a«i. ˜®ia®¬a Ya«? aYF?aaa DS a®¤Ya¦?a § cY?Y 2F84, a®ae ?a?cYa?? aYF¬Ya ¤ ea  c? Yaai c  ¤aYaY 2F840. ‘a ¤ aa i § ??ai  ¤aYa  ?¬YYa ae®a¬a aYF¬Ya:a¬YeY?Y;  ?a?¬Ya, ?aY¤e¤ae?©  ¤aYa ¬®¦® § ??a ai ? ? 2F84:0532. ?a- ¬Ya?¬, ca® ?®a?®«i?a a¬YeY?i ¬®Faa ?YaY?aec aiai, ¤  i ? a  aYF¬Ya:a¬YeY?Y Yic«iYaai a?? «i®©; a«Y¤aie?Y  ¤aY- a  ®a®aiaai ? ®¤®© ? a®© ¦Y a®c?Y ? ¬ia?: 0000:0123 0002:0103 0008:00A3 0010:0023 0012:0003 ‘YF¬Yae¬®Faa (® Y ¤®«¦e) ?YaY?aec aiai. ˜ ?a?¬Ya, caY cYaeaY aYF¬Ya  ¬®Faa  c? aiai a ®¤®F® ? a®F® ¦Y  ¤- aYa ,ca® ®§ c Ya, ca® cai c e  ?a®Fa ¬¬  c aeY«®¬ § ©¬Ya Y !®«YY 64 ?! - ® a®F¤  c ?aY¤Y« a ia®© ? ¬ia? ¤®«¦e ?®¬Ya- a?aiai ? ?®¤e ?a®Fa ¬¬e, ? ¤ eY, ? aaY?. “? § aY«? ? ?®Y ®a®eY?Y ?¬Yia a? § aY«? ? ¬®¤Y«i¬ ? ¬ia? ? Turbo C++? ‘ ¬®Y Y?®aaY¤aacY®Y. ’?? ce!a ®© c ¬? ¬®¤Y«? ? ¬ia? ®?aY¤Y«iYa a?? ?® a¬®«c ?i a? § aY«Y©, ?a?®«i§aY¬ea ¤«i ?®¤  ? ¤ ea (a®aice ¬®¦YaY ic® ®!eic?ai a? § aY«i ?«? aea?ae?i ? ? ?¬Yie?Y a®a ?«? ?®© ?®?aYae© a??, Y§ c?a?¬® ®a aY?aeY© ¬®¤Y«? ? ¬ia?). “? § aY«? !ec ia cYaeaYa a §®- c?¤®aaY©: near (16 !?a®c), far (32 !?a ), huge (a ?¦Y 32 !?a ) ? segment (16 !?a®c). ˜«?¦?Y a? § aY«? (near) ___________________________________________________________ 16-!?a®ce© (near) a? § aY«i ¤«i cec?a«Y?i ?®«®F®  ¤- aYa  aci§ec Yaai a ®¤?¬ ?§ aYF¬Yaea aYF?aaa®c;  ?a?¬Ya, a? § aY«i aea?ae?? a?« ¤ec Ya ac®Y 16-!?a®c®Y§ cY?Y a® a¤c?aae¬ c«Yc® a®¤Ya¦?¬e¬ aYF?aaa  ?®¤®c®F® aYF¬Ya  (CS). ? «®F?ce¬ ®!a §®¬, !«?¦?© a? § aY«i ¤ ea a®¤Ya¦?a a¬Y- eY?Y c aYF¬YaY ¤ ea,  ¤aYaaY¬®¬ aYF?aaa®¬ aYF¬Ya  ¤ - ea (DS). ‘ !«?¦?¬?a? § aY«i¬? «YF?®¬ ??a«?a®c ai, ?®a- ?®«i?a caY  a?ae¬Ya?cYa??Y ®?Ya ae?? a ?¬ ( ?a?¬Ya, a«®¦Y?Y) ¬®¦® ce?®«iai !Y§®a®a?aY«i® ? aYF¬Yaa. „ «i?Y a? § aY«? (far) ___________________________________________________________ „ «i?© (32-!?a®ce©) a? § aY«i a®¤Ya¦?a Y a®«i?® a¬Y- eY?Y ®a®a?aY«i® aYF?aaa , ® a ?¦Y ? (c ®aa «iea 16 !?- a a)  ¤aYa aYF¬Ya , ?®a®ae© § aY¬ ¤®«¦Y !eai a¤c?aa c«Yc® ? a«®¦Y a® § cY?Y¬ a¬YeY?i. ?a?®«i§®c ?Y ¤ «i?a a? § - aY«Y© ?®§c®«iYa ?¬Yaic ?a®Fa ¬¬Y Ya?®«i?® ?®¤®cea aYF¬Y- a®c; ia®, c ac®i ®cYaY¤i, ?®§c®«iYa ?a®Fa ¬¬Y ?aYcee ai 64?. ?®¦® a ?¦Y  ¤aYa®c ai !®«YY 64? ¤ ea. ˜a? ?a?®«i§®c ?? ¤ «i?a a? § aY«Y© ¤«i  ¤aYa ae?? ¤ - ea c ¬ a«Y¤aYa ac?aec ai Y?®a®aeY ?®aYae? «ieY ?a®!«Y¬e, ?®a®aeY ¬®Faa c®§?? ai ?a? ¬ ??a«?a®c ?? a ??¬? a? § aY- «i¬?. ? ?®!eiai«®ai c a §¤Y«Y, ?®acieY®¬ cec?a«Y?i¬ ¤aY- a , ¬®¦Ya aaeYaac®c ai ¬®¦Yaac® ? a a??  aYF¬Ya:a¬YeY?Y,  ¤aYaaie?a ®¤a ? aa ¦Y a®c?a ? ¬ia?. ˜ ?a?¬Ya, ¤ «i?Y a? - § aY«? 0000:0120, 0010†0020 ? 0012:0000 a §aYe iaai ? ®¤®¬a ? a®¬a ¦Y 2-!?a®c®¬a  ¤aYaa. ?¤ ?®, Ya«? a c a !e«? !e aa? - 176 - ?YaY¬Yea a??  ¤ «iYF® a? § aY«i - a,b ? c, a®¤Ya¦ e?a a®- ®acYaaacY® aa? a? § ea § cY?i, a® a«Y¤aie?Y cea ¦Y?i caY ¤ c «? !e § cY?Y "«®¦i": if (a == b) . . . if (b == c) . . . if (a == c) . . . ? «®F?c i ?a®!«Y¬  c®§?? Ya, ?®F¤  c ¬ aaY!aYaai aa c?c ai ¤ «i?Y a? § aY«? ?a? ?®¬®e? ®?Ya ae?© >, >=, b) . . .
if (b > c) . . .
if (a > c) . . .

??Ya ae?? a cYaac  (==) ? Ya cYaac  (!=) ?a?®«i§aia
32-!?a®ceY § cY?i ? ? unsigned long (  Y c c?¤Y ?®«®F®
 ¤aYa  ? ¬ia?). ??Ya ae?? aa cY?i(=, ) ?a?®«i§aia
a®«i?® a¬YeY?Y.

??Ya ae??== ? != aaY!aia caY 32 !?a , ca® ?®§c®«iYa
?®¬?iiaYaa ce?®«iai aa cY?Y a ?aaae¬ (NULL) a? § aY«Y¬
(0000:0000). …a«? ¤«i?a®cYa?? a cYaac  ?a?®«i§®c «®ai a®«i-
?® § cY?Y a¬YeY?i, a® «i!®© a? § aY«i a® a¬YeY?Y¬ 0000
!a¤Ya a cY ?aaa®¬a a? § aY«i, ca® ic® Ya®c? ¤ Ya a aY¬,
ca® ce a®aY«? ?®«ac?ai.

‚ ¦®Y § ¬Yc ?Y
___________________________________________________________

˜a? a«®¦Y?? Y?®a®a®F® § cY?i a¤ «i?¬ a? § aY«Y¬
?§¬YiYaai a®«i?® a¬YeY?Y. …a«? a« F Y¬®Y  aa®«i?® cY«??®,
ca® aa¬¬  ?aYcee Ya FFFF (¬ ?a?¬ «i® c®§¬®¦ i ¤«i a¬YeY?i
cY«?c? ), a® a? § aY«i ?YaY©¤Ya a®c  ?  c «a aYF¬Ya .
˜ ?a?¬Ya, Ya«? a«®¦?ai 1 ? 5031:FFFF, a® aY§a«ia a !a¤Ya a –
cY 5031:0000 (  Y 6031:0000). ˜®¤®!e¬ ¦Y ®!a §®¬, ?a? ce-
c?a ?? 1 ?§ 5031:0000 ?®«ac?aai 5031:FFFF (  Y 5030:000F).

…a«? c ¬ ?® ¤®!?aai ce?®«?ai aa cY?Y a? § aY«Y©, a®
!Y§®? ae© a?®a®! a®aa®?a c a®¬, ca®!e «?!® ?a?®«i§®c ai ¤«i
ia®F® !«?¦?Y a? § aY«? -caY a®¤?¬  ¤aYa®¬aYF¬Ya  – «?!®
®??aec Y¬eY ?¦Y a? § aY«? huge.

“? § aY«? huge
___________________________________________________________

“? § aY«? huge a ?¦Y ?¬Yia a §¬Ya 32 !?a . ? ? ? a? § –
aY«? far, ®? a®¤Ya¦ a ®¤®caY¬Y®  ¤aYa aYF¬Ya  ? a¬YeY-
?Y. ?¤ ?®, c ®a«?c?Y ®a ¤ «i?a a? § aY«Y©, ®? ®a¬ «?§®-
c e, ca® ?®§c®«iYa ?§!Y¦ ai ?a®!«Y¬, aci§ ea a ¤ «i?¬?
a? § aY«i¬?.

—a® a ?®Y ®a¬ «?§®c e© a? § aY«i? ˜a® 32-!?a®ce©
a? § aY«i, ?®a®ae© a®¤Ya¦?ac ac®Y¬  ¤aYaY aYF¬Ya  ¬ ?a?-
¬ «i® c®§¬®¦®Y a ¬ § cY?Y. ˜®a?®«i?a aYF¬Ya ¬®¦Ya  c?-
 aiai cYaY§ ? ¦¤eY 16 ! ©a (10 ?a? ®a®c ?? 16), ia® ®§ –
c Ya, ca® cY«?c?  a¬YeY?i !a¤Ya a c  c?a«a ®a 0 ¤® 15 (®a
0 ¤® F a ®a®c ?Y¬ 16).

„«i ®a¬ «?§ ae?? a? § aY«i ® ?aY®!a §aYaai ?20-!?a®c®-
¬a  ¤aYaa, ?®a«Y cYF® ?a ceY 4 !?a  !Yaaaai c ? cYaacY a¬Y-
eY?i,   «YceY 16 !?a®c – ? ?  ¤aYa aYF¬Ya . ˜ ?a?¬Ya, a? –
§ aY«i 2F84:0532 ¬®¦® a c «  ?aY®!a §®c ai ?  !a®«ia®¬a
 ¤aYaa 2FD72, ?®a«Y cYF® ?®«ac?ai ®a¬ «?§®c e© a? § –

– 177 –
aY«i2FD7:0002. ˜a?cY¤Y¬YeY Ya?®«i?® a? § aY«Y© a ®a¬ «?-
§®c e¬? § cY?i¬?:

0000:01230012:0003
0040:00560045:0006
500D:9407594D:0007
7418:D03F811B:000F

‘aeYaacaYa aa? ?a?c?e, § aa c«iie?Y caYF¤  aa ?ai
a? § aY«i huge c ®a¬ «?§®c ®¬ c?¤Y:

1. ˜®a?®«i?a c a ?®¬ a«ac Y «i!®¬a § ¤ ®¬a  ¤aYaa ? –
¬ia? a®®acYaaacaYa a®«i?® ®¤? c®§¬®¦e©  ¤aYa c c?¤Y aYF-
¬Ya:a¬YeY?Y a??  huge. ˜a® ®§ c Ya, ca® ¤«i a? § aY«Y©
huge ®?Ya ae?? == ? != caYF¤  !a¤aa c®§ca e ai ?a c?«i®Y
§ cY?Y.

2. ?a®¬Y a®F®, ®?Ya ae?? >, >=, - 178 - § aY«?. Medium ?®¤?aai ¤«i !®«ie?a ?a®Fa ¬¬,¤«i ?®a®aea Y aaY!aYaai ¤Ya¦ ai c ? ¬ia? !®«ie®© ®!eY¬ ¤ ea. „«i ?®¤ , ® Y ¤«i ¤ ea ?a?®«i§aiaai ¤ «i?Y a? § - aY«?. ‚ aY§a«ia aY ¤ eY ?«ia aaY? ®Fa ?cYe a §¬Ya®¬ 64?,   ?®¤ ¬®¦Ya § ?¬ ai ¤® 1 ?!. Compact ‹aceY caYF® ?a?®«i§®c ai c aYa a«ac ia, ?®F¤  a §¬Ya ?®¤  YcY«??, ® aaY!aYaai  ¤aYa ae?i !®«ie®F® ®!eY¬  ¤ ea. ‘?aa ae?i, ?a®a?c®?®«®¦ i ®a®a?aY«i® ¬®¤Y«? Medium: ¤ «i?Y a? § aY«? ?a?®«i§aiaai ¤«i ¤ ea, ® Y ¤«i ?®¤ . ‘«Y¤®c aY«i®, ?®¤ §¤Yai ®Fa ?cY 64?,   ?aY¤Y«ie© a §¬Ya ¤ ea - 1 ?!. Large ?®¤Y«? large ?huge ?a?¬Yiiaai a®«i?® c ®cYi !®«ie?a ?a®Fa ¬¬ a. „ «i?Y a? § aY«? ?a?®«i§aiaai ? ? ¤«i ?®¤ ,a ? ?¤«i ¤ ea, ca® ¤ Ya ?aY¤Y«ie© a §¬Ya 1 ?! ¤«i ®!®?a. Huge „ «i?Y a? § aY«? ?a?®«i§aiaai? ? ¤«i ?®¤ , a ? ? ¤«i ¤ ea. Turbo C++ ®!ec® ®Fa ?c?c Yaa §¬Yaaa a?cYa??a ¤ - ea 64?;¬®¤Y«i? ¬ia?huge ®a¬YiYaia® ®Fa ?cY?Y, ?®§c®«ii aa a?cYa??¬ ¤ e¬ § ?¬ ai !®«YY 64?. „«i ce!®a  «i!®©?§ ia?a ¬®¤Y«Y© ? ¬ia? ce ¤®«¦e «?!® c®a?®«i§®c aiai a®®acYaaacaieY© ®?ae?Y© ¬Yi ?aYFa?a®c ®© aaY¤e, «?!® ccYaa? ®?ae?i ?a? § ?aa?Y ?®¬??«ia®a  ?®¬ ¤®© aaa®??. ‘«Y¤aie?Y ?««iaaa ae??(˜?a.4.3 - 4.8) ?®? §ec ia,? ? ce- ?®«iYaai a a?aY¤Y«Y?Y ? ¬ia? ¤«i caYa eYaa? ¬®¤Y«Y© ? ¬ia? Turbo C++. - 179 - ‘YF¬YaeY aYF?aaae: ˜ §¬Ya aYF¬Ya : ?« ¤e?© ^ CS,DS,SS-----> —————————
 ¤aYa ? / \! _TEXT ?« aa ‘CODE’ \! \
? ? \!?®¤ \! ?
? ? \!————————-\! ?
? ? \! _DATA ?« aa ‘DATA’ \! ?
? ? \!??ae? «?§?a®c eY ¤ eY\! ?
? ? \!————————-\! ?
? ? \! _BSS ?« aa ‘BSS’ \! ?
?DGROUP/ \!Y??ae? «?§?a®c . ¤ eY\! \ ¤® 64?
?\ \!————————-\! /
? ? \! ?ac ? \! ?
? ? \!v \! ?
? ? \!————————-\! ? ‘c®!®¤ i
? ? \!?????????????????????????\!-?–®!« aai
?SP(TOS)–?->\!————————-\! ? ? ¬ia?
? ? \!^ \! ?
‘a ae?© ? \ \! aaY?? \!/
 ¤aYa v ˜ c «® SP—-> —————————

˜?a.4.3 ‘YF¬Ya ae?i ¤«i ¬®¤Y«? ? ¬ia? tiny

‘YF¬YaeY aYF?aaae: ˜ §¬Ya aYF¬Ya :
?« ¤e?© ^ CS———–> —————————
 ¤aYa ? \! _TEXT ?« aa ‘CODE’ \!
? \!?®¤ \! ¤® 64?
? DS,SS——–> \!————————-\!
? / \! _DATA ?« aa ‘DATA’ \!\
? ? \!??ae? «?§?a®c eY ¤ eY\! ?
? ? \!————————-\! ?
? ? \! _BSS ?« aa ‘BSS’ \! ?
?DGROUP/ \!Y??ae? «?§?a®c . ¤ eY\! \ ¤® 64?
?\ \!————————-\! /
? ? \! ?ac ? \! ?
? ? \!v \! ?
? ? \!————————-\! ? ‘c®!®¤ i
? ? \!?????????????????????????\!-?–®!« aai
?SP(TOS)–?->\!————————-\! ? ? ¬ia?
? ? \!^ \! ?
? \ \! aaY?? \!/
? ˜ c «® SP—–>\!————————–
? \! ¤ «iii? \! „® ?®ae 
? \! ?ac v \! ? ¬ia?
? \!————————-\! ‘c®!®¤ i
‘a ae?© ? \!?????????????????????????\!—-®!« aai
 ¤aYa v ————————— ? ¬ia?

˜?a.4.4 ‘YF¬Ya ae?i ¤«i ¬®¤Y«? ? ¬ia? small

– 180 –

‘YF¬YaeY aYF?aaae: ˜ §¬Ya aYF¬Ya :
?« ¤e?© ^ —————————
 ¤aYa ? \! _TEXT ?« aa ‘CODE’\! ¤® 64?
? \! sfile?®¤ \!? ¦¤e© sfile
? DS,SS——–> \!—/———————\!
? / \! / _DATA ?« aa ‘DATA’ \!\
? ˜Ya?®«i?® __?__\!_/??ae? «?§?a®c . ¤ eY\! ?
? ——— ? \!————————-\! ?
? \!sfile A\! ? \! _BSS ?« aa ‘BSS’ \! ?
CS->\!sfile B\! ? \!Y??ae? «?§?a®c . ¤ eY\! \ ¤® 64?
? \! \! ? \!————————-\! /
? \!sfile Z\! ? \! ?ac ? \! ?
? ——— ? \!v \! ?
?DGROUP/ \!————————-\! ? ‘c®!®¤ i
?\ \!?????????????????????????\!-?–®!« aai
?SP(TOS)–?->\!————————-\! ? ? ¬ia?
? ? \!^ \! ?
? \ \! aaY?? \!/
? ˜ c «® SP—–>\!————————–
? \! ¤ «iii? \! „® ?®ae 
? \! ?ac v \! ? ¬ia?
? \!————————-\! ‘c®!®¤ i
‘a ae?© ? \!?????????????????????????\!—-®!« aai
 ¤aYa v ————————— ? ¬ia?

˜?a.4.5 ‘YF¬Ya ae?i ¤«i ¬®¤Y«? ? ¬ia? medium

CS a? §ec Ya ®¤®caY¬Y® a®«i?®   ®¤? sfile.

‘YF¬YaeY aYF?aaae: ˜ §¬Ya aYF¬Ya :
?« ¤e?© ^ CS———–> —————————
 ¤aYa ? \! _TEXT ?« aa ‘CODE’ \!
? \!?®¤ \! ¤® 64?
? DS ———-> \!————————-\!
? / \! _DATA ?« aa ‘DATA’ \!\
? ? \!??ae? «?§?a®c eY ¤ eY\! ?
?DGROUP/ \!————————-\! \ ¤® 64?
?\ \! _BSS ?« aa ‘BSS’ \! /
? ? \!Y??ae? «?§?a®c . ¤ eY\! ?
? \ \! \!/
? SS ———> \!————————-\! ‘c®!®¤ i
? \!?????????????????????????\!—-®!« aai
?SP(TOS)—->\!————————-\! ? ¬ia?
? \!^ \!
? \! aaY?? \! ¤® 64?
? ˜ c «® SP—–>\!————————–
? \! ?ac ? \! „® ?®ae 
? \!v \! ? ¬ia?
? \!————————-\! ‘c®!®¤ i
‘a ae?© ? \!?????????????????????????\!—-®!« aai
 ¤aYa v ————————— ? ¬ia?

˜?a.4.6 ‘YF¬Ya ae?i ¤«i ¬®¤Y«? ? ¬ia? compact

– 181 –

˜Ya?®«i?®
———
\!sfile A\!
CS->\!sfile B\!
\! \!
\!sfile Z\! \!————————-\!
? / \! _DATA ?« aa ‘DATA’ \!\
? ? \! ??ae? «?§?a®c . ¤ eY\! ?
?DGROUP/ \!————————-\! \ ¤® 64?
?\ \! _BSS ?« aa ‘BSS’ \! /
? ? \!Y??ae? «?§?a®c . ¤ eY\! ?
? \ \! \!/
? SS ———> \!————————-\! ‘c®!®¤ i
? \!?????????????????????????\!—-®!« aai
?SP(TOS)—->\!————————-\! ? ¬ia?
? \!^ \!
? \! aaY?? \! ¤® 64?
? ˜ c «® SP—–>\!————————–
? \! ?ac ? \! „® ?®ae 
? \!v \! ? ¬ia?
? \!————————-\! ‘c®!®¤ i
‘a ae?© ? \!?????????????????????????\!—-®!« aai
 ¤aYa v ————————— ? ¬ia?

˜?a.4.7 ‘YF¬Ya ae?i ¤«i ¬®¤Y«? ? ¬ia? large

– 182 –

˜Ya?®«i?®
———
\!sfile A\!
CS->\!sfile B\!
\! \!
\!sfile Z\!\!sfile B\! \!————————-\! ‘c®!®¤ i
? \!?????????????????????????\!—-®!« aai
?SP(TOS)—->\!————————-\! ? ¬ia?
? \!^ \!
? \! aaY?? \! ¤® 64?
? ˜ c «® SP—–>\!————————–
? \! ?ac ? \! „® ?®ae 
? \!v \! ? ¬ia?
? \!————————-\! ‘c®!®¤ i
‘a ae?© ? \!?????????????????????????\!—-®!« aai
 ¤aYa v ————————— ? ¬ia?

˜?a.4.8 ‘YF¬Ya ae?i ¤«i ¬®¤Y«? ? ¬ia? huge

’ !«?ae  4.1. aa¬¬?aaYa a §«?ceY ¬®¤Y«?,   a ?¦Y aY-
§a«ia ae ?a aa cY?i ¤aaF a ¤aaF®¬. ˜a? ¬®¤Y«? c aa® Faa?-
??aaiaai c a®®acYaaac?? a aY¬,  a?®«i?® ¬ «e (64?) ?«? cY-
«??? (1?) a §¬Yae ?a ¬®¤a«Y© ?®¤  ? ¤ ea; ˜a? Faa??e
a®®acYaaacaia ai¤ ¬? ?®«®? ¬ a !«. 4.1.

———————————————————–
˜ §¬Ya \! ˜ §¬Ya ?®¤ 
¤ ea \! ————————————————-
\! 64 K \!1 Mb
———————————————————–
\! Tiny (¤ eY, ?®¤e \!
64K\! ?YaY?aec iaai \!
\! ¬ ?a?¬ «ie© a §¬Ya 64?) \!
\! \!
\! Small (!Y§ ?YaY?aea?i \! Medium (¤ eY – small
\! ¬ ?a?¬ «ie© a §¬Ya 128?) \! ?®¤e – large)
\! \!
————————————————————
1Mb\! Compact ( ¤ eY – large \! Large ( ¤ eY ? ?®¤e
\! ?®¤e – small) \! large)
\! \!
\! \! Huge (a ?¦Y ? ? ? large,
\! \! ® ca a?cYa??Y
\! \! ¤ eY >64 K )
————————————————————

– 183 –

‚ ¦®!
?®F¤  ‚e?®¬??«?aaYaY ¬®¤a«i (?aa®¤e© ae ©« a Y?®a®ae¬
?®«?cYaac®¬ ?a®aeY¤aa c Y¬), a® aY§a«ia?aaie?© ?®¤ ¤«i ia®F®
¬®¤a«i Y ¬®¦Ya ?aYcee ai 64?, a.?. ® ¤®«¦Y c¬Ye aiai c
®¤? ?®¤®ce© aYF¬Ya. ˜a® ®aa Yaai ?a c?«®¬, ¤ ¦Y Ya«? ‚e
?a?®«i§aYaY ®¤? ?§ !®«ie?a ?®¤®cea ¬®¤a«Y© (medium, large,
huge). …a«? c e? ¬®¤a«? ®cYi cY«??? ( > 64? ), ‚e ¤®«¦e
a §!?ai ?a   Ya?®«i?® ¬ «Yi??a ?aa®¤ea ae ©«®c, ?®¬??«?-
a®c ai ?a a §¤Y«i®,   ?®a®¬ a®!?a ai c ®¤? ae ©«. ? «®F?c-
e¬ ®!a §®¬, Ya¬®aai   a®, ca® huge ¬®¤Y«i ?®§c®«iYa  !®-
aa aa a?cYa??a ¤ ea ?aYcee ai a §¬Ya 64 ?, caY a c® ®
¤®«¦Y !eai - 184 - ”a?ae?? ? a? § aY«? c ¤ ®© ?a®Fa ¬¬Y ?® a¬®«c ?i !e- c ia !«?¦?¬? ?«? ¤ «i?¬?, c § c?a?¬®aa? ®a ce!a ®© ¬®¤Y- «? ? ¬ia?. …a«? aea?ae?i ?«? a? § aY«i ic«iiaai !«?¦?¬?, a® ®?  ca®¬ a?cYa?? aci§ec iaai a aYF?aaa®¬ CS ?«? DS. ‚ a«Y¤aieY© a !«?aeY ?®? § ®, ? ? ia® ?a®?aa®¤?a. ?a¬Y- a?¬, ca® a §¬Ya a? § aY«i a®®acYaaacaYa ?aY¤Y«i®¬a a §¬Yaa ? ¬ia?, a c®¬a 64? (!«?¦?©, c ?aY¤Y« a aYF¬Ya ) ?«? 1 ?! (¤ «i?©, a®¤Ya¦?a a®!aacYe©  ¤aYa aYF¬Ya ). ’??e a? § aY«Y© ’ !«?ae  4.2 ----------------------------------------------------------- ?®¤Y«i ? ¬ia? “? § aY«? aea?ae?? “? § aY«? ¤ ea ----------------------------------------------------------- Tiny near, _csnear, _ds Small near, _csnear, _ds Medium farnear, _ds Compact near, _csfar Large farfar Huge farfar ----------------------------------------------------------- “? § aY«? ¤ ea ¬®Faa !eai a ?¦Y ®!eic«Ye a ¬®¤?ae?? - a®a®¬ _seg. ˜a® 16-!?a®ceY a? § aY«? aYF¬Ya . ?!eic«Y?Y !«?¦?a ?«? ¤ «i?a aea?ae?© ‚ Y?®a®aea a«ac ia c ¬ ¬®¦Ya § a®aYaiai(?«? ?® ¤®- !?aiai) ?YaY®?aY¤Y«?ai a¬®«c ?Y a??  aea?ae?? ¤«i ¬®¤Y«? ? - ¬ia?, ?®? § ®Y c a !«?aeY 4.1 (aaa.198 ®a?F? « ). ˜ ?a?¬Ya, ce ?a?®«i§aYaY ¬®¤Y«i ? ¬ia? large, ? c ?a®Fa ¬¬Y ?¬YYaai aY?aaa?c i aea?ae?i: double power(double x,int exp) (* if (exp - 185 - c®F® ? Y© ®!a eY?i, ca® ®!Ya?Yc?a ¤ «i?© ce§®c. ‚YaY¬ai ? ?a?¬Yaa aea?ae?? power. •®a®e® a ?¦Y ®!eic?ai power ? ? static, ?®a?®«i?a ?aY¤aa¬ aa?c Yaai ce§ec ai YY a®«i?® ?§ aY?aeYF® ¬®¤a«i. …a«? aea?ae?i !a¤Ya ®!eic«Y  ? ? static, a®?¬i YY Y !a¤Ya ¤®aaa?® ? ®¤®© aea?ae?? cY ¤ - ®F® ¬®¤a«i. ?!eic«Y?Y a? § aY«Y© near, far ?«? huge ’®«i?® ca® !e«? a aa¬®aaYe a«ac ?, c ?®a®aea ¬®¦Ya ?®-  ¤®!?aiai ®!eic?ai aea?ae?ia ¤aaF®© ¬®¤Y«ii ? ¬ia?, Y¦Y«? ®aa «i i c aai ?a®Fa ¬¬e. ‡ cY¬ a® ¦Y a ¬®Y ¬®¦Ya ?® ¤®- !?aiai ¤«i a? § aY«Y©? ˜® aY¬ ¦Y ?a?c? ¬, ca® ? ¤«iaea?ae?©: «?!®¤«i a«aceY?i a a ?aYa?aa?? !eaaa®¤Y©aac?i (®!eic?c near a ¬, F¤Y ?® a¬®«c ?i !e«® !e far), «?!® ¤«i aae«?? §  ?aY- ¤Y«e aYF¬Ya  ?® a¬®«c ?i (®!eic?c far ?«?huge a ¬, F¤Y ?® a¬®«c ?i !ec Ya near). ˜ §a¬YYaai, ?a? ®!eic«Y?? aea?ae?© ?«? a? § aY«Y© a ¤aaF?¬ a??®¬, Y¦Y«? ?® a¬®«c ?i, ?®aYae? «i® ?®ic«iYaai c®§¬®¦®aai ®e?!®?. ˜aY¤?®«®¦?¬, ?¬YYaai a«Y¤aie?© ?a?¬Ya ?a®Fa ¬¬e a ¬®¤Y«ii small: void myputs(s) char *s; (* int i; for (i = 0; s[i] != 0; i++) putc(s[i]); *) main() (* char near *mystr; mystr = "Hello, world\n"; myputs(mystr); *) ˜a  ?a®Fa ¬¬  a !®a Yaa¤®c«Yac®a?aY«i®, a®ai ®!eic«Y- ?Y mystr ? ? near ?§!ea®c®, ?®a?®«i?a caY a? § aY«?, ? ? ?®¤ , a ? ? ¤ ea, !a¤aa near ?® a¬®«c ?i. ?¤ ?®, ca® ?a®?§®©¤Ya, Ya«? ?YaY?®¬??«?a®c ai iaa ?a®Fa ¬¬a a ¬®¤Y«ii ? ¬ia? compact («?!® large ?«? huge)? “? § aY«i mystr c main ®aa Yaai !«?¦?¬ (16-!?a®ce¬). ?¤ - ?®, a? § aY«i s c myputs aY?Yai !a¤Ya far, ?®a?®«i?a a¬®«c - ?Y¬ aY?Yai !a¤Ya ic«iaiai far. ˜a® ®§ c Ya, ca® ?®?ea?  a®§¤ ?i ¤ «iYF® a? § aY«i?a?cY¤Ya ? aia?i a® aaY?  ¤caa a«®c, ? ?®«acYe© a ??¬ ®!a §®¬  ¤aYa, !Y§aa«®c®, Y !a¤Ya ic«iaiai  ¤aYa®¬ mystr. ? ? ?§!Y¦ ai ia®© ?a®!«Y¬e? ˜YeY?Y a®aa®?a ca®¬, ca®!e ®?aY¤Y«?ai myputs c a®caY¬Y®¬ aa?«Y ‘: void myputs(char *s) (* /* aY«® myputs */ *) ’Y?Yai ?a? ?®¬??«iae?? c eY© ?a®Fa ¬¬e Turbo C++ § Ya, ca® myputs ®¦?¤ Ya a? § aY«i   char; ? ?®a?®«i?a ?®¬??«iae?i ce?®«iYaai a ¬®¤Y«ii large, a® ?§cYaa®, ca® a? § aY«i ¤®«- ¦Y !eai far. ‚a«Y¤aac?Y ia®F® Turbo C++ ?®¬Yaa?a c aaY? aY- F?aaa aYF¬Ya  ¤ ea (DS) ? 16-!?a®c®Y§ cY?Y mystr, ®!a - - 186 - §ai aY¬ a ¬e¬ ¤ «i?© a? § aY«i. …a«? ce a®!?a YaYai ic®®!eic«iai a? § aY«? ? ? far?«? near,Y § !ec ©aY ?a?®«i§®c ai ?a®a®a??e aYa aea?ae?©, ?®a®- aeY ¬®Faa ?a?®«i§®c ai ia? a? § aY«?. ? ? !eai c ®!a a®¬ a«ac Y: ?®F¤   aFa¬Yae myputs ®!e- ic«Ye ? ? far,   ?®¬??«iae?i ce?®«iYaai a ¬®¤Y«ii ? ¬ia? small? ? c ia®¬ a«ac Y !Y§ ?a®a®a??  aea?ae?? a c a c®§??aa ?a®!«Y¬e, ?®a?®«i?a main !a¤Ya ?®¬Ye ai c aaY? ? a¬YeY?Y, ?  ¤aYa aYF¬Ya , a®F¤  ? ? myputs !a¤Ya ®¦?¤ ai ?a?Y¬  a®«i?® ®¤®F® a¬YeY?i. ˜a?  «?c?? ®?aY¤Y«Y?© aea?ae?© c ?a®a®a?- ? a main !a¤Ya ?®¬Ye ai c aaY? a®«i?® a¬YeY?Y. ‘®§¤ ?Y a? § aY«i ¤ ®F®  ¤aYa  aYF¬Ya:a¬YeY?Y ___________________________________________________________ ? ? a®§¤ ai ¤ «i?© a? § aY«i  ?®?aYae©  ¤aYa ? ¬ia? (?®?aYae©  ¤aYaaYF¬Ya:a¬YeY?Y)? „«i ia®F® ¬®¦® c®a?®«i- §®c aiai caaa®Y®©!?!«?®aYc®© ?®¤?a®Fa ¬¬®© MK_FP, ?®a®a i c ? cYaacY  aFa¬Ya ?a??¬ Ya aYF¬Ya ? a¬YeY?Y, ? c®§ca - e Ya ¤ «i?© a? § aY«i. ˜ ?a?¬Ya, MK_FP(segment_value, offset_value) ?¬Yi ¤ «i?© a? § aY«ifp, ce ¬®¦YaY ?®«ac?ai ?®¬?®Ya aYF¬Ya  ?®«®F®  ¤aYa  a ?®¬®eii FP_SEG(fp) ? ?®¬?®Ya a¬YeY?i a ?®¬®eii FP_OFF(fp). ˜®«YY ?®«ai ?ae®a¬ ae?i ®! ia?a aaYa !?!«?®aYcea aea?ae?ia Turbo C++ a¬. c ‘?a c®c??Y ?® !?!«?®aY?Y. ?a?®«i§®c ?Y !?!«?®aYcea ae ©«®c Turbo C++ ?aY¤«iF Ya ¤«i ? ¦¤®© ?§ eYaa? ¬®¤Y«Y© ? ¬ia? a®!aacYai cYaa?i !?!«?®aY?? aa ¤ aaea ?®¤?a®Fa ¬¬. Turbo C++ ?a? ia®¬ ?a®ic«iYa ¤®aa a®c® "?aY««Y?a ", ca®!e ?a? ?®¬?®®c?Y !a ai a¦eY !?!«?®aY?? ? c a¦®© ?®a«Y¤®c aY«i- ®aa?, c § c?a?¬®aa? ®a ce!a ®© c ¬? ¬®¤Y«? ? ¬ia?. ?¤ - ?®,?a? Y?®aaY¤aacY®¬ ?a?®«i§®c ?? ?®¬?®®ce??  Turbo C++ TLINK (? ?  ca®®¬®F® ?®¬?®®ce?? ) ce ¤®«¦e ic® a? §e- c ai ?a?®«i§aY¬eY !?!«?®aY??. ˜®«YY ?®¤a®!® ia® ®??a ® c a §¤Y«Y TLINK ?« ce 5˜ "“a?«?ae", ˜a?®c®¤aac  ?®«i§®c aY«i. ?®¬?®®c?  a¬Ye ea ¬®¤a«Y© —a® ?a®?§®©¤Ya,Ya«? ce ?®¬??«?aaYaY ®¤? ¬®¤a«i a ?a- ?®«i§®c ?Y¬ ¬®¤Y«? ? ¬ia? small, ca®a®© - ¬®¤Y«? large, ? § aY¬ a®a?aY a?®¬?®®c ai ?a? —a® ?a? ia®¬ ?a®?§®©¤Ya? ” ©«e a?®¬?®aiaai a¤®c«Yac®a?aY«i®, ® ?a? ia®¬ ce caaaYa?aYai a ?a®!«Y¬ ¬?, ?®a®aeY !a¤aa   «®F?ce a ®??a - e¬? ceeY c a §¤Y«Y "?!eic«Y?Y aea?ae?© ? ? near ?«? far". …a«? aea?ae?i ¬®¤a«i a ¬®¤Y«ii small ce§ec Ya aea?ae?i c ¬®¤a- «Y a ¬®¤Y«ii large, ®  !a¤Ya ?a?®«i§®c ai ?a? ia®¬ !«?¦?© ce§®c, ca® ¤ aa  !a®«ia® YcYaeY aY§a«ia ae.?a®¬Y a®F®, a c a c®§??aa ?a®!«Y¬e a a? § aY«i¬?, ®??a eY c a §¤Y«Y "?!eic«Y?Y a? § aY«Y© ? ? near, far ?«? huge", ?®a?®«i?a aea?ae?i c ¬®¤a«Y small ®¦?¤ Ya, ca® ?a??¬ Y¬eY ? ?YaY¤ c Y- ¬eY Y©a? § aY«? !a¤aa near, a®F¤ ? ? aea?ae?i c ¬®¤a«Y large ®¦?¤ Ya a !aaa a a? § aY«i¬? far. ? a®c  aYeY?Y § ?«ic Yaai c ?a?®«i§®c ?? ?a®a®a??®c aea?ae?©. ˜aY¤?®«®¦?¬, ca® ce ?®¬Yaa?«? myputs c ®a¤Y«ie© ¬®¤a«i ? a?®¬??«?a®c «? YF® a ¬®¤Y«ii ? ¬ia? large. ‡ aY¬ ce a®§¤ YaY ae ©« § F®«®c?  myputs.h («?!® a «i!e¬ ¤aaF?¬ ?¬YY¬ ? a ae?aY?Y¬ .h), ?®a®ae© a®¤Ya¦?a a«Y¤aie?© ?a®a®a?? aea?- ae??: - 187 - void far myputs(char far *s); ’Y?Yai, Ya«? ?®¬Yaa?ai main c ®a¤Y«ie© ¬®¤a«i (MYMAIN. C) ? ce?®«?ai a«Y¤aie?Y aaa ®c??: #include
#include “myputs.h”

main()
(*
char near *mystr;
mystr = “Hello, wirld\n”;
myputs(mystr);
*)

a® ?a? ?®¬??«iae?? ¤ ®© ?a®Fa ¬¬e Turbo C++ ac?a Ya
?a®a®a?? aea?ae?? ?§ MYPUTS.H ? ac?¤?a, ca® ia® ¤ «iii aea?-
ae?i, ®¦?¤ ie i ¤ «i?© a? § aY«i. ‚a«Y¤aac?Y ia®F® ¤ ¦Y ?a?
¬®¤Y«? ? ¬ia? small ?a? ?®¬??«iae?? !a¤Ya aFYYa?a®c  ?a –
c?«ie© ce§ec ie?© ?®¤.

—a® ?a®?§®©¤Ya, Ya«? ?®¬?¬® ia®F® c ¬ aaY!aYaai ?®¬?®-
®c?  a !?!«?®aYce¬? ?®¤?a®Fa ¬¬ ¬?? ‹ace?© ?®¤a®¤ §¤Yai
§ ?«ic Yaai c a®¬, ca®!e ce!a ai ®¤a ?§ !?!«?®aY? a ¬®¤Y«ii
large ? ®!eic?ai caY ? ? far. „«i ia®F® a¤Y« ©aY ?®??? caYa
ae ©«®c § F®«®c? , ?®a®aeY ce ®!ec® c?«ic YaY (a ??a, ? ?
stdio.h) ? ?YaY?¬Ya©aY ia? ?®??? ( ?a?¬Ya, fstdio.h).

‡ aY¬ ®aaY¤ ?a?aa©aY ?®??? ?a®a®a??®c aea?ae?© a ??¬ ®!-
a §®¬, ca®!e a ¬ !e«® ic® a? § ® far,  ?a?¬Ya:

int far cdecl printf(char far* format, …);

’Y¬ a ¬e¬, Y a®«i?® ce§®ce ?®¤?a®Fa ¬¬ !a¤aa ¤ «i?¬?,
® ? ?YaY¤ c Y¬eY a? § aY«? a ?¦Y !a¤aa ¤ «i?¬?.?®¤?ae?ae?-
aa©aY c ea ?a®Fa ¬¬a a ??¬ ®!a §®¬, ca®!e ®  c?«ic «  ®ce©
ae ©« § F®«®c? :

#include

main()
(*
char near *mystr;
mystr = “Hello, world\n”;
printf(mystr);
*)

‘?®¬??«?aa©aY c ea ?a®Fa ¬¬a ?a? ?®¬®e?TCC, § aY¬ a?®¬-
?®a©aY YY ?a? ?®¬®eii TLINK, a? § c !?!«?®aY?? a ¬®¤Y«ii
? ¬ia? large,  ?a¬Ya CL.LIB. ‘¬Ye?c ?Y¬®¤a«Y© a a §e¬?
¬®¤Y«i¬? – cYei i?aaa c F a i, ® ¤®?aaa?¬ i; !a¤iaY, ®¤-
 ?®, F®a®ce ? a®¬a, ca®«i!eY Ya®c®aa? §¤Yai ?a?c®¤ia ?
®e?!? ¬, ?®a®aeY ®cYi aaa¤®  ©a? ? ?a?a c?i ?a? ®a« ¤?Y.

??ae?? a??  c?aY« a ?« c ieY© a®c?®©
————————————————————

‘ a !®a Ya a ¤ca¬i c?a«®ce¬? a?? ¬?:?aYFa «ie¬ (int,
short, long ? a.¤.) ? a ?« c ieY© a®c?®© (float double ?
long double). ˜a®aeYaa®a c eYF® ?®¬?iiaYa «YF?® a?a c«iYaai a
®!a !®a?®© c?aY« ?aYFa «iea a??®c, ®¤ ?® c?a«  a ?« c i-
eY© a®c?®© ®a?¬ ia !®«ieY caY¬Y? ? aa?«?©.

?¤ ?®, aY¬Y©aac® ?a®aeYaa®a®c iAPx86 ?¬YYa a®?aaaacai-
eYYY¬a aY¬Y©aac® ¬ aY¬ a?cYa??a a®?a®aeYaa®a®c, 8087, 80287 ?
80387. ?e !a¤Y¬ ®!®§ c ai caY aY¬Y©aac® ¬ aY¬ a?cYa??a a®?-
a®aeYaa®a®c 80×87 aYa¬?®¬ “a®?a®aeYaa®a”.

– 188 –

‚ a«ac Y ?a®aeYaa®a 80487ce ?¬YYaY ¬ aY¬ a?cYa??©
a®?a®aeYaa®a a¦Y caaa®Ye¬ c ®a®c®©.

80a87 ?aY¤aa c«iYa a®!®© a?Yae? «ie©  ?? a a®-aY «?§®-
c e© c?a«®c®© ?a®aeYaa®a, ?®a®ae©¬®¦® aaa ®c?ai   c eY¬
PC. ? a«a¦?a ¤«i ce?®«Y?ia !®«ie®© a?®a®aaii ?®¬ ¤ a
?« c ieY© a®c?®©. ˜a? !®«ie®¬?®«?cYaacY c c eY© ?a®Fa ¬¬Y
®?Ya ae?© a ?« c ieY© a®c?®© c ¬, !Y§aa«®c®,a¦Ya®?a®aeYa-
a®a. ˜«®? aeYaa «i®F® ?a®aeYaa®a  c c eY¬ ?®¬?iiaYaY ®aa-
eYaac«iYa ?aYaaeY©a a 80a87 ?® a?Yae? «ie¬ e? ¬ ?aYaaeY©a .

˜¬a«?a®c ?Y ?« ae 80a87

˜® a¬®«c ?i c Turbo C++ aaa  c«?c Yaai ®?ae?i FYYa –
ae?? ?®¤  “i¬a«iae?i” (®?ae?i ?®¬??«ia®a  ?®¬ ¤®© aaa®?? -f).
˜a  ®?ae?i ?aY¤ § cY  ¤«i ?a®Fa ¬¬, ?®a®aeY ¬®Faa c®®!eY
Y ?¬Yai ®?Ya ae?© a ?« c ieY© a®c?®©,   a ?¦Y ¤«i ?a®Fa ¬¬,
?®a®aeY ¤®«¦e ?¤a? ?   ¬ e? a,   ?®a®aea a®?a®aeYaa®a 808
a87 Y aaa ®c«Y.

‚ a«ac Y ®?ae?? i¬a«iae?? ?®¬??«ia®a FYYa?aaYa ?®¤, ? ?
Ya«? !e a®?a®aeYaa®a ?¬Y«ai, ® ?a? ?®¬?®®c?Y ?®¤?«ic Ya
!?!«?®aY?a i¬a«iae?? ®?Ya ae?© a?« c ieY© a®c?®© (EMU.LIB).
˜a? ce?®«Y?? a ?®© ?a®Fa ¬¬e a®?a®aeYaa®a 80a87, Ya«? ®
aaa ®c«Y, !a¤Ya ?a?®«i§®c aiai; Ya«? ¦Y c® caY¬i ce?®«Y-
?i ?a®aeYaa®a  Y ®? ¦Yaai, a® ?a®Fa ¬¬  !a¤Ya ?a?®«i§®c ai
a?Yae? «i®Y?a®Fa ¬¬®Y ®!Ya?YcY?Y, i¬a«?aaieYY 80a87.

˜®«acY?Y ?®¤  a®«i?® ¤«i ¬ e? a 80a87

…a«? ce ?« ?aaYaY ?a?®«i§®c ai c ea ?a®Fa ¬¬a ?a?«ic?-
aY«i®   ¬ e? a a aaa ®c«Ye¬ ¬ aY¬ a?cYa??¬ a®?a®aeYaa®-
a®¬ 80a87, a® ¬®¦® ai?®®¬?ai ®?®«® 10? ? ¬ia? ?a®Fa ¬¬e,
®?aaa?c ?§ YY «®F??a  ca®¬ a?cYa?®F® ®?aY¤Y«Y?i ?a?aaaa-
ac?i 80a87 ? i¬a«ia®a . „«i ia®F® a«Y¤aYa ?a®aa® ce!a ai®?-
ae?i FYYa ae?? ?®¤ ®?Ya ae?© a ?« c ieY© a®c?®© ?a?  «?c?? 80
a87 (?«? ®?ae?i?®¬??«ia®a  ?®¬ ¤®© aaa®?? -f87). Turbo C++
c ia®¬ a«ac Y a?®¬?®aYa c ea ?a®Fa ¬¬a a !?!«?®aY?®©
FP87.LIB c¬Yaa® EMU.LIB.

˜®«acY?Y ?®¤  !Y§ ®?Ya ae?© a ?« c ieY© a®c?®©

˜a? ®aaaaaac?? c ?a®Fa ¬¬Y ®?Ya ae?© a ?« c ieY© a®c?®©
ce ¬®¦YaY ai?®®¬?ai Y¬®F® caY¬Y? ?®¬??«iae??, ce!a c ®?-
ae?i FYYa ae?? ®?Ya ae?© a ?« c ieY© a®c?®© None (“®aaaaaaca-
ia”) (?«? ®?ae?i ?®¬??«ia®a  ?®¬ ¤®© aaa®?? -f-). ’®F¤ 
Turbo C++ Y !a¤Ya ce?®«iai ?®¬?®®c?a ? a EMU.LIB, ? a
FP87.LIB, ? a MATHx.LIB.

??ae?i !eaaaea cec?a«Y?© a ?« c ieY© a®c?®©

Turbo C++ ?¬YYa ®?ae?i !eaaaea cec?a«Y?© a ?« c ieY©
a®c?®© (®?ae?i ?®¬??«ia®a  ?®¬ ¤®© aaa®?? -ff). ‚e?«ic?ai
iaa ®?ae?i ¬®¦®?a? ?®¬®e? ®?ae?? ?®¬ ¤®© aaa®?? -ff-. …Y
 § cY?Y a®aa®?a c ce?®«Y?? Y?®a®a®© ®?a?¬?§ ae??, ?a®-
a?c®aYc eY© ?a c?«i®© aY¬ a??Y ‘. ˜ ?a?¬Ya,

double x;
x = (float)(3.5*x);

„«i cec?a«Y?i ?® ®!ece¬ ?a c?« ¬ x a¬®¦ Yaai   3.5,
¤ c i a®c®aai aY§a«ia a  double,?®a®a i § aY¬ aaY? Yaai ¤®
a®c®aa? float, ?®a«Y cYF® x § ??aec Yaai ? ?double. ˜a? ?a-
?®«i§®c ?? ®?ae?? !eaaaea cec?a«Y?© a ?« c ieY© a®c?®© ?a®-
?§cY¤Y?Y a??  long double ?aY®!a §aYaaiY?®aaY¤aacY® c
double. ˜®a?®«i?a «?ei ®cYi Y¬®F?Y ?a®Fa ¬¬e cacaac?aY«i-

– 189 –
e ? ?®aYaY a®c®aa??a? ?aY®!a §®c ?? ®a !®«YY a®c®F® ?
¬YYY a®c®¬a a??a a ?« c ieY© a®c?®©, a® ¤  i ®?ae?i ic«i-
Yaai a¬®«c ?Y¬.
˜YaY¬Y i ®?Ya ae?®®© aaY¤e 87

˜a? ?®aaa®Y?? ?a®Fa ¬¬e a i¬a«iae?Y© 80×87, ?®a®a i aa-
a  c«?c Yaai ?® a¬®«c ?i, c e  ?a®Fa ¬¬  aa Ya  ca®¬ a?-
cYa?? ?a®cYaiai  «?c?Y 80a87 ? ?a?®«i§®c ai YF®, Ya«? ®
aaa ®c«Y c ¬ e?Y.

‘aeYaacaYa ai¤ a?aa ae?©, c ?®a®aea c ¬ ¬®¦Ya ?® ¤®-
!?aiai ®a¬Y?ai aY¦?¬  ca®¬ a?cYa?®F® ®?aY¤Y«Y?i  «?c?i
a®?a®aeYaa®a  ?® a¬®«c ?i. ˜ ?a?¬Ya, c e a®!aacY i ?a?®«-
iie i a?aaY¬  ¬®¦Ya?¬Yai 80a87, ® c ¬ aaY!aYaai ?a®cYa?ai,
!a¤Ya «? ?a®Fa ¬¬  a !®a ai a ?, ? ? ce ?aY¤?®« F «?, c a?a-
aY¬Y!Y§ a®®?a®aeYaa®a . ‹?!®c e  ?a®Fa ¬¬  ?aY¤ § cY  ¤«i-
a !®aec a?aaY¬Y, a®c¬Yaa?¬®© a PC, ® ¤  i ?®?aYa i a?a-
aY¬  c®§ca e Ya «®F??Y  ca®¬ a?cYa?®F® ®?aY¤Y«Y?i  «?c?i
a®?a®aeYaa®a  YcYaai ?ae®a¬ ae?i («?!® ?a? ®aaaaaac?? 80a87
F®c®a?a, ca® ®   ¬YaaY, «?!®  ®!®a®a).

Turbo C++ ?¬YYa ®?ae?i ¤«i ?YaY®?aY¤Y«Y?i «®F??? ®?aY-
¤Y«Y?i  «?c?i a®?a®aeYaa®a ?a? § Faa§?Y ?a®Fa ¬¬e¦ ia  ®?-
ae?i – a®®acYaaacaie i ?YaY¬Y i ®?Ya ae?®®© aaY¤e a?aaY¬e
87.

˜YaY¬Y i ®?Ya ae?®®© aaY¤e 87 aaa  c«?c Yaai ?®
?a?F« eY?i DOS ?a? ?®¬®e? ?®¬ ¤e SET:

C>SET 87=N

?«?

C>SET 87=X

˜? a ? ?®© aa®a®e § ?  a cYaac  Y ¤®«¦® !eai ?a®-
!Y«®c. “aa ®c?  ?YaY¬Y®© ®?Ya ae?®®© aaY¤e 87 c N (ia®
§ c?a “˜Ya”) F®c®a?a § Faa§®c®¬a ?®¤a ?a?®«iieY© a?aaY¬e
® a®¬,ca® ce Y a®a?aY ?a?®«i§®c ai 80a87 ¤ ¦Y c a®¬ a«ac Y,
Ya«? ® aaa ®c«Y c a?aaY¬Y.

“aa ®c?  ?YaY¬Y®© ®?Ya ae?®®© aaY¤e c Y (“„ “) ®§-
 c Ya, ca® a®?a®aeYaa®a   ¬YaaY ? ce ¦Y« YaY, ca®!e ?a®F-
a ¬¬  YF® ?a?®«i§®c « .˜a®Fa ¬¬?aa ¤®«¦Y § ai a«Y¤aieYY:
!!! …a«? aaa ®c?ai 87=Y,   ae?§?cYa?? 80a87 c a?aaY¬Y Y aa-
a ®c«Y, a® a?aaY¬  ?®c?aYa.

…a«? ?YaY¬Y i ®?Ya ae?®®© aaY¤e 86 !e«  ®?aY¤Y«Y 
(c «i!®Y§ cY?Y), ? ce ¦Y« YaY a¤Y« ai YY Y®?aY¤Y«Y®©,
ccY¤?aY   ?a?F« eY?Y DOS:

C>SET=

˜Y?®aaY¤aacY® ?®a«Y § ?  a cYaac  ¦¬?aY Enter, ?
?YaY¬Y i 87 aa Ya Y®?aY¤Y«Y®©.

˜YF?aaae ? 80a87

‘aeYaacaYa ¤c  ¬®¬Ya , aci§ ea a ?a?®«i§®c ?Y¬ aY-
F?aaa®c, ?®a®aeY ce ¤®«¦e ac?aec ai ?a? a !®aY a ?« c ieY©
a®c?®©:

1. ‚ aY¦?¬Y i¬a«iae?? 80•87 ae??«?cYa??© ?YaYa®¤ c aY-
F?aaa a,   a ?¦Y ai¤ ¤aaF?a ®a®!Y®aaY© 80a87 Y ?®¤¤Ya¦?-
c Yaai.

2. …a«? ce a¬Ye?c YaY ®?Ya ae?? a ?« c ieY© a®c?®© ?

– 190 –
caaa®YeY ?®¤e   i§e?Y  aaY¬!«Ya , a® ?a? ?a?®«i§®c ??
aYF?aaa®c ce ¤®«¦e ?a??¬ ai Y?®a®aeY ¬Yae ?aY¤®aa®a®¦®a-
a?. ˜a® aci§ ® a aY¬, ca®  !®a aYF?aaa®c 80a87 ?YaY¤ ce§®-
c®¬ aea?ae?? c Turbo C++ ®c?e Yaai. ‚ ¬ ¬®¦Ya ?® ¤®!?aiai
?§c«Yci ?§ aaY?  ? a®aa ?ai aYF?aaae 80a87 ¤® ce§®c  aea?-
ae??, ?a?®«i§aieY© a®?a®aeYaa®a, Ya«? ce Y acYaYe, ca® ac®-
!®¤ea aYF?aaa®c ¤®aa a®c®.

?a¬Y  ®!a !®a?? ®a®!ea a?aa ae?©
¤«i ®?Ya ae?© a ?« c ieY© a®c?®© ————————-

˜® a¬®«c ?i ?a®Fa ¬¬    Turbo C++ c a«ac Y ?YaY?®«Y-
?i ?«? ¤Y«Y?i  ®«i c ®?Ya ae?ia a?« c ieY© a®c?®©
 c a?©® ?aYaec Yaai. ‚e ¬®¦YaY § ¬ a??a®c ai ia? ®a®!eY a?-
aa ae??¤«i ®?Ya ae?© a ?« c ieY© a®c?®©, ce§ec i c main
_control87 ?YaY¤ «i!®© ®?Ya ae?Y© a ?« c ieY© a®c?®©. ˜ ?a?-
¬Ya,

#include
main() (*
_control87(MCW_EM,MCW_EM);

*)

‚e ¬®¦YaY ®?aY¤Y«?ai ®a®!ai a?aa ae?i ¤«i ®?Ya ae?? a
?« c ieY© a®c?®©, ce§c c aea?ae?? _status87 ?«? _clear87. ‘¬.
®??a ?i ia?a aea?ae?© c ?« cY 1 ‘?a c®c??  ?® !?!«?®aY?Y.

??aY¤Y«YeY ¬ aY¬ a?cYa??Y ®e?!?? ¬®Faaa ?¦Y ?a®?§®©a?
c !?!«?®aYcea aea?ae?ia;  ?a?¬Ya, ?a? ?®?ea?Y ?§c«YcY?i
?c ¤a a®F® ?®ai ?§ ®aa?ae aY«i®F® c?a« . ˜®a¬®«c ?i c a –
??a a«ac ia ce?®«iYaai cec®¤   i?a  a®®!eY?© ®! ®e?!?Y ?
c®§ca a § cY?i NAN (?®¤ IEEE “not-a-number — “Y-c?a«®”).
?a?®«i§®c ?Y NAN a?®aYY caYF® ?a?cY¤Ya ¤ «YY ? c®§??®cY-
?i ®a®!®© a?aa ae?? a ?« c ieY© a®c?®©, ?®a®a i c ac®i ®cY-
aY¤i ce§®cYa , Ya«? ®  Y § ¬ a??a®c  ,  c a?©®Y ?aYaec –
?Y ?a®Fa ¬¬e. …a«? ce Y ¦Y« YaY, ca®!ea®®!eY?Y cec®¤?«®ai
  i?a , caa ciaY c ?a®Fa ¬¬a a®®acYaaacaieai cYaa?i
matherr.

#include int cdecl matherr(struct exception *e)
(*
return 1; /* ®e?!?  ®!a !®a   */
*)

‹i!®Y ¤aaF®Y ?a?®«i§®c ?Y matherr ¤«i caaaYY© ®!a –
!®a?? ¬ aY¬ a?cYa??a ®e?!®? Y¤®?aaa?¬®,a ? ? ? ®  ac?a Ya-
ai aaa aYceY© ?¬®¦Ya Y ?®¤¤Ya¦?c aiai ?®a«Y¤aie?¬? cYaa?i¬?
Turbo C++.
? aY¬ a?cYa??Y ®?Ya ae?? a ?®¬?«Y?ae¬? c?a« ¬?

?®¬?«Y?ae¬?  §ec iaai c?a«  c?¤  x +yi, F¤Y x ? yia®
¤Y©aac?aY«ieY c?a« ,   i ia® ?®aYi ?c ¤a ae© ?§ -1. ‚
Turbo C++ caYF¤  aaeYaac®c « a??

struct complex
(*
double x, y;
*);

®?aY¤Y«Ye© c math.h. ˜a®a a?? a¤®!Y ¤«i ?aY¤aa c«Y-
?i ?®¬?«Y?aea c?aY«, ?®a?®«i?a ?a ¬®¦® a aa¬ aa?c ai c
? cYaacY ? ae ¤Y©aac?aY«iea c?aY«. ?¤ ?®, ®Fa ?cY?i ‘
¤Y« ia  a?ae¬Ya?cYa??Y ®?Ya ae?? a ?®¬?«Y?ae¬? c?a« ¬? Ya-
?®«i?® Fa®¬®§¤??¬?. ‚ ‘++ ®?Ya ae?? a ?®¬?«Y?ae¬? c?a« ¬?
ce?®«iiaai Ya?®«i?® ?a®eY.

– 191 –

„«i a?®¬?«Y?ae¬? c?a« ¬? c ‘++ ¤®aa a®c® c?«ic?ai
complex.h. ‚ complex.h ¤«i ®!a !®a???®¬?«Y?aea c?a«Y ?YaYF-
aa¦Ye:

– caY ®!eceY  a?ae¬Ya?cYa??Y ®?Ya ae??

– ®?Ya ae?? ?®a®?®c >> ?
// cec?a«Y?Y ¤?a?aYa®F® ?aY®!a §®c ?i ?aaiY ¤«i
// a[0],…,a[n-1]
void Fourier(int n, complex a[], complex b[])
(*
int j,k;
complex i(0,1); // ?®aYi ?c ¤a ae© ?§ -1
for (j = 0; j - 192 - #include
int i;
float x =0.0;
for (i = 0; i
int i;
bcd x = 0.0;
for (i = 0; i - 193 - ?®¤ : double x = a; printf("a = %g", x); printf("a = %Lg", real(a)); printf("a = %g", (double)real(a)); cout - 194 - ?cYa«Y? ¬®Faa aaeYaacY® a?§?ai aaY!®c ?i ? ce¤Y«iY- ¬®© ?a®Fa ¬¬Y c® caY¬i ce?®«Y?i ? ¬ia?. ˜a? ?®¬®e? ®cYa«Y- Yc ¬®¦® a®§¤ c ai ?a®Fa ¬¬e,§ c?aY«i® ?aYcee ie?Y ?® a §- ¬Yaa ®!eai ¤®aaa?ai ? ¬iai a?aaY¬e, ?®a?®«i?a ®¤®caY¬Y® c ? ¬ia?  a®¤?aai «?ei c aai ¤ ®© ?a®Fa ¬¬e. ˜ !®a  ?a®Fa ¬¬ a ®cYa«Yi¬? ˜a®Fa ¬¬  a?a c«Y?i ®cYa«Yi¬? (VROOMM, ?«? Virtual Run -time Object-Oriented Memory Manager) ®cYi a«®¦ ; ®  ce- ?®«iYa §  c a !®«ieai c aai a !®ae ?® ®aF ?§ ae?? ®cYa«YYc. ‚ ®!ecea ®cYa«Y©ea a?aaY¬ a ¬®¤a«? Faa???aaiaai c ! §®ce© ?  !®a ®cYa«Y©ea !«®?®c. ˜®¤?a®Fa ¬¬e c ¤ ®¬ ®cYa«Y©®¬ !«®?Y ¬®Faa ce§ec ai ?®¤?a®Fa ¬¬e ?§ ia®F® ¦Y!«®?  ? ?§ ! - §®c®F® !«®? , ® Y ?§ ¤aaF?a !«®?®c. ?cYa«Y©eY !«®?? ?Y- aY?aec iaai ¤aaF a ¤aaF®¬; a.Y. ®¤®caY¬Y® c ? ¬ia? ¬®¦Ya  a®¤?aiai a®«i?® ®¤? ®cYa«Y©e© !«®?, ? caY ®? ?a?  ?a?- c?§ ae?? § ?¬ ia®¤? ? a®a ¦Y ac aa®? ae?§?cYa?®© ? ¬ia?. ?!- e?© ®!eY¬ ? ¬ia?, Y®!a®¤?¬®© ¤«i§ ?aa?  ¤ ®© ?a®Fa ¬¬e, ®?aY¤Y«iYaai a §¬Ya®¬ ! §®c®F®, ?«ia ¬ ?a?¬ «i®F® ®cYa«Y©- ®F® !«®? . ˜a  ®!ec i aaY¬  Y ®!Ya?Yc?c Ya ¤®aa a®c®© F?!?®aa?. ?  aaY!aYa ?®«®F® acYa  caYac®§¬®¦ea ®!a eY?© ¬Y¦¤a ¬®- ¤a«i¬? ?a®Fa ¬¬e ? a®®acYaaacY®©, ?« ?aaY¬®©c ¬?,Faa???- a®c?? ®cYa«YYc. …a«? ce Y ¬®¦YaY a §!?ai c ea ?a®Fa ¬¬a c a®®acYaaac?? a® c§ ?¬®§ c?a?¬®aai¬? ®!a eY?© ¬Y¦¤a YY ¬®¤a- «i¬?, a® ce Y a¬®¦YaY ? a §!?ai YY   ®cYa«Y?. ‘aY¬  VROOMM a®cYaeY® ? i. ?  ®!Ya?Yc?c Ya ¤? ¬?- cYa??© ac®??F aYF¬Ya®c. ˜ §®ce¬ !«®?®¬ ac®??F  ic«iYaai aYF¬Ya. ‘YF¬Ya ¬®¦Ya a®aa®iai ?§ ®¤®F® ?«? Ya?®«i??a ¬®- ¤a«Y©. ? ca® YeY !®«YY c ¦®, «i!®© aYF¬Ya ¬®¦Ya ce§ec ai «i!®© ¤aaF®© aYF¬Ya. ‚ai ? ¬iai ¤Y«?aai   ! §®cai ®!« aai ? ®!« aai ac®??- F . ? ? a®«i?® caaaYc Yaai ce§®c aea?ae??, ?®a®a iY  a®¤?a- ai ? c ! §®c®©, ? c ®!« aa?ac®??F , aYF¬Ya, a®¤Ya¦ e?© ce§ec Y¬ai aea?ae?i, ?®¬Ye Yaai c ®!¤ aai ac®??F , c®§¬®¦®, ceFaa¦ i ®aaa¤  ?a? ia®¬ ¤aaF?Y aYF¬Yae. ˜a® ¬®e®Y aaY¤a- ac® - ?®¤®!®Y c?aaa «i®© ?a®Fa ¬¬®© ? ¬ia?. ?a c a !®«ieY Y aaY!aYaai a §!?c ai ?®¤  aa a?cYa??Y, ®a¤Y«ieY ®cYa«Y©- eY !«®??. ‚e ?a®aa® § ?aa? YaY ?a®Fa ¬¬a! —a® ?a®?aa®¤?a, ?®F¤ c®§?? Ya Y®!a®¤?¬®aai ?®¬Yaa?ai aYF¬Ya c ®!« aai ac®??F ? …a«? ia  ®!« aai ?¬YYa ¤®aa a®c- ® ac®!®¤®F® ¬Yaa , a® ¤  i § ¤ c  ce?®«iYaai ?a®aa®. …a«? ¦Y Ya, a® ?§ ®!« aa? ac®??F  ¤®«¦® !eai ceFaa¦Y® ®¤? ?«? !®«YY aYF¬Ya®c, ca®!e ?a?®¬ i ac®!®¤ i®!« aai ®a- c®!®¤?« ai.? ? ce!a ai aYF¬Yae ¤«i ceFaa§??? „Y©aacaie?© §¤Yai  «F®a?a¬ ®cYi a«®¦Y. “?a®eY i cYaa?i YF® a ?®c : Ya«? c ®!« aa? ac®??F  ?¬YYaai Y ?a?ce© aYF¬Ya,a® ¤«i ceFaa§?? ce!?a Yaai®. ˜Y ?a?ce¬? ac?a iaai aYF¬Yae, c ?®- a®aea c aY?ae?© ¬®¬Ya Ya ce?®«iY¬ea aea?ae?©.‚ ?a®a?c®¬ a«ac Y !YaYaai  ?a?ce© aYF¬Ya. “¤ «Y?Y aYF¬Ya®c ?§ ? ¬i- a? ?a®¤®«¦ Yaai¤® aYa ?®a, ?®?  c ®!« aa? ac®??F  Y ®!a - §aYaai ¤®aa a®c® ac®!®¤®©? ¬ia?¤«i a §¬YeY?i a ¬ aaY!aY- ¬®F®aYF¬Ya . ’ ?®© ¬Ya®¤  §ec Yaai ¤? ¬?cYa??¬ ac®??F®¬. —Y¬ !®«ieY ? ¬ia? ce¤Y«Y® ¤«i ®!« aa? ac®??F , aY¬ «aceY a !®a Ya ?a®Fa ¬¬ . ?!« aai ac®??F  a !®a Ya ? ? ?ie- ? ¬iai: cY¬ !®«ieY ?ie, aY¬ !eaaaYY a !®a Ya ?a®Fa ¬¬ .˜ ?- «ace?Y § cY?i a §¬Ya  ®!« aa? ac®??F  ®?aY¤Y«iiaai a §¬Y- a ¬? a !®cYF® ¬®¦Yaac  ¤ ®© ?a®Fa ¬¬e. ˜®a«Y § Faa§?? ®cYa«Yic ? ¬iai ® ?®¬Ye Yaai c ®cYa«Y©- e© !aaeYa, ?®a®ae© a a?®«®¦Y c ? ¬ia? ¬Y¦¤a aYF¬Ya®¬ aaY?  - 195 - ? ¤ «iY© ?acY©. ˜® a¬®«c ?ia §¬Ya®cYa«Y©®F® !aaeYa  cec?a- «iYaai ? aaa  c«?c Yaai ?a? § Faa§?Y ?a®Fa ¬¬e, ® YF® ¬®¦- ® ?§¬Y?ai ?a? ?®¬®e? F«®! «i®© ?YaY¬Y®© _ovrbuffer. …a- «?¤®aa a®ce© a §¬Ya ? ¬ia? Y¤®aaa?Y, a® ?®ic«iYaai «?!® a®®!eY?Y ®! ®e?!?Y DOS ("Program too big to fit in memory" - "˜a®Fa ¬¬  a«?e?®¬ cY«??  ¤«i ?¬YieY©ai ? ¬ia?"), «?!® a®- ®!eY?Y ?®¤  § Faa§?? ‘ ("Not enough memmory to run program"). ‚ ¦®© ®?ae?Y© ?a®Fa ¬¬e a?a c«Y?i ®cYa«Yi¬? ic«iYaaiY- F® a?®a®!®aai ?a? a¤ «Y?? ¬®¤Y«Y© ?§ ®cYa«Y©®F® !aaeYa  ce?®«iai ?a ac®??F a ¤®?®«?aY«i®© a ae?aY®© ? ¬iaii. ‘«Y¤aie?© a §, ? ? a®«i?® ¤ e© ¬®¤a«i ?® ¤®!?aai, ® c ia®¬ a«ac Y !a¤Ya Y ac?a  a ¤?a? ,   ?a®aa® a?®??a®c  ?§ ia®© ? ¬ia?.˜a® aaeYaacY® aa?®aiYa ac®??F. ˜a? ?a?®«i§®c ?? ®cYa«YYc ? ¬iai a a?aY¤Y«iYaai,? ? ?®? § ®   a«Y¤aieY¬ a?aa?Y: ?®¤Y«i MEDIUM ?®¤Y«i LARGE ----------------- ------------ ----------------- \! ?« aa CODE \! ˜Y§?¤Yae© \! ?« aa CODE \! \! \! ?®¤ \! \! --\!----------------\! \!----------------\! ˜a? aYF¬Yae \!\!?« aa OVRINFO\!„ eY ¤«i\!?« aa OVRINFO\! FYYa?aaiaai \! \! \! a?a c«Y?i \! \! ?®¬?®®ce??®¬ \! \! \! ®cYa«Yi¬? \! \!  ca®¬ a?cYa??-\! \!----------------\! \!----------------\! \! \! ?« aa STUBSEG \! ?¤? aYF¬Ya \! ?« aa STUBSEG \! \! \! \! stub ¤«i \! \! \! \! \! ? ¦¤®F® \! \! \! \! \! ®cYa«Y©®F® \! \! \! \! \! aYF¬Ya  \! \! --\!----------------\! ------------ \!----------------\! \! _DATA \! \! _DATA \! ˜«?¦ii ?ac  \! ?« aa DATA \! \! ?« aa DATA \! ? aaY? a §¤Y«iia \! \! \! \! aYF¬Ya ¤ ea \!!«?¦ii ?ac \!?a¤Y«ie©\!--------------\! \! ^ \!aYF¬Ya \! ^ \! \! ? aaY? \!aaY?  \! ? aaY? \! \!----------------\! ------------ \!----------------\! \!®cYa«Y©e© !aaeYa\! \!®cYa«Y©e© !aaeYa\! \!(a a?aY¤Y«iYaai \! \!(a a?aY¤Y«iYaai \! \! ?a? § Faa§?Y) \! \! ?a? § Faa§?Y) \! \!----------------\! ------------ \!----------------\! \! ? ¤ «iii \! \! ? ¤ «iii \! \! v ?ac  \! \! v ?ac  \! \! \! \! \! ------------------ ------------------ - 196 - ?®¤Y«i HUGE ------------ ----------------- ˜Y§?¤Yae© \! ?« aa CODE \! ?®¤ \! \! -- \!----------------\! ˜a? aYF¬Yae \! „ eY ¤«i \! ?« aa OVRINFO \! FYYa?aaiaai \! a?a c«Y?i \! \! ?®¬?®®ce??®¬ \! ®cYa«Yi¬? \! \!  ca®¬ a?cYa??-\! \!----------------\! \! ?¤? aYF¬Ya \! ?« aa STUBSEG \! \! stub ¤«i \! \! \! ? ¦¤®F® \! \! \! ®cYa«Y©®F® \! \! \! aYF¬Ya  \! \! -- ------------ \!----------------\! . . . ˜Ya?®«i?® \!----------------\! aYF¬Ya®c \!----------------\! ¤ ea \!----------------\! \!----------------\! ?a¤Y«ie© \!----------------\! aYF¬Ya \! ^ \! aaY?  \! ? aaY? \! ------------ \!----------------\! \!®cYa«Y©e© !aaeYa\! \!(a a?aY¤Y«iYaai \! \! ?a? § Faa§?Y) \! ------------ \!----------------\! \! ? ¤ «iii \! \! v ?ac  \! \! \! ------------------ ˜?a.4.9 ˜ a?aY¤Y«Y?Y ? ¬ia? ¤«i ®cYa«Y©ea aaaa?aaa ?a?®«i§®c ?Y ?aY?¬aeYaac ?a?®«i§®c ?i ®cYa«YYc Turbo C++ ___________________________________________________________ „«i ?®«®F® ?a?®«i§®c ?i ?aY?¬aeYaac ®cYa«Y©ea aaaa?- aaa, a®§¤ c Y¬ea Turbo C, - ???¬?§?aa©aY aY§?¤Yae© ?®¤ (aY§?¤YaeY !?!«?®aY?? ?a?®«iieY© a?aaY¬e, ®!a !®ac??? ?aYaec ?© ? ¤a ©cYae aaa- a®©aac). - “aa ®c?aY a §¬Ya ®cYa«Y©®F® ?a«  a ??¬ ®!a §®¬, ca®!e ¤®!?aiai  ?!®«YY ?®¬ae®aaea aa«®c?© ¤«i a®§¤ c Y¬®© ?a®Fa ¬¬e ( c?aY a® 128? ? aYFa«?aa©aY ia®a a §¬Ya ccYaa ? c?§, ?®?  Y aaa ®c?aY ¦Y« Y¬®Y a®®a®eY?Y ¬Y¦¤a !aaaa®- ¤Y©aac?Y¬ ? a §¬Ya®¬ ?a®Fa ¬¬e. - ˜®¤a¬ ©aY ®! a?cYaa «i®aa? ? ¬®F®aa®a®®aa? a®§- ¤ c Y¬®F® ?®¤ : c®a?®«i§a©aYai ?aY?¬aeYaac ¬? ®cYa«Y©®© aaaa?aaae ? ®!Ya?YciaY ?®¤¤Ya¦?a ®!a !®a?? a?Yae? «iea a«a- c Yc, ?aYa ?a?cai a?a c®cai a?aaY¬a ?® ?a®Fa ¬¬Y ? ?a®c?Y Y a aa¬ aa?c Y¬eY §¤Yai aaY¤aac , ic«iie?Yai ¤®aa®?aac ¬? a a®c?? §aY?i ?®Yc®F® ?®«i§®c aY«i. ’aY!®c ?i ˜a? a®§¤ ?? ®cYa«YYc a«Y¤aYa ?®¬?ai Ya?®«i?® ?a®aaea ?a c?«,   ?¬Y®: - ???¬ «i i c aai ?a®Fa ¬¬e, ?®a®a i ¬®¦Ya !eai ce¤Y- «Y  c ? cYaacY «cYa«Yi, ia® aYF¬Ya. - ˜a??« ¤eY ?a®Fa ¬¬e a ®cYa«Y©®© aaaa?aaa®© ¤®«¦e - 197 - ?¬Yai ®¤a ?§ aaYa a«Y¤aie?a ¬®¤Y«Y© ? ¬ia?: medium, large ?«? huge; ¬®¤Y«? tiny, small ? compact ®cYa«Y? Y ?®¤¤Ya¦?- c ia. - ˜YaY?aec ie?Yai aYF¬Yae ?®¤c?iiaai ®!ece¬ ?a c?« ¬ a«?i?i aYF¬Ya®c. ’® Yaai, c ®¤®¬ ? a®¬ ¦Y aYF¬YaY ¬®¦Ya ac aac®c ai Ya?®«i?® .OBJ- ae ©«®c. ?YYa?a®c ?Y ®cYa«YYc c® caY¬i ?®¬?®®c?? ?®«®aaii Y§ c?a?¬® ®a a?a c«Y?i aYF¬Ya ¬? c® caY¬i ?a?®«Y?i ?a®Fa ¬¬e; ?®¬?®®ce?? Y c?«ic Ya  ca®¬ a?cYa?? ? ??a-«?!®- ?®¤®c¤«i a?a c«Y?i ®cYa«Yi¬?. „Y©aac?aY«i®, a a®c?? §aY?i ?®¬?®®ce??  ?a®Fa ¬¬  a?a c«Y?i ®cYa«Yi¬? ic«iYaai ?a®aa® ®¤?¬ ?§ ?®¤«Y¦ e?a ?®¬?®®c?Y ac aa?®c ?®¤ . …¤?aacY®Y ?aY¤?®«®¦Y?Y, ?®a®a®Y ¤Y« Ya ?®¬?®®ce??, a®aa®?ac a®¬, ca® ?a®Fa ¬¬  a?a c«Y?i ®cYa«Yi¬? ?a??¬ Ya cY?a®a ?aYaec ?© (®!ec® INT 3FH), cYaY§ ?®a®ae© ?a®?aa®¤?aa?a c«Y?Y ¤? ¬?- cYa?®© § Faa§?®©. ’ ?®© aa®cYi ?a®§a c®aa? a?a®e Ya a®§¤ - ?Y ?®«i§®c aY«ia??a ?a®Fa ¬¬ a?a c«Y?i ®cYa«Yi¬?,  ?«ac- e?¬ ®!a §®¬ a?a c«iie?a aaY!®c ?i¬ ?®?aYa®© ?a??« ¤®© ?a®Fa ¬¬e. ?a?®«i§®c ?Y ®cYa«YYc „«i a®§¤ ?i ?a®Fa ¬¬e a ®cYa«Y©®© aaaa?aaa®© caY YY ¬®¤a«? ¤®«¦e ?®¬??«?a®c aiai a c?«icY®© ®?ae?Y© ?®¬??«ia®- a  -Y. „«i a®F®, ca®!e a¤Y« ai ®cYa«Y©e¬ ?®?aYae© ¬®¤a«i, YF® a«Y¤aYa ?®¬??«?a®c ai a ®?ae?Y© -Yo. (-Yo  ca®¬ a?cYa?? c?«ic Ya ®?ae?i -Y). ??ae?i -Yo a a?a®aaa iYaai  caY ¬®¤a«? ?!?!«?®aY??, a«Y¤aie?Y §  Y© c ?®¬ ¤®© aaa®?Y TCC. ?a¬Y?ai YY ¬®¦®, § ¤ c -Yo-.˜a? ¤cY ®?ae?? ic«iiaai Y¤?aacYe¬? ®?ae?i¬? ?®- ¬ ¤®© aaa®??, ?®a®aeY ¬®Faa a«Y¤®c ai ?®a«Y ?¬Y ae ©«®c. ˜ ?a?¬Ya,¤«i a®F®,ca®!e a¤Y« ai®cYa«Y©e¬ ¬®¤a«i OVL.C, ® Y !?!«?®aY?a GRAPHICS.LIB, ¬®¦® ?a?®«i§®c ai «i!ai ?§ a«Y- ¤aie?a ?®¬ ¤ea aaa®?: TCC -ml - Yo ovl.c -Yo- graphics.lib ?«? TCC -ml graphics.lib -Yo ovl.c …a«? ?a? § ?aa?Y TLINK ic® § ¤   ?®¬?®®c?  ae ©«  .EXE, a® c ?®¬ ¤®© aaa®?Y ?®¬?®®ce??  ¤®«¦  !eai § ¤   ®?ae?i/o. ?a?®«i§®c ?Y ®?ae?? /o ®??a ® c a §¤Y«Y TLINK F« - ce 5, "“a?«?ae", ˜a?®c®¤aac  ?®«i§®c aY«i. ˜a?¬Ya ®cYa«Y©®© aaaa?aaae ___________________________________________________________ ˜aY¤?®«®¦?¬, ce a®a?aY ?¬Yai ®cYa«Y©ai aaaa?aaaa c ?a®Fa ¬¬Y, a®aa®ieY©?§ aaYa ¬®¤a«Y©: MAIN.C, O1.C ? O2.C. ?cYa«Yi¬? ¤®«¦e ic«iaiai ¬®¤a«? O1.C ? O2.C. (MAIN.C a®¤Ya- ¦?a § c?aie?Y ®aaY?aeYF® caY¬Y? ?®¤?a®Fa ¬¬e ?®!a !®ac??? ?aYaec ?© ??®a®¬a ¤®«¦  ®aa c aiai aY§?¤Ya®©). ˜aY¤?®«®- ¦?¬, ca® ¤  i ?a®Fa ¬¬  ?a?®«i§aYa ¬®¤Y«i ? ¬ia? large. ‘«Y¤aie i ?®¬ ¤  ?®§c®«iYa ce?®«?ai ¤ ai § ¤ ca: TCC -ml -Y main.c -Yo o1.c o2.c ‚ aY§a«ia aY ?®«ac?aai ce?®«iie?©ai ae ©« MAIN.EXE a ¤ca¬i ®cYa«Yi¬?. - 198 - ?aF ?§ ae?i ®cYa«YYc c ?aYFa?a®c ®© aaY¤Y a §a !®a?? (IDE) ___________________________________________________________ „«i ®aF ?§ ae?? ®cYa«Y©ea ¬®¤a«Y© c aa«®c?ia ?aYFa?- a®c ®© aaY¤e a §a !®a?? a«Y¤aYa ce?®«?ai e F?: 1. ‚®©a? c ¤? «®F®c®Y ?®«Y Options \! Compiler \! Code Generation ? aaa ®c?ai ®?ae?i Overlays On. 2. ‚®©a? c Options \! Linker ? aaa ®c?a ®?ae?i Overlay On. 3. ‚ ¬YY¤¦YaY ?a®Y?a  ?a?®«i§a©aY i«Y¬Ya Options ¤«i § ¤ ?i ? ¦¤®F® ¬®¤a«i, ?®a®ae© ¤®«¦Y c®©a? c ®cYa«Y©. ˜Yace© e F ?aY¤aa c«iYa a®!®©i?c?c «Ya ?aYFa?a®c ®© aaY¤e a §a !®a?? ®?ae?? -Y ?®¬??«ia®a  ?®¬ ¤®© aaa®??. …a«? Y aaa ®c?ai ¤ ai ®?ae?i c a®aa®i?Y on, a® Y«i§i ?a?®«i- §®c ai ? ¤cY a? § ea ¤ «YY ®?ae??. ‚a®a i ®?ae?i a?a c«iYa aY¬, ¤®«¦  «? ¤  i ?ae®a¬ ae?i ®§ ¤ ?? ®cYa«YYc ?a?®«i§®- c aiai c® caY¬i ?®¬?®®c?? c IDE. ˜YaYcY¤i iaa ®?ae?i c a®a- a®i?Y off, ce ¬®¦YaY aY¬ a ¬e¬ F«®! «i®®a¬Y?ai a®§¤ ?Y ®®cYa«YYc,Y ce?®«ii ?YaY?®¬??«iae?i ? Y ?§¬Yii§ cY?© ?¤?c?¤a «iea aaa ®c®? ¬®¤a«Y© c ¬YY¤¦YaY ?a®Y?a . ??ae?i   aaYaiY¬ e FY a?a c«iYa aY¬, ? ??Y ¬®¤a«? c®©¤aa c ®cYa- «Y?,   ? ??Y ®aa aaai ae??a?a®c e¬?. ˜a  ®?ae?i ?®a®¦    ®?ae?i ?®¬ ¤®© aaa®?? -Yo. „«i ?®aaa®Y?i .EXE-ae ©«  a ®cYa«Yi¬? a?®¬??«?aa©aYcaY ¬®¤a«? a ®?ae?Y© Code Generation \! Overlays On(a?Yac  a!Y¤?- aYai, ca® ce!a   ®?ae?i Options \! Full Menus On). ˜? ®¤??§ ca®¤ie?a c ®cYa«Y© ¬®¤a«Y© ??®F¤  Y ¤®«¦Y ?§¬Yiai a¬®«c ?Y ?¬Y? ?« aa  ?®¤  (Code Class). ?aYFa?- a®c  i aaY¤  ?®§c®«iYa ?§¬Y?ai  !®a ca®¤ie?a c ®cYa«Y? ¬®¤a«Y©, Y § !®aiai ® aY?®¬??«iae??. ˜a® c®§¬®¦® (a aY?aeY© ?ae®a¬ ae?Y© ®! .OBJ-ae ©« a) a®«i?® ?a? aa«®c??, ca® ®cYa«Y? a®aa iia ?¬Y  ?« aa  ?®¤  ?® a¬®«c ?i. ˜ §a !®a?  ?a®Fa ¬¬ a ?YaY?aea?i¬? ˜a®a a §¤Y« a®¤Ya¦?a c ¦eY acY¤Y?i ® a §a !®a?Y ?a®F- a ¬¬ a ?YaY?aea?i¬?. ’e aY«i® ?§ac?aY YF®, ?®a?®«i?a Y?®- a®aeY a aa¬ aa?c Y¬eY §¤Yai c®?a®ae ¦?§Y® c ¦e ¤«i a®§- ¤ ?i ?a??« ¤ea ?a®Fa ¬¬ a?YaY?aea?i¬?, ?¬Yie?a cea®??Y a a ?aYa?aa???. ’aY!®c ?Y ¤ «i?a (far) ce§®c®c ___________________________________________________________ ˜a? ?®¬??«iae?? ®cYa«Y©®F® ¬®¤a«i ce¤®«¦e ?a?®«i§®c ai !®«ieai ¬®¤Y«i ? ¬ia? (medium, large ?«? huge). ˜a? cai?®¬ ce§®cY aea?ae?? ?§ ®cYa«Y©®F® ¬®¤a«i ce ®!i§ e F a a?a®- c ai, ca® caY  ?a?ceY c aY?ae?© ¬®¬Ya aea?ae?? ic«iiaai ¤ «i?¬?. ‚e ®!i§ e ?®¬??«?a®c ai caY ®cYa«Y©eY ¬®¤a«? a®?ae?Y©- Y, ca® ®!Ya?Yc?a ®cYa«Y©ai aaaa?aaaa FYYa?aaY¬®F® ?®¤ . ‚ ¦®Y § ¬Yc ?Y ! ˜Yce?®«Y?Y aaY!®c ?i ¤ «i?a ce§®c®c c ®cYa«Y©®© ?a®Fa ¬¬Y ?a?cY¤Ya ?a? ce?®«Y?? ?a®Fa ¬¬e ? Y?aY¤a? §aY- ¬e¬ ? c®§¬®¦®, ? a aaa®ae?cYa??¬ aY§a«ia a ¬. - 199 - ˜ §¬Ya !aaeYa  ___________________________________________________________ ˜ §¬Ya ®cYa«Y©®F® !aaeYa  ?® a¬®«c ?i c ¤c  a §  ?aY- cee Ya a §¬Ya a ¬®F® !®«ie®F® ®cYa«Yi. „«i !®«ie?aac  ?a??- « ¤ea ?a®Fa ¬¬ a ?®Y a¬®«c ?Y c?®«Y  ¤Y?c a®. ?¤ ?® ¦Y, ?aY¤aa c?¬ aY!Y a?aa ae?i, ?®F¤ ? ? i-«?!® aea?ae?i ?a®Fa ¬¬e- aY «?§®c   Ya?®«i??¬? ¬®¤a«i¬?, ? ¦¤e© ?§ ?®a®aea ic«iYaai ®cYa«Y©e¬. …a«? ®!e?© a §¬Ya ia?a ¬®¤a«Y© ?aYcee Ya a §¬Ya ®cYa«Y©®F® !aaeYa , a® Ya«? ¬®¤a«? c aa® ce§ecia ¤aaF ¤aaF , ia® ?a?cY¤Ya ? !®«ie®¬a c?a«a ac®??F®c. ?cYc?¤®, ca® aYeY?Y §¤Yai § ?«ic Yaai c acY«?cY?? a §¬Ya  ®cYa«Y©®F® !aaeYa  ¤® a ??a a §¬Ya®c, ca®!e c «i!®© ¬®¬Ya caY¬Y? c Y¬ ?®¬Ye «?ai caY c aa® ce§ec ie?Y ¤aaF ¤aaF  ®cYa«Y?. ˜a® ¬®¦® a¤Y« ai, aaa ®c?c cYaY§ F«®! «iai ?YaY¬Yai _ovrbuffer aaY!aY¬e© a §¬Ya c ? a Fa ae a. ˜ ?a?- ¬Ya, ¤«i aaa ®c?? a §¬Ya  ®cYa«Y©®F® !aaeYa  a ce¬ 128?, c?«ic?aY cc e ?®¤ a«Y¤aie?© ®?Ya a®a: unsigned _ovrbuffer = 0x2000; ?!eY© ae®a¬a«e ¤«i ®?aY¤Y«Y?i ?¤Y «i®F® a §¬Ya  ®cYa- «Y©®F® !aaeYa  Y aaeYaacaYa. Turbo Prifiler ae?a¬e Borland ?®¬®¦Ya ®?aY¤Y«?ai Y®!a®¤?¬®Y § cY?Y. …a«? ce Y a a?®« - F YaY ¤ e¬ ?a®¤a?a®¬, a®  ©a? a §¬Ya !aaeYa  c ¬ ?®¬®¦Ya ?®?¬ ?Y ?a??« ¤®© § ¤ c? ? Y¬®F® §?a?Ya?¬Ya?a®c ?i. ‚ ? ??a a«ac ia Y a«Y¤aYa a®§¤ c ai ®cYa«Y©eY aaaa?aaae ___________________________________________________________ ˜Y a®§¤ c ©aY ®cYa«Y©ea ¬®¤a«Y©, a®¤Ya¦ e?a®!a !®ac??? ?aYaec ?©,   a ?¦Y c a«ac ia Y!®«ie?a ?«? ?a?a?cea ? !eaaa®¤Y©aac?i ?a®Fa ¬¬. ‚a«Y¤aac?YY-aYYaYa !Y«i®© ?a?a®- ¤e ®?Ya ae?®®©a?aaY¬e DOS¬®¤a«?, ?®a®aeY ¬®Faa ce§ec aiai aea?ae?i¬? ?aYaec ?©, Y ¤®«¦e !eai ®cYa«Y©e¬?. ˜a®Fa ¬¬  a?a c«Y?i ®cYa«Yi¬? Turbo C++ ?®«®aaii ?®¤- ¤Ya¦?c Ya?YaY¤ ca ®cYa«Y©eaaea?ae?© ? ? aFa¬Ya®c, ?a?ac®Y- ?Y ??ae? «?§ ae?i ?YaY¬Yea a?? a? § aY«i aea?ae??,  ¤aYaai- e?a ®cYa«Y©eY aea?ae??,   a ?¦Y ce§®c ®cYa«Y©ea ?®¤?a®Fa ¬¬ cYaY§ a? § aY«? aea?ae?©. ?a« ¤?  ®cYa«YYc ___________________________________________________________ ˜®«ie?aac® ®a« ¤c??®c «?!® ?¬YYa cYai¬  ®Fa ?cYeY aaY¤aac  ®a« ¤?? ?a®Fa ¬¬ a ®cYa«Y©®© aaaa?aaa®©, «?!® c®- ®!eY Y ?¬YYa a ??a aaY¤aac. ? cY ¤Y«® ®!aa®?a a?aYFa?a®- c e¬ a® aaY¤®© a §a !®a?? ®a« ¤c??®¬ TurboC++ ? ®a« ¤c??®¬  ca®®¬e¬ ®a« ¤c??®¬ Turbo Debugger. ?! ia? ®a« ¤c??  ?®«- ®aaii ?®¤¤Ya¦?c ia ?®e F®cai ®a« ¤?a ? aaa ®c?a a®cY? ?aY- aec ?i c ®cYa«Yia a®cYaeY® ?a®§a ce¬ ¤«ic a a?®a®!®¬. ˜« F®¤ ai ?a?®«i§®c ?i ®cYa«YYc ce ?¬YYaY c®§¬®¦®aai «YF?® a §a ! aec ai ? ®a« ¦?c ai Fa®¬®§¤??Y ?a??« ¤eY ?a®Fa ¬¬e - ? ? c ?aYFa?a®c ®© aaY¤Y, a ? ? ?a? ?®¬®e? Turbo Debugger. ‚Ye?Y (external) ?®¤?a®Fa ¬¬e c ®cYa«Yia ___________________________________________________________ ˜®¤®!® ®!ece¬aea?ae?i¬ ‘, cYe?Y (external) ?®¤?a®F- a ¬¬e   i§e?Y  aaY¬!«Ya  ¤®«¦e ?®¤c?iaiai Y?®a®ae¬ ?a - - 200 - c?« ¬, ca®!e a®a®e® a !®a ai a ?a®Fa ¬¬®© a?a c«Y?i ®cYa«Y- i¬?. …a«? ?®¤?a®Fa ¬¬    i§e?Y  aaY¬!«Ya  ce?®«iYa ce§®c «i!®© ®cYa«Y©®© aea?ae??, a® a ? i ?®¤?a®Fa ¬¬  ¤®«¦  ?¬Yai ®!eic«Y?Y FAR ? ¤®«¦  aaa  c«?c ai aaY?®ce© aeaY©¬ ?a? ?®- ¬®e? aYF?aaa  BP. ˜ ?a?¬Ya, Ya«? OtherFunc ia® ®cYa«Y© i aea?ae?i c ¤aaF®¬ ¬®¤a«Y, ? YY ce§ec Ya ?®¤?a®Fa ¬¬    i§e?Y  aaY¬!«Ya  ExternFunc, a® a®F¤  ExternFunc ¤®«¦  !eai FAR? aaa  c«?c ai aaY?®ce© aeaY©¬, ? ? ?®? § ® ?¦Y: ExternFunc PROC FAR push bp ;a®aa ?ai bp mov bp,sp ;aaa ®c?ai aaY?®ce© aeaY©¬ sub sp,LocalSize ;a a?aY¤Y«?ai «®? «ieY ?YaY¬YeY ... call OtherFunc ;ce§®c ¤aaF®F® ®cYa«Y©®F® ¬®¤a«i ... mov sp,bp ;®ac®!®¦¤Y?Y «®? «iea ?YaY¬Yea pop bp ;c®aaa ®c«Y?Y BP RET ;c®§ca a ExternFunc ENDP F¤Y LocalSize - ia® a §¬Ya «®? «iea ?YaY¬Yea. …a«? LocalSize a cY a«i, ce ¬®¦YaY ®?aaa?ai ¤cY aaa®??, a a?aY- ¤Y«Y?i ? ®ac®!®¦¤Y?i «®? «iea ?YaY¬Yea, ® ? c ?®Y¬ a«ac Y Y«i§i ®?aa? ai aaa ®c?a aaY?®c®F® aeaY©¬  BP, ¤ ¦Y Ya«?  aFa¬Ya®c ? ?YaY¬Yea c aaY?Y Ya. ˜a? aaY!®c ?i ®aa iaai aY¬? ¦Y c a«ac Y, ?®F¤  TxternFunc ¤Y« Ya ?®acYeY aae«??  ®cYa«Y©eY aea?ae??. ˜ ?a?¬Ya, Ya«? OtherFunc ce§ec Ya ®cYa«Y©eY aea?ae??, ®a ¬  Y ic«iYaai ®cYa«Y©®©, a® ExternFunc¤®«¦ !eai FAR ? a ?¦Y ¤®«¦  aaa  c«?c ai aaY?®ce© aeaY©¬. ‚ a«ac Y, ?®F¤  iaaY¬!«Ya i ?®¤?a®Fa ¬¬  Y ¤Y« Ya ? ?ai¬ea, ? ?®acYea aae«®?   ®cYa«Y©eY aea?ae??, a® a?Yae?-  «ieY aaY!®c ?i ®aaaaaacaia; ?®¤?a®Fa ¬¬    i§e?Y  aaY¬!- «Ya  ¬®¦Ya !eai ®!eic«Y  ? ? NEAR. ?  Y ®!i§   aaa  c- «?c ai aaY?®ce© aeaY©¬. ?cYa«Y©eY ?®¤?a®Fa ¬¬e  i§e?Y  aaY¬!«Ya Y ¤®«¦e a®§¤ c ai ?YaY¬YeY c ?®¤®c®¬ aYF¬YaY, ?®a?®«i?a caY ?§¬Y- Y?i, cYaYeY c ®cYa«Y©e© ?®¤®ce© aYF¬Ya, aYaiiaai ?a? ®ac®!®¦¤Y?? ®cYa«Yi. ˜®¤®!?¬ ¦Y ®!a §®¬, a? § aY«? ®!eY?- a®c, a a?®«®¦Yea c ®cYa«Y©ea aYF¬Ya a,Y a®aa iia ¤®a- a®cYa®aai ?®a«Y ce§®c  ¤aaF?a ®cYa«YYc, ?®a?®«i?a ?a®Fa ¬¬  a?a c«Y?i ®cYa«Yi¬? ac®!®¤® ?YaY¬Ye Ya ? ®ac®!®¦¤ Ya ®cYa- «Y©eY ?®¤®ceY aYF¬Yae c ? ¬ia?. ‘c®??F …a«? c a?aaY¬Y?®¬?iiaYa  aaa ®c«Y  ¤®?®«?aY«i i ?«? a ae?aY i ? ¬iai, ce ¬®¦YaY a®®!e?ai ?a®Fa ¬¬Y a?a c«Y?i ®cYa«YYc, ca® a®a ¤®«¦Y ?a?®«i§®c ai YY ?a? ac®??FY. ‚ ia®¬ a«ac Y ?a? a¤ «Y?? ¬®¤a«i ?§ ®cYa«Y©®F® !aaeYa  (?®F¤  aa¤  aaY!aYaai § Faa§?ai®ce© ¬®¤a«i,  !aaeYa ?®«®) ?a®Fa ¬- ¬  a?a c«Y?i ®cYa«Yi¬?¬®¦Ya ?®¬Yaa?ai a¤ «iY¬e© ¬®¤a«i ciaa ? ¬iai. ˜a? «i!®© ?®a«Y¤aieY© § Faa§?Y ia®F® ¬®¤a«i i?®®- ¬?aai caY¬i §  acYaa®F®, ca® ¬®¤a«i ?YaY¬Ye Yaai c ? ¬ia?,   Y ac?aec Yaai a ¤?a? . ‚ ®!®?aa«ac ia Yaai ¤cY c®§¬®¦®aa?: ?a®Fa ¬¬  a?a c«Y- ?i ®cYa«Yi¬? ¬®¦Ya «?!® ®! aa¦?c ai  «?c?Y¤®?®«?aY«i®- ©?«? a ae?aY®© ? ¬ia? a ¬®aa®iaY«i® ? § aY¬ !a ai   aY!i a?a c«Y?Y ia®© ? ¬iaii, «?!® ?a?®«i§®c ai a¦Y ®! aa¦Yai ? a a?aY¤Y«Yai c aai a ?®© ? ¬ia?. ‚ a«ac Y a ae?aY®© - 201 - ? ¬ia? ®! aa¦Y?Y ? ¬ia? Y c® caYa a«ac ia ce?®«iYaai a¤ c®, ?®a?®«i?a ¬®F?Y ?a®Fa ¬¬e ?ie?a®c ?i ? ¬ia? ? ?a®Fa ¬¬e ®aF ?§ ae?? c?aaa «i®F® ¤?a?  ¬®Faa ?a?®«i§®c ai iaa ? ¬iai, Y ¤Y« i ®! ia®¬ ?? ??a ®a¬Ya®?. —a®!e ?§!Y¦ ai ia?a ?a®!«Y¬, ce¤®«¦ea®®!e?ai ?a®Fa ¬¬Y a?a c«Y?i ®cYa«Yi- ¬?  c «ie©  ¤aYa a ae?aY®© ? ¬ia? ? ? ?®© ac aa®? YY ¬®¦® !Y§®? a® ?a?®«i§®c ai. „®?®«?aY«i i ? ¬iai (EMS) ‘c®??F a ¤®?®«?aY«i®© ? ¬iaii ??ae? «?§?aaYaai aea?- ae?Y© _OvrInitEms. ‚®a YY ?a®a®a??: extern int far _OvrInitEms (* unsigned emsHandle, unsigned emsFirst, unsigned emsPages *) _OvrInitEms ? _OvrinitExt ®?aY¤Y«Ye c dos.h …a«? ? a ¬Yaa emsHandlea cY a«i, ?a®Fa ¬¬  a?a c«Y?i ®cYa«Yi¬? ?a®cYaiYa  «?c?Y ¤®?®«?aY«i®© ? ¬ia? ? a a?aY- ¤Y«iYa YY ?®«?cYaac® (Ya«? ¬®¦Ya), ¤®aa a®c®Y ¤«i a §¬YeY- ?i a ¬ caYa ®cYa«YYc, ¬?aa a §¬Ya ®cYa«Y©®F®!aaeYa . ‚ ?a®a?c®¬ a«ac Y emsHandle ¤®«¦Y !eai ¤®?aaa?¬e¬ «®F?cYa??¬ ®¬Ya®¬ EMS, emsFirst - ?Yac®© ?a?®«i§aY¬®© EMS aaa ?aeY©,   emsPages - c?a«®¬ ¤®aaa?ea ?a®Fa ¬¬Y a?a c«Y?i ®cYa«Yi¬? aaa ?ae. …a«? ¤®?®«?aY«i i ? ¬iai ¤®aaa? , a® ¤  i aea?ae?i c®§ca e Ya 0. ˜ ae?aY i ? ¬iai (Ext) ‘c®??Fa a ae?aY®©? ¬iaii ??ae? «?§?aaYaai aea?ae?Y© _ OvrinitExt). ‚®a YY ?a®a®a??: extern int far -OvrininExt (* unsigned long extStart, unsigned long extLength *); …a«? ? a ¬Yaa extStart a cY a«i, a® ?a®Fa ¬¬  a?a c- «Y?i ®cYa«Yi¬? ?a®cYaiYa  «?c?Y a ae?aY®© ? ¬ia?. …a«? ia® c®§¬®¦®, a® ¤«i ac®??F  ®ac®¤?aai YY ac aa®?, a ce© aa¬¬Y caYa ®cYa«YYc, ¬?aa a §¬Ya ®cYa«Y©®F® !aaeYa . ‚?a®- a?c®¬ a«ac Y extStart a®¤Ya¦?a  c «® ¤«i ?a?®«i§®c ?i a ae?aY®© ? ¬ia?, a extLength ! ©a, ¤®aaa?ea ¤«i ?a?®«i- §®c ?i ?a®Fa ¬¬®© a?a c«Y?i ®cYa«Yi¬?. …a«? extLength a c-   a«i, a® ?a®Fa ¬¬  a?a c«Y?i ®cYa«Yi¬? ¬®¦Ya ?a?®«i§®- c ai cai a ae?aYai? ¬iaia  ¤aYa ¬?, aa ae?¬?cY¬ extStart. „  i aea?ae?i c®§ca e Ya 0, Ya«? a ae?aY i ? ¬iai ¤®aaa?-  . _OvrinitExt ®?aY¤Y«Y  c dos.h. ‚ ¦®Y § ¬Yc ?Y ! ?a?®«i§®c ?Y a ae?aY®© ? ¬ia? Y aa ¤ aa?§®c ®. •®ai ?a®Fa ¬¬  a?a c«Y?i®cYa«Yi¬? ? ?a®!aYa ?a?¬Y?ai caY ?§cYaaeY ¬Ya®¤e ¤«i ®?aY¤Y«Y?i a §¬Ya  a¦Y?a?®«i§®c ®©- a ae?aY®© ? ¬ia?, iaa aea?ae?i a«Y¤aYa ?a?¬Yiai ®aa®a®¦®. ˜ ?a?¬Ya, Ya«? a c a c a?aaY¬Y aaa ®c«Y  ?a®Fa ¬¬  ?ie?a®- c ?i ¦Yaa?®F® ¤?a? , ?a?®«i§aie i 2 ?! ®?Ya a?c®© ? ¬ia? (? a ae?aY®© ? ¬ia? c a®¬ c?a«Y), a® ¬®¦® § aa c?ai ?a®F- a ¬¬a a?a c«Y?i ®cYa«Yi¬? § iai ®aa «iai c aai a ae?aY- ®© ? ¬ia? ?a? ?®¬®e? ce§®c : if (_OvrinitExt (1024L * (2048 + 1024), OL)) - 202 - puts ("„®aaa? i a ae?aY i ? ¬iai ¤«i ac®??F  ®cYa- «YYc ®aaaaaacaYa"); ?« c  5 ‚?¤Y® aea?ae?? Turbo C++ ?®aa c«iYaaia ?®«®© !?!«?®aY?®©Fa ae?cYa??a aea?ae?©, ?®§c®«iie?a a®§¤ ?Y i?a ea Fa ae??®c ? ¤? Fa ¬¬. „  i F« c  a®¤Ya¦?a ?a a?®Y ®??a ?Y c?¤Y® aY¦?¬®c ? ®?®. ‡ aY¬ ®!eiaiYaai,? ? ?a®Fa ¬¬?a®c ai c aY?aa®c®¬ ?Fa ae?cYa- ?®¬ aY¦?¬ a. ‚?¤Y® aea?ae??TurboC++   «®F?ce a®®acYaaacaie?¬ ?®¤?- a®Fa ¬¬ ¬c Turbo Pascal. …a«? ce Y § ?®¬e a ¬Ya®¤ ¬? a?- a c«Y?i i?a e¬? aY¦?¬ ¬? c eYF® PC ?«? a®§¤ ?i ? a?a c«Y?i ®? ¬? ? Fa ae?cYa??¬? ®? ¬?, ?®aa aiaY Ya?®«i?® ¬?aa ? ?a®ca?aY ?a a?®Y ?§«®¦Y?Y ia?a c®?a®a®c. ˜Ya?®«i?® a«®c ® c?¤Y® aY¦?¬ a ‚ e ?®¬?iiaYa ®!i§ aY«i® ?¬YYa Y?®a®ae© c?¤Y®  ¤ ?- aYa. ˜a® ¬®¦Ya !eai ?®®aa®¬e© ¤?a?«Y©e©  ¤ ?aYa (MDA) ¤«i ! §®c®F® (a®«i?® aY?aa®c®F®) ¤?a?«Yi, «?!® ia® ¬®¦Ya !eai Fa ae?cYa??©  ¤ ?aYa,  ?a?¬Ya –cYa®© Fa ae?cYa??© ¤ ?aYa (CGA), “«aceYe© Fa ae?cYa??©  ¤ ?aYa (EGA), «?!® ¬®®aa®¬- e© Fa ae?cYa??©  ¤ ?aYa Hercules. ? ¦¤e© ?§ ia?a  ¤ ?aYa®c ¬®¦Ya a !®a ai c Ya?®«i??a aY¦?¬ a; aY¦?¬ ®?aY¤Y«iYa cY«?- c?a i?a   - 80 ?«? 40 a?¬c®«®c c aaa®?Y (a®«i?® c aY?aa®- c®¬ aY¦?¬Y), a §aYe ieai a?®a®!®aai i?a   (a®«i?® c Fa ae?- cYa?®¬ aY¦?¬Y) ? a?? ¤?a?«Yi (aecYa®©?«? cYa®-!Y«e©). ˜ !®c?© aY¦?¬ i?a   ®?aY¤Y«iYaai, ?®F¤  c e  ?a®Fa ¬¬  ce§ec Ya ®¤a ?§ aea?ae?© ®?aY¤Y«Y?i aY¦?¬  (textmode, Initgraph ?«? setgraphmode). - ‚ aY?aa®c®¬ aY¦?¬Y i?a  ?®¬?iiaYa  a §¤Y«Y   icY©- ?? (80 ?«? 40 aa®«!ae®c c e?a?a ? 25, 42 ?«? 50 aaa®? ?® ce- a®aY). ? ¦¤ i icY©?  a®aa®?a ?§  aaa?!aa  ? a?¬c®«  . ‘?¬c®« ?aY¤aa c«iYa a®!®© ?¬Yie?© Fa ae?cYa?®Y ®a®!a ¦Y?Y ASCII-a?¬c®«,    aaa?!aa § ¤ Ya, ? ??¬ ®!a §®¬ ¤ e© a?¬c®« !a¤Ya cecY¤Y   i?a  (YF® aecYa, ia?®aai, ? a.¤.). Turbo C+ + ?aY¤®aa c«iYa ?®«e©  !®a ?®¤?a®Fa ¬¬ ¤«i ¬ ??a«?a®c ?i aY?aa®ce¬ i?a ®¬, ¤«i cec®¤  aY?aa  Y?®aaY¤aacY®   i?- a  ? a?a c«Y?i  aaa?!aa ¬? icYY?. - ‚ Fa ae?cYa?®¬ aY¦?¬Y i?a  ?®¬?iiaYa  ¤Y«?aai   ???- aY«?; ? ¦¤e© ???aY«i ?aY¤aa c«iYa a®!®© ®a®!a ¦Y?Y   i?a - Y ®¤®© a®c??. —?a«® ???aY«Y©   i?a Y (a.Y. YF® a §aYe ie i a?®a®!®aai) § c?a?a ®a a??  ?®¤?«icY®F® ? c - eY© a?aaY¬Y c?¤Y®  ¤ ?aYa  ? aY¦?¬ , c ?®a®ae© aaa ®c«Y ia®a  ¤ ?aYa. „«i ?®«acY?i   i?a Y Fa ae?cYa??a ?§®!a ¦Y- ?© Turbo C++ ?aY¤®aa c«iYa !?!«?®aY?a Fa ae?cYa??a aea?ae?©: ce ¬®¦YaY a®§¤ c ai   i?a Y «??? ? ae®a¬e, § ?®«YeY e !«® ¬? § ¬?aaeY ®!« aa?,   a ?¦Y a?a c«iai aecYa®¬ ? ¦¤®- F® ???aY«i. ‚ aY?aa®c®¬ aY¦?¬Y ?®§?ae?i cYaaYF® «Yc®F® aF«  i?a   ®?aY¤Y«iYaai?®®a¤? a ¬? (1,1),F¤Y x-?®®a¤? a  a aaYa a«Yc  - ?a c®,   y-?®®a¤? a  a aaYa acYaaa-c?§. ‚ Fa ae?cYa?®¬ aY¦?¬Y ?®§?ae?i cYaaYF® «Yc®F® aF«  ®?aY¤Y«iYaai ?®®a¤? a - ¬? (0,0), a aY¬? ¦Y  ?a c«Y?i c®§a aa ?i ?®®a¤? a. ˜Ya?®«i?® a«®c ® aY?aa®cea ? Fa ae?cYa??a ®? a Turbo C++ ®!Ya?Yc?c Ya aea?ae?? ¤«i a®§¤ ?i ®?® ? a?- - 203 - a c«Y?i ?¬? c aY?aa®c®¬ aY¦?¬Y (? Fa ae?cYa??a ®?® c Fa ae?- cYa?®¬ aY¦?¬Y). …a«? ce Y § ?®¬ea aY?aa®ce¬? ? Fa ae?cYa??¬? ®? ¬?, ®§ ?®¬iaYai a® a«Y¤aie?¬ ?a a??¬ ?a ?§«®¦Y?Y¬. ”a?ae?? Turbo C++, ?®§c®«iie?Y a?a c«iai aY?aa®- ce¬? ? Fa ae?cYa??¬? ®? ¬?, ®??a e ?¦Yc a §¤Y« a "˜a®Fa ¬- ¬?a®c ?Y c aY?aa®c®¬ aY¦?¬Y" ? "˜a®Fa ¬¬?a®c ?Y c Fa ae?- cYa?®¬ aY¦?¬Y". —a® a ?®Y ®?® ? ??® ?aY¤aa c«iYa a®!®© ?ai¬®aF®«aai ®!« aai, ®?aY¤Y«Yai   c?¤Y® i?a Y c eYF® PC, ?®F¤  ®  a®¤?aai c aY?aa®c®¬ aY¦?¬Y. ?®F¤  c e  ?a®Fa ¬¬  ce?®«iYa cec®¤   i?a , a® ®!« aai cec®¤  !a¤Yac a ?®¬ a«ac Y ®Fa ?cY   ?- a?ce¬ ®?®¬. ?aa «i i c aai i?a   (cY ®? ) ®aa Yaai !Y ?§¬YY?©. ˜® a¬®«c ?i a §¬Ya ®?  a cY caY¬a i?a a. ‚ e  ?a®F- a ¬¬  ¬®¦Ya?§¬Y?ai ¤ ®Y a¬®«c ?Y ?®«®i?a ®F® aY?aa®- c®F® ®?    aY?aa®c®Y ®?®, ¬YieYY cY¬ ?®«e© i?a  (?a? ?®¬®e? aea?ae?? window). ˜a  aea?ae?i § ¤ Ya ?®§?ae?i ®?  c i?a ea ?®®a¤? a a. —a® a ?®Y Fa ae?cYa?®Y ®?® ? ‚ Fa ae?cYa?®¬ aY¦?¬Y ce a ?¦Y ¬®¦YaY ®?aY¤Y«?ai Y?®a®- aai ?ai¬®aF®«iai®!« aai i?a   PC; ia  ®!« aai  §ec Yaai Fa ae?cYa??¬ ®?®¬. ?®F¤  c e  Fa ae?cYa? i?a®Fa ¬¬  ce?®«iYa cec®¤ a?aa?®c ? a.¤., Fa ae?cYa?®Y ®?® ¤Y©aacaYa ? ?c?aaa-  «ie© i?a . ?aa «i i c aai i?a   (cY Fa ae?cYa?®F® ®? ) ®aa Yaai !Y§ ?§¬YY?©. ??aY¤Y«?ai Fa ae?cYa?®Y ®?® ¬®¦® cYaY§ i?a eY ?®®a¤? ae, ce§c c aea?ae?i setviewport. ?®®a¤? ae ‡  ?a?«icY?Y¬ aea?ae?© ®?aY¤Y«Y?i aY?aa®cea ?Fa ae?cYa- ??a ®?®,caY ®aa «ieYaea?ae??, ? ? aY?aa®c®F®, a ? ? Fa ae?- cYa?®F® aY¦?¬®c, ¤ iaai c «®? «iea ?®®a¤? a a  ?a?c®F® aY?aa®c®F®?«? Fa aecYa?®F® ®? ,   Y c  !a®«iaea i?a ea ?®®a¤? a a. ˜a? ia®¬ cYaa?© «Yce© aF®« aY?aa®c®F® ®?  !a- ¤Ya ic«iaiai  c «®¬ ?®®a¤? a (1,1); c Fa ae?cYa?®¬aY¦?¬Y  c «® ?®®a¤? a Fa ae?cYa?®F® ®?  !a¤Ya a c® (0,0). ˜a®Fa ¬¬?a®c ?Y c aY?aa®c®¬ aY¦?¬Y ‚ ¤ ®¬ a §¤Y«Y ?a?c®¤?aai ?a a?®Y?§«®¦Y?Y aea?ae?©, ?a?®«i§aY¬ea c aY?aa®c®¬ aY¦?¬Y. ˜®«YY ?®¤a®!ai ?ae®a¬ ae?i ®! ia?a aea?ae?ia a¬. c ?« cY 1, "˜?!«?®aY?  ?a?®«iieY© a?a- aY¬e" ‚ ‘?a c®c??Y ?® !?!«?®aY?Y. ‚ Turbo C++ ? ?Ya aea?ae?© ?ai¬®F® cc®¤ /cec®¤   ?®- a®«i (cprintf, cputs ? a.¤.) ®!Ya?Yc?c Ya cea®?®? cYaacYe© cec®¤ aY?aa , a?a c«Y?Y ®? ¬?, ?®§?ae?®?a®c ?Y ?aaa®a  ? a?a c«Y?Y  aaa?!aa ¬? c?¤Y® ?§®!a ¦Y?©. ‚aYia? aea?ae?? ic- «iiaai c aaii aa ¤ aaea !?!«?®aY? Turbo C++; ®? ?¬Yia?a®- a®a??e c ae ©«Y § F®«®c?  conio.h. ”a?ae?? ?®a®«i®F® cc®¤ /cec®¤  ”a?ae?? aY?aa®c®F® aY¦?¬  TUrbo C++ a !®a ia c «i!®¬ ?§ eYaa? c®§¬®¦ea aY?aa®cea c?¤Y® aY¦?¬®c.˜Y¦?¬e, ¤®aaa?eY c c eY© a?aaY¬Y, § c?aia ®a a??  c?¤Y®  ¤ ?aYa  ? ¬®?a®a  a?aaY¬e. ’Y?ae?© aY?aa®ce© aY¦?¬ § ¤ Yaai ce§®c®¬ textmode. ?e ®!eia?¬, ? ? ?a?®«i§®c ai iaa aea?ae?i, ?¦Y c ¤ ®© F« cY, ? ?a®¬Y a®F®, ®  ®??a   c ?« cY 1 ‘?a c®c??  ?® !?!«?®aY?Y. - 204 - ”a?ae?? aY?aa®c®F® aY¦?¬  ¤Y«iaai   cYaeaY ®a¤Y«ieY Faa??e: - cec®¤  ? ¬ ??a«?a®c ?Y aY?aa®¬ - a?a c«Y?i ®? ¬? ? aY¦?¬®¬ - a?a c«Y?i  aaa?!aa ¬? - § ?a®a  a®aa®i?i ˜a? cYaeaY Faa??eaea?ae?© ¤«iaY?aa®c®F® aY¦?¬  a aa¬ a- a?c iaai c a«Y¤aie?a cYaeaYa a §¤Y« a: ‚ec®¤ ? ¬ ??a«?a®c ?Y aY?aa®¬ ___________________________________________________________ ˜?¦Y ?YaYc?a«Ye aea?ae?? cec®¤  ? ¬ ??a«?a®c ?i aY?a- a®¬ c aY?aa®c®¬ aY¦?¬Y: ‡ ??ai ? caY?Y aY?aa : cprintf˜®ae« Ya   i?a  ae®a¬ a?a®c e© cec®¤. cputs˜®ae« Ya   i?a  aaa®?a. getche‘c?aec Ya a?¬c®« a ia®-®a®!a ¦Y?Y¬ YF®   i?a Y putch˜®ae« Ya   i?a  ®a¤Y«ie© a?¬c®«. ? ??a«?a®c ?Y aY?aa®¬ (? ?aaa®a®¬)   i?a Y: clreol‘a?a ?Y ®a ?aaa®a  ¤® ?®ae  aaa®??. clrscr‘a?a ?Y aY?aa®c®F® ®? . delline“¤ «Y?Y aY?aeY© aaa®?? ?aaa®a . gotoxy˜®§?ae?®?a®c ?Y ?aaa®a . Insline‚aa c?  ?aaa®© aaa®?? ?®¤ aY?aeY© ?®§?ae?Y© ?aaa®a . movetext?®??a®c ?Y aY?aa  ?§ ®¤®© ®!« aa? i?a     ¤aaFai. ˜YaYae«?  !«®?®c aY?aa  ¬Y¦¤a ? ¬iaii ? i?a ®¬: gettext?®??a®c ?Y aY?aa  ?§ ®!« aa? i?a   c ? ¬iai. puttext?®??a®c ?Y aY?aa  ?§ ? ¬ia? c ®!« aai i?a  . ˜® a¬®«c ?i c e? ?a®Fa ¬¬e i?a ®F® cec®¤  a !®a ia a ?®«®i?a e¬ aY?aa®ce¬ ®?®¬, ?®ia®¬a ce ¬®¦YaY c ?a aa §a ¦Y  c? ai ??a ai, c?a ai ? ¬ ??a«?a®c ai aY?aa®¬ !Y§ ? - ??a-«?!® ?aY¤c a?aY«iea aaa ®c®? aY¦?¬ . ‡ ??aiaY?aa    i?a  ce?®«iYaai ?a? ?®¬®e? ?®a®«iea aea?ae?© ?ai¬®F® ce- c®¤  cprintf, cputs ? putch,   cc®¤ a ?®a®«? a ia®-®a®!a - ¦Y?Y¬ a?¬c®«®c   i?a Y ce?®«iYaai aea?ae?Y© getche. –??- «?cYa??© ?YaYa®¤ aY?aa  ?® i?a a ®?aY¤Y«iYaai F«®! «i®© ?YaY¬Y®© -wscroll. …a«? _wscroll a c 1, a®aY?aa ?a? ¤®a- a?¦Y???®ae  aaa®?? ?YaYa®¤?a   a«Y¤aieai aaa®?a i?a  , ?a?cY¬ ?a? Y®!a®¤?¬®aa?ce?®«iYaai cYaa?? «ie© a?a®««?F. …a«? _wscroll a cY 0, a® aY?aa ?YaYa®¤?a   aa ¦Y a ¬ai aaa®?a, ? a?a®««?F Yce?®«iYaai. ˜® a¬®«c ?i _wscroll a c  1. ˜®a«Y a®F®, ? ? c e aY?aa cecY¤Y   i?a , ce ¬®¦YaY aaYaYai  ?a?c®Y ®?® ?a? ?®¬®e? clrscr, «?!® aaYaYai c aai aaa®?? ®a aY?aeY© ?®§?ae?? ?aaa®a  ?a? ?®¬®e? clreol, «?!® a¤ «iai aeY«ai aaa®?a ?a? ?®¬®e? delline, «?!® caa c?ai ?aa- aai aaa®?a ?a? ?®¬®e? insline. ’a??®a«Y¤?Y aea?ae?? a !®a ia ®a®a?aY«i® aY?aeY© ?®§?ae?? ?aaa®a ; ?YaY¬YeY?Y ?aaa®a  c ¦Y« Y¬ai ?®§?ae?i ce?®«iYaai ?a? ?®¬®e? gotoxy. ‚e ¬®¦YaY a ?¦Y a?®??a®c ai aeY«e© !«®? aY?aa  ?§ ®¤®© ?ai¬®aF®«i®© - 205 - ®!« aa? c ¤aaFai ?a? ?®¬®e? movetext. ?¬YYaai a ?¦Y aea?ae?i ?®??a®c ?i ?ai¬®aF®«i®© ®!« aa? aY?aa  a i?a   c ? ¬iai gettext ? ®!a a i aea?ae?i ?®??a®- c ?i aY?aa  ?§ ? ¬ia?   i?a  (c «i!ai ?®§?ae?i) puttext. “?a c«Y?Y ®? ¬? ? aY¦?¬®¬ ___________________________________________________________ ‘aeYaacaYa ¤cY aea?ae?? a?a c«Y?i ®? ¬? ? aY¦?¬®¬: textmode “aa  c«?c Ya aY?aa®ce© aY¦?¬ i?a  . window ??aY¤Y«iYa ®?® aY?aa®c®F® aY¦?¬ . ”a?ae?i textmode ?®§c®«iYa aaa  c«?c ai ¤«i i?a   ®¤? ?§ Ya?®«i??a aY?aa®ceac?¤Y® aY¦?¬®c(ia  c®§¬®¦®aai ®Fa ?cY  a®«i?® a?? ¬? ¬®?a®a  ?  ¤ ?aYa , aaa ®c«Yea c c eY© a?aaY¬Y. ”a?ae?i ??ae? «?§?aaYa i?a  ? ? ?®«®i?- a ®Y aY?aa®c®Y ®?® c ?®?aYa®¬ § ¤ ®¬ aY¦?¬Y ? ®c?e Ya i?a  ®a «i!ea ®aa ce?aai   Y¬ aY?aa®c ?«? ?§®!a ¦Y?©. ?®F¤  i?a   a®¤?aai c aY?aa®c®¬ aY¦?¬Y, ce ¬®¦YaY ce- ?®«iai ?®«®i?a e©cec®¤   YF®, «?!®aaa ®c?ai ¤«i cec®- ¤  c aai i?a   - ®?®- c ?®a®a®Y c e  ?a®Fa ¬¬ ? !a¤Ya ce- ?®«iai ¤ «iY©e?© cec®¤ aY?aa . „«i a®§¤ ?i aY?aa®c®F® ®?  a«Y¤aYa ce§c ai aea?ae?i window, § ¤ c ®!« aai   i?a - Y, ?®a®aai ia® ®?® !a¤Ya § ?¬ ai. “?a c«Y?Y  aaa?!aa ¬? ___________________________________________________________ ˜?¦Y ?a a?® ?YaYc?a«Ye aea?ae?? a?a c«Y?i  aaa?!aa ¬? c?¤Y® ?§®!a ¦Y?© c aY?aa®c®¬ aY¦?¬Y: “aa ®c?   aaa?!aa®c ?YaY¤YF® ?«   ? ae® : textattr ?¤®caY¬Y i aaa ®c?  ( aaa?!aa®c) aecYa®  ?YaY¤YF® ?«   ? ae® . textbackground “aa ®c?  ( aaa?!aa ) aecYa  ae® . textcolor “aa ®c?  ( aaa?!aa ) aecYa  ?YaY¤YF® ?«  . ?®¤?ae?? ae?i ia?®aa?: highvideo “aa ®c?  ?®ceeY®© ia?®aa? aY?aa . lowvideo “aa ®c?  ?§?®© ia?®aa? aY?aa . normvideo “aa ®c?  ®!ec®© ia?®aa? aY?aa . ”a?ae??a?a c«Y?i  aaa?!aa ¬? aaa  c«?c ia aY?ae?©  a- aa?!aa, ?aY¤aa c«iie?© a®!®© 8-!?a®c®Y § cY?Y. —YaeaY ¬« ¤e?a !?a   aaa?!aa  § ¤ ia aecYa ?YaY¤YF® ?«  , a«Y¤ai- e?Y aa? !?a  § ¤ ia aecYa ae® ,   aa ae?© !?a § ¤ Ya "¬?F - ?Y" ?§®!a ¦Y?i, ¤«i ?®a®a®F® aaa ®c«Y ¤ e©  aaa?!aa. ‚ec®¤ caYa ?®a«Y¤aie?a aY?aa®c ce?®«iYaai a ?a?®«i§®- c ?Y¬ aY?aeYF®  aaa?!aa . ˜« F®¤ ai aea?ae?i¬ a?a c«Y?i  aaa?!aa ¬? ce ¬®¦YaY aaa  c«?c ai aecYa  ae®  ? ?YaY¤YF® ?«   (a?¬c®«®c)? ? ?®a®§i (textbackground ? textcolor), a ? ? ®!eY¤?ii a?Yae?ae?? ae?? ia?a aecYa®c c ®¤®¬ ®!a eY?? ? textattr. ‚e ¬®¦YaY § ¤ c ai a ?¦Y  aaa?!aa ¬?F ?i ?YaY¤Y- F®?«   (a.Y. a®!aacY® cec®¤?¬ea a?¬c®«®c). ˜®«ie?aac® aecYaea ¬®?a®a®c c aecYaea aY¦?¬ a ¤ Ya ?aa?eY § ¤ eY aecYa . ˜Y-aecYaeY ¬®?a®ae ¬®Faa ?aY®!a §®cec ai Y?®a®aeY ?§ia?a  aaa?!aa®c ?«? caY  aaa?!aae c a §«?ceY ¬®®aa®¬ a?- cYa??Y ®aaY?? ?«? ¤aaF?Y c?§a «ieY iaeaeY?ae,? ?  ?a?¬Ya, ¦?ae© ea?aea, ?®¤cYa??c ?Y, ?cYaa®Y ?§®!a ¦Y?Y ? a.¤. ‚e ¬®¦YaY a ?¦Y ?YaY®?aY¤Y«?ai ¤«i ?YaY¤YF® ?«   - 206 - ?§®!a ¦Y?i ia?®aai aecYa®c cec®¤  ?a? ?®¬®e? aea?ae?? lowvideo (?®a®a i ce?«ic Ya !?a ?®ceeY®© ia?®aa? ®a®!a ¦Y- ?i a?¬c®«®c). ‹?!®  ®!®a®a, ce ¬®¦YaY ?§¬Y?ai ia?®aai   ?®ceeYai ?a? ?®¬®e? aea?ae?? highvideo (?®a®a i c?«ic Ya !?a ?®ceeY®© ia?®aa?). ?®F¤  ce¤Y«Y?Y ia?®aaii!®«ieYY aaY!aYaai,¬®¦® c®aaa ®c?ai ?aa®¤ai aaa ®c?a ia?®aa? ?a? ?®¬®e? aea?ae?? normvideo. ‡ ?a®a a®aa®i?i ___________________________________________________________ ˜?¦Y ?a a?® ?YaYc?a«Ye aea?ae??, ?a? ?®¬®e? ?®a®aea c - e  ?a®Fa ¬¬  ¬®¦Ya a¤Y« ai § ?a®a a®aa®i?i c?¤Y® ? a ¬Ya- a®c: gettextinfo ‡ ?®«iYa aaaa?aaaa text_info ?ae®a¬ ae?Y© ® aY?aeY¬ aY?aa®c®¬ ®?Y. wherex „ Ya x-?®®a¤? aa icY©?? i?a  , c ?®a®a®© c aY?ae?© ¬®¬Ya  a®¤?aai ?aaa®a. wherey „ Ya y-?®®a¤? aa icY©?? i?a  , c ?®a®a®© c aY?ae?© ¬®¬Ya  a®¤?aai ?aaa®a. ”a?ae?? ?®a®«i®F® cc®¤ /cec®¤  Turbo C++ c?«ic ia c aY!i Ya?®«i?® a?Yae? «iea aea?ae?© § ?a®a  a®aa®i?i. ˜a? ?®¬®e? ia?a aea?ae?© ce ¬®¦YaY ?®«ac?ai ¤®aaY? ? ?ae®a¬ ae?? ® aY?aeY¬ aY?aa®c®¬ aY¦?¬Y ? aY?aeY© ?®§?ae?? ?aaa®a  c ia®¬ ®?Y. ”a?ae?i gettextinfo§ ?®«iYa aaaa?aaaa text_info (®?aY- ¤Y«Yai c conio.h) ?®¤a®!e¬? ¤ e¬?® aY?aa®c®¬ ®?Y, c?«ic i: - aY?ae?© c?¤Y® aY¦?¬ - ?®§?ae?i ®?  c  !a®«iaea i?a ea ?®®a¤? a a - a §¬Yae ®?  - aY?ae?Y aecYa  ?YaY¤YF® ?«   ? ae®  - aY?ae i ?®§?ae?i ?aaa®a  ?®F¤  c ¬ a¦e a®«i?® Y?®a®aeY ?§ ia?a ¤Ya «Y©. ‚¬Yaa® ®!a eY?i ? ?®«®© ?ae®a¬ ae?? ® ¤ ®¬ aY?aa®c®¬®?Y ¬®¦® ®a¤Y«i® ?®«ac?ai acY¤Y?i ® aY?aeY© ?®§?ae?? (®a®a?- aY«i®  c «  ®? ) ?aaa®a  a ?®¬®eii aea?ae?© wherex ? wherey. ”®a¬  ?aaa®a  ___________________________________________________________ „«i ?§¬YY?i a?®a®!  ?aY¤aa c«Y?i ?aaa®a  a«a¦?a ®- c i aea?ae?i _setcursortype. ?  ?a??¬ Ya § cY?i _NOCURSOR, ?®a®a i c®®!eY ®a¬YiYa ?aaa®a, _SOLIDCURSOR, ?®- a®a i ¤ Ya ?aaa®a c c?¤Y a?«®e®F® ?ai¬®aF®«i?c?  ? _NORMALCURSOR, ?®a®a®Y a®®acYaaacaYa ®!ec®¬a ?aaa®aa c ae®a- ¬Y ?®¤cYa??c ?i. ’Y?aa®ceY ®?  ˜® a¬®«c ?i aY?aa®c®Y ®?® ?¬YYa a §¬YacaYF® i?a -  ;ia® a¬®«c ?Y ¬®¦® ?§¬Y?ai, a®§¤ c ®?®, ?® a §¬Yaa ¬YieY i?a  , a ?®¬®eii aea?ae?? window. ’Y?aa®ceY ®?  ¬®- Faa a®¤Ya¦ ai ¤® 50 aaa®? ? ®a 40 ¤® 80 aa®«!ae®c. ˜ c «® ?®®a¤? a ®? (a®c? , ®a ?®a®a®© ®aac?aec iaai ?®®a¤? ae ®? ) c Turbo C++ «Y¦?a ccYaaY¬ ¤Yc®¬aF«a ®? . ?®®a¤? ae cYaaYF® «Yc®F® aF«  ®?  a ce (1,1); ?®®a¤? ae - 207 - ?a c®F® ?¦YF® ®?  ?®«®i?a ®F® ®?  a ce ?a? 80aa®«!- ae a ? 25 aaa®? a (80,25). ˜a?¬Ya ___________________________________________________________ ˜aY¤?®«®¦?¬, a c a ?¬YYaai 100%-a®c¬Yaa?¬ i a PC a?aaY- ¬ ,  a®¤ie iai c aY?aa®c®¬ aY¦?¬Y a 80 aa®«!ae ¬?, ?ce ¦Y« - YaY a®§¤ ai ®?®. ‚Yaa?© «Yce© aF®« ®?  ¤®«¦Y ?¬Yai i?a eY ?®®a¤? ae (10.8),   ?¦?© ?a ce© - (50,21). „«i ia®F® aaY!aYaai ce§c ai aea?ae?i window: window(10, 8, 50, 21); ’Y?Yai, a®§¤ c aY?aa®c®Y ®?®, ce ¬®¦YaY ?®¬Yaa?ai ?aa- a®a c ?®§?ae?i ®?  (5,8) ? cecYaa?,  c? i a ia®©?®§?ae??, Y?®a®ae© aY?aa a ?a?®«i§®c ?Y¬ gotoxy ? cputs. gotoxy(5, 8); cputs("‘ ¤Y¬ a®¦¤Y?i, ”aY? ˜®a« ¤"); ‘«Y¤aie?© a?aa®? ?««iaaa?aaYa a? § ®Y. ‘a®«!Yae 1 i?a   \! ‘aa®?  1--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx i?a   x x x x x x x x x x x x ‘aa®?  1--x --- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x ®?  x x x x x x x x x x ‘ ¤Y¬ a®¦¤Y?i, ”aY? ˜®a« ¤ x x x x x x ‘aa®?  14-x---- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x ®?  x x x \! \! x x \! \! x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-‘aa®?  \! \! \! 25 \! \! \! i?a   \! \! \! ‘a®«!Yae 1 ‘a®«!Yae 41 ‘a®«!Yae 80 ®?  ®?  i?a   ˜?a.5.1 ??® c aY?aa®c®¬ aY¦?¬Y 80x25 ’?? text_mode ‚e ¬®¦YaY ?YaYcYaa? ac®© ¬®?a®a c ®¤? ?§ aY¬? aY?aa®- cea aY¦?¬®c PC, ce§c c ¤«i ia®F®aea?ae?i textmode. ??aY¤Y«iY- ¬e© c conio.h ?YaYc?a«?¬e© a?? text_mode ?®§c®«iYa ?a?®«i§®- c ai c ? cYaacY  aFa¬Ya  aY¦?¬ , § ¤ c Y¬®F® ?a? ce§®cY text_mode, «i!®Y a?¬c®«?cYa?®Y ?¬i, ®?aY¤Y«Y®Y ¤«i ¤ ®F® ?YaYc?a«?¬®F® a?? , c¬Yaa® "aeaea" ®¬Ya®c aY¦?¬®c. ?¤ ?®, ca®!e c®a?®«i§®c aiai ¤ e¬? a?¬c®?cYa??¬? ?®aa a ¬?, a«Y¤aYa ccYaa?: #include

c ?aa®¤e© ?®¤ ?a®Fa ¬¬e.

– 208 –
—?a«®ceY ? a?¬c®«?cYa??Y § cY?i, ®?aY¤Y«YeY c text_
mode, ?a?c®¤iaai ?¦Y:

———————————————————–
‘?¬c®«?cYa? i—?a«®c®Y
?®aa a § cY?Y ’Y?aa®ce© c?¤Y® aY¦?¬
———————————————————–
LASTMODE -1 ˜aY¤e¤ae?© aY?aa®ce© aY¦?¬
BW40 0 —Ya®-!Y«e©, 40 aa®«!ae®c
C40 1 16 aecYa®c, 40 aa®«!ae®c
BW80 2 —Ya®-!Y«e©, 80 aa®«!ae®c
C80 3 16 aecYa®c, 80 aa®«!ae®c
MONO 7 ?®®aa®¬e©, 80 aa®«!ae®c
C4350 64 EGA, 80×43; VGA, 80×50 aaa®?
———————————————————–

˜ ?a?¬Ya, a«Y¤aie?Y ce§®ce textmode ?®¬Ye iac e aecYa®©
¬®?a®a c a? § e© a !®c?© aY¦?¬:

textmode(0) —Ya®-!Y«e©, 40 aa®«!ae®c
textmode(BW80) —Ya®-!Y«e©, 80 aa®«!ae®c
textmode(c40) 16 aecYa®c, 40 aa®«!ae®c
textmode(3) 16 aecYa®c, 80 aa®«!ae®c
textmode(7) ?®®aa®¬e©, 80 aa®«!ae®c
textmode(C4350) EGA, 80×43; VGA, 80×50 aaa®?

˜®a«Y ce§®c  textmode a aY¦?¬®¬C4350 a«Y¤aYa?a? ?®¬®e?
aea?ae?? settextinfo § ¤ ai c?a«® aaa®? i?a  .
–cYa  aY?aa 

˜®¤a®!ai ?ae®a¬ ae?i ® a®¬, ? ? aa iaai  aaa?!aae icY-
Y?, a¬. c ®??a ?? textattr c ?« cY 1 ‘?a c®c??  ?® !?!«?®-
aY?Y.

?®F¤  a?¬c®« § ?¬ Ya icY©?a, aecYa ia®F® a?¬c®«   §e-
c Yaai aecYa®¬ ?YaY¤YF® ?«  ; aecYa ®aa ceY©ai c aa? icY©??
 §ec Yaai aecYa®¬ ae® .–cYaeY ¬®?a®ae a aecYae¬? c?¤Y® –
¤ ?aYa ¬? ¬®Faa cec®¤?ai ¤® 16 a §«?cea aecYa®c; ¬®®aa®¬eY
¬®?a®ae § ¬Yiia aecYa a §«?ce¬? c?§a «ie¬?  aaa?!aa ¬?
(ia?®aai, ?®¤cYa??c ?Y, ?cYaa®Y ®a®!a ¦Y?Y ? a.¤.).

‚?«ic Y¬e© ae ©« conio.h ®?aY¤Y«iYa c¬Yaa® a §«?cea
aecYa®c a?¬c®«?cYa??Y ?¬Y . ˜a? ?a?®«i§®c ?? ia?a a?¬c®«?-
cYa??a ?®aa a ce ¤®«¦e c?«ic?ai c ?aa®¤e© ?®¤ conio.h.

‚ a«Y¤aieY© a !«?aeY ?a?c®¤iaai ia? a?¬c®«?cYa??Y ?®a-
a ae ? a®®acYaaacaie?Y ?¬ c?a«®ceY § cY?i. ?a¬Ya?¬, ca®
a®«i?® ?YaceY c®aY¬i aecYa®c ic«iiaai ¤®aaa?e¬? ? ¤«i ?YaY¤-
YF® ?«  , ? ¤«i ae® ; ?®a«Y¤?Y 8 aecYa®c (®¬Ya  8 – 15)
¤®aaa?e ?a?«ic?aY«i® ¤«i ?YaY¤YF® ?«   (a®!aacY® a?¬-
c®«®c).

———————————————————–
‘?¬c®«?cYa? i —?a«®c®Y ˜YaY¤?© ?« 
?®aa a  § cY?Y ?«? ae®?
———————————————————–
BLACK 0 ?! 
BLUE 1 ?! 
GREEN 2 ?! 
CYAN 3 ?! 
RED 4 ?! 
MAGENTA 5 ?! 
BROWN 6 ?! 
LIGHTGRAY 7 ?! 
DARKGRAY 8 ’®«i?® ?YaY¤?© ?« 
LIGHTBLUE 9 ’®«i?® ?YaY¤?© ?« 
LIGHTGREEN 10 ’®«i?® ?YaY¤?© ?« 

– 209 –
LIGHTCYAN 11 ’®«i?® ?YaY¤?© ?« 
LIGHTRED 12 ’®«i?® ?YaY¤?© ?« 
LIGHTMAGENTA 13 ’®«i?® ?YaY¤?© ?« 
YELLOW 14 ’®«i?® ?YaY¤?© ?« 
WHITE 15 ’®«i?® ?YaY¤?© ?« 
BLINK128 ’®«i?® ?YaY¤?© ?« 
———————————————————–

…a«? ce¦Y« YaY, ca®!e a?¬c®« ¬?F «, ¤®! ciaY ?  aFa¬Y-
aa ?YaY¤YF® ?«   a?¬c®«?cYa?ai ?®aa aa BLINK(c?a«®c®Y
§ cY?Y 128).

‚ea®?®a?®a®aa®© cec®¤: ?YaY¬Y i directvideo

˜ ?Ya ?®a®«iea aea?ae??© cc®¤ /cec®¤  Turbo C++ c?«i-
c Ya ?YaY¬Yai directvideo. ˜a  ?YaY¬Y i a?a c«iYa
aY¬,ce?®«iYaai «? cec®¤   ?®a®«i ?§ c eY© ?a®Fa ¬¬e Y-
?®aaY¤aacY® c ®?Ya a?cai ? ¬iai ¤?a?«Yi (directvideo =
1), «?!®  ?a c«aeYaai aa¤  cYaY§ ce§®ce BIOS (directvideo =
0).

˜® a¬®«c ?i § cY?Y directvideo = 1 (?®a®«ie© cec®¤
 ?a c«iYaai Y?®aaY¤aacY® c ? ¬iai ¤?a?«Yi). ‚ aeY«®¬, a –
!®a  Y?®aaY¤aacY® a ¤?a?«Y©®© ? ¬iaii aa?®aiYa cec®¤, ®
¤«i ia®F® aaY!aYaai 100% a®c¬Yaa?¬®aai c eY© ¬ e?e a IBM
PC.‚ e  c?¤Y®  ?? a aaa  ¤®«¦  !eai ?¤Ya?c ¤?a?«Y©e¬
 ¤ ?aYa ¬ IBM. “aa ®c?  directvideo=0 ?®§c®«?a c ¬ a !®a ai
  «i!®© ¬ e?Y a IBM-a®c¬Yaa?¬e¬ BIOS, ® cec®¤   ?®a®«i
!a¤Ya Ya?®«i?® § ¬Y¤«Y.
˜a®Fa ¬¬?a®c ?Y c Fa ae?cYa?®¬ aY¦?¬Y

‚ ¤ ®¬ aY¦?¬Y ?a?c®¤?aai ?a a?®Y ?§«®¦Y?Y aea?ae?©,
?a?®«i§aY¬ea c Fa ae?cYa?®¬ aY¦?¬Y. ˜®«YY ?®¤a®! i ?ae®a¬ –
ae?i ®! ia?a aea?ae?ia  a®¤?aai c ?« cY 1 ‘?a c®c??  ?® !?!-
«?®aY?Y.

Turbo C++ ?¬YYa ®a¤Y«iai !?!«?®aY?aa !®«YY cY¬ 70 Fa –
ae?cYa??¬? aea?ae?i¬?,  c? i ®a aea?ae?© cea®?®F® aa®ci
(a ??a ? ? setviewport, bar3d ? drawpoly) ? ?®c i !?a-®a?-
Ya?a®c e¬? aea?ae?i¬? (??  getimage ?putimage). ?a ae?cYa-
? i !?!«?®aY?  ?®¤¤Ya¦?c Ya ¬®F®c?a«YeY aa?«? «??© ? § –
?®«?aY«Y©,   a ?¦Y ?aY¤®aa c«iiac ¬ a §«?ceYaY?aa®ceY
ea?aeae, ?®a®aeY ce ¬®¦YaY ?§¬Yiai ?® a §¬Ya ¬, a?®a®!a ce-
a c?c ?i,   a ?¦Y ®a?Ya?a®c ai ?a «?!® ?® F®a?§®a «?,
«?!® ?® cYaa?? «?.

˜a? aea?ae??  a®¤iaai c !?!«?®aYc®¬ ae ©«Y
GRAPHICS.LIB,   ?a ?a®a®a??e – c ae ©«Y § F®«®c?  graphics.h.
?a®¬Y ia?a ¤caa ae ©«®c, c a®aa c Fa ae?cYa?®F® ? ?Ya  ca®¤ia
¤a ©cYae Fa ae?cYa??a aaaa®©aac (ae ©«e *.BGI) ? a?¬c®«ieY
ea?aeae (*.CHR-ae ©«e).;ia? ¤®?®«?aY«ieY ae ©«e a aa¬ aa?c –
iaai c a«Y¤aie?a a §¤Y« a.

„«i ?a?®«i§®c ?i Fa ae?cYa??a aea?ae?©:

– ˜a? a !®aY c ?aYFa?a®c ®© aaY¤Y ?YaY?«ic?aY Full
menus c a®aa®i?Y on ? ce!Ya?aY Options \! Linker \!
Graphics Library. ˜a? a®§¤ ?? ?a®Fa ¬¬e ?®¬?®®ce??  ca®¬ –
a?cYa?? ce?®«?a ?®¬?®®c?a Fa ae?cYa?®© !?!«?®aY?? Turbo
C++.

– …a«? ce ?a?®«i§aYaY TCC.EXE, ce ¤®«¦e c ?®¬ ¤®©
aaa®?Y a? § ai GRAPHICS.LIB. ˜ ?a?¬Ya, Ya«? c e  ?a®Fa ¬¬ ,
MYPROG.C, ?a?®«i§aYa Fa ae??a, a® ?®¬ ¤ i aaa®?  TCC ¤®«¦ 
?¬Yai c?¤:

– 210 –
tcc myprog graphics.lib

‚ ¦®Y § ¬Yc ?Y !

˜®a?®«i?a Fa ae?cYa??Y aea?ae???a?®«i§aia a? § aY«? far,
Fa ae??  c a«ac Y ¬®¤Y«? a ¬ia? tiny Y ?®¤¤Ya¦?c Yaai.

?a ae?cYa? i !?!«?®aY?  a®«i?® ®¤  ? Y ?¬YYa cYaa?© ?®
¬®¤Y«i¬ ? ¬ia? (?® aa cY?i a® aa ¤ aae¬? !?!«?®aY? ¬?
CS.LIB, CC.LIB, CM.LIB ? a.¤., ?®a®aeY § c?aia ®a ?a?®«i§aY-
¬®© ¬®¤Y«? ? ¬ia?). ? ¦¤ i aea?ae?i c GRAPHICS.LIB ic«iYaai
far (¤ «iY©) aea?ae?Y©,   Fa ae?cYa??Y aea?ae??, ?a?®«i§aie?Y
a? § aY«? a !®a ia a ¤ «i?¬? a? § aY«i¬?. „«i ?a c?«i®©
a !®ae Fa ae?cYa??a aea?ae?© aaY!aYaai ¤?aY?a?c  #include
graphics.h c? ¦¤®¬ ?a?®«i§aieY¬ graphics ¬®¤a«Y.

”a?ae?? !?!«?®aY?? graphics

?a ae?cYa??Y aea?ae?? Turbo C++ ¤Y«iaai   Ya?®«i?® ? –
aYF®a?©:

– a?a c«Y?i Fa ae?cYa?®© a?aaY¬®©

– cYacY?i ? § ?®«Y?i

– ¬ ??a«?a®c ?i i?a  ¬? ? Fa ae?cYa??¬? ®? ¬?

– cec®¤  aY?aa®c

– a?a c«Y?i aecYa ¬?

– ®!a !®a?? ®e?!®?

– § ?a®a  a®aa®i?i

“?a c«Y?Y Fa ae?cYa?®© a?aaY¬®©
____________________________________________________________

˜?¦Y ?a?c®¤?aai ?a a?®Y ?YaYc?a«Y?Y caYa aea?ae?© a?-
a c«Y?i Fa ae?cYa?®© a?aaY¬®©:

closegraph ‡ ?aec Ya Fa ae?cYa?ai a?aaY¬a.

detectgraph ˜a®cYaiYa  ?? a a®Y ®!Ya?YcY?Y ? ®?aY¤Y«iYa,
? ??Y Fa ae?cYa??Y ¤a ©cYae ?a?®«i§®c ai;
aY?®¬Y¤aYa ?aY¤?®ca?aY«ie© aY¦?¬.

graphdefaults ‘!a aec Ya caY ?YaY¬YeY Fa ae?cYa?®© a?aaY¬e
c § cY?i ?® a¬®«c ?i.

_graphfreemem ?a¬YiYa a a?aY¤Y«Yai Fa ae??Y ? ¬iai; ?a?®-
«i§aYaai ¤«i ®?aY¤Y«Y?i a®!aacY®© ?®¤?a®-
Fa ¬¬e.

_graphgetmem ˜ a?aY¤Y«iYa ? ¬iai Fa ae??Y; ?a?®«i§aYaai
¤«i ®?aY¤Y«Y?i a®!aacY®© ?®¤?a®Fa ¬¬e.

getgraphmode ‚®§ca e Ya aY?ae?© Fa ae?cYa??© aY¦?¬.

getmoderange „®?aa? Ya ¬« ¤e?© ? aa ae?© ¤®?aaa?¬eY aY¦?¬e
¤«i § ¤ ®F® ¤a ©cYa .

initgraph ??ae? «?§?aaYa Fa ae?cYa?ai a?aaY¬a ? ?YaYc®¤?a
 ?? a a®Y ®!Ya?YcY?Y c Fa ae?cYa??© aY¦?¬.

installuserdriver ?aa ««?aaYa ¤®?®«?aY«ie© ¤a ©cYa aaaa®©
aac  c a !«?aea ¤a ©cYa®c aaaa®©aa  BGI.

– 211 –

installuserfont ‡ Faa¦ Ya ?®aa c«iY¬e© ae ©« eaa?a®c®F® ea?ae
a  c a !«?aea a?¬c®«iea ae ©«®c BGI.

registerbgldriver ˜YF?aaa?aaYa cYe?© ?«? § Faa¦Ye©
?®«i§®c aY«Y¬ ae ©« ¤a ©cYa  ¤«i c?«icY?i
c® caY¬i ?®¬?®®c??.

restorecrtmode ‚®aaa  c«?c Ya ?Yac® c «ie© (aaeYaac®c c
e?© ¤® Initgraph) aY¦?¬ i?a  .

setgraphbufsize ‡ ¤ Ya a §¬Ya caaaYYF® Fa ae?cYa?®F® !aaeY
a .

setgraphmode ‚e!?a Ya § ¤ e© Fa ae?cYa??© aY¦?¬, ®c?e Ya
§?a  ? c®aaa  c«?c Ya caY a¬®«c ?i.

?a ae?cYa??© ? ?Ya Turbo C++ ®!Ya?Yc?c Ya Fa ae?cYa??Y
¤a ©cYae ¤«i a«Y¤aie?a Fa ae?cYa??a  ¤ ?aYa®c (? ?®«®aaii
a®c¬Yaa?¬ea a ?¬?):

– –cYa®©/Fa ae?cYa??©  ¤ ?aYa (CGA)

– ?®F®aecYa i Fa ae?cYa? i ¬ aa?ae  (MCGA)

– “«aceYe© Fa ae?cYa??©  ¤ ?aYa (EGA)

– ‚?¤Y® Fa ae?cYa? i ¬ aa?ae  (VGA)

– ?a ae?cYa??©  ¤ ?aYa Hercules

– ?a ae?cYa??©  ¤ ?aYa aYa?? AT&T 400

– ?a ae?cYa??©  ¤ ?aYa 3270 PC

– ?a ae?cYa??©  ¤ ?aYa IBM 8514

„«i § ?aa?  Fa ae?cYa?®© a?aaY¬e ce ¤®«¦e ?aY¦¤Y caYF®
ce§c ai aea?ae?i initgraph. initgraph § Faa¦ Ya Fa ae?cYa??©
¤a ©cYa ? ?YaYc®¤?a a?aaY¬a c Fa ae?cYa??© aY¦?¬.

‚e ¬®¦YaY a? § ai initgraph?a?®«i§®c ?Y?®?aYa®F®
Fa ae?cYa?®F® ¤a ©cYa  ??®?aYae© aY¦?¬, «?!® § ¤ ai  ca®¤Y-
aY?a?a®c ?Y aaa ®c«Y®F® c?¤Y®  ¤ ?aYa  ? ce!®a a®®acYaa-
acY®F® ¤a ©cYa  a¦Y c® caY¬i ce?®«Y?i. …a«? ce § ¤ «? c
initgraph  ca®¤YaY?a?a®c ?Y, a® ®  a ¬  ce§®cYadetectgraph
¤«i ce!®a  Fa ae?cYa?®F® ¤a ©cYa  ? aY¦?¬ . …a«?ce § ¤ «? c
initgraph ?a?®«i§®c ?Y ?®?aYa®F®Fa ae?cYa?®F® ¤a ©cYa  ?
aY¦?¬ , a®ce a ¬? ®acYc YaY§  ae?§?cYa?®Y?a?aaaaac?Y a®®a-
cYaaacaieYF®  ?? a a®F® ®!Ya?YcY?i. …a«? § aa c?ai
initgraph ?ea aiai ?a?®«i§®c ai®aaaaaacaieYY  ?? a a®Y
®!Ya?YcY?Y, a® aY§a«ia a c a ?®¬ a«ac Y Y?aY¤a? §aY¬.

˜®a«Y a®F®, ? ? Fa ae?cYa??© ¤a ©cYa § Faa¦Y, ce ¬®¦YaY
®?aY¤Y«?ai YF® ?¬i ?a? ?®¬®e? aea?ae?? getdrivename,   c?a«®
?®¤¤Ya¦?c Y¬ea ¤a ©cYa®¬ aY¦?¬®c ?a? ?®¬®e? aea?ae??
getmaxmode. getgraphmode a®®!e?a c ¬, c ? ?®¬ Fa ae?cYa?®¬
aY¦?¬Y ce  a®¤?aYai c aY?ae?© ¬®¬Ya. ?¬Yi ®¬Ya aY¦?¬ , ce
¬®¦YaY ®?aY¤Y«?ai YF®?¬i ?a? ?®¬®e? aea?ae?? getmodename. ‚e
a ?¦Y?¬YYaYc®§¬®¦®aai ?§¬Y?ai Fa ae?cYa??© aY¦?¬ ?a? ?®¬®e?
aea?ae?? setgraphmode ? cYaaai ?aa®¤e© c?¤Y® aY¦?¬ (a®a,
?®a®ae© !e« aaa ®c«Y ¤® ??ae? «?§ ae?? Fa ae???) a ?®¬®eii
restorecrtmode. restorecrtmode cYaYa i?a  c aY?aa®ce© aY-
¦?¬, ® Y § ?a®Ya ?a? ia®¬ Fa ae?cYa?ai a?aaY¬a (§ Faa¦YeY
ea?aeae ? ¤a ©cYae ®aa aaai c ? ¬ia?).

graphdefaults a!a aec Ya aaa ®c?? a®aa®i?iFa ae?cYa?®©

– 212 –
a?aaY¬e (a §¬Yae Fa ae?cYa?®F® ®? , aecYa «??©, aecYa ? e !-
«® § ?®«?aY«i ? a.¤.) c ?aa®¤®Y a®aa®i?Y.

installuserdriver ? installuserfont ?®§c®«iia aaa ®-
c?ai c Fa ae?cYa?®© a?aaY¬Y ®ceY ¤a ©cYae aaaa®©aac  ? ea?ae-
ae.

?  ?®Yae, § ?®c?c a !®aa c Fa ae??Y,ce ¤®«¦e ce§c ai
aea?ae?i closegraph ¤«i a®F®, ca®!e § ?aeai Fa ae?cYa?ai a?a-
aY¬a. closegraph ceFaa¦ Ya¤a ©cYa ?§ ? ¬ia?? c®aaa  c«?c Ya
?Yac® c «ie© c?¤Y® aY¦?¬ (cYaY§ ®!a eY?Y ?
restorecrtmode).

˜®«YY ?®¤a®!®Y a aa¬®aaY?Y Fa ae???
____________________________________________________________

‚eeY ?a a?® a aa¬ aa?c « ai a !®a  aea?ae?? initgraph. ‚
a«Y¤aie?a ? a Fa ae a initgraph, _graphgetmem ? _graphfreemem
!a¤aa ®??a e ?®¤a®!®.

?!ec® ?®¤?a®Fa ¬¬  initgraph § Faa¦ Ya Fa ae?cYa??©
¤a ©cYa, a a?aY¤Y«ii ¤«i ia®F® ¤a ©cYa  ? ¬iai ? § aY¬ § F-
aa¦ i aa¤  a ¤?a?  a®®acYaaacaie?© ae ©« .BGI. ‚ ? cYaacY
 «iaYa a?ce ¤ ®© aaY¬Y¤? ¬?cYa?®© § Faa§??ce ¬®¦YaY
a?®¬?®®c ai a¦e© ae ©« Fa ae?cYa?®F® ¤a ©cYa  (?«? Ya?®«i-
?® a ??a ae ©«®c) Y?®aaY¤aacY® a ae ©«®¬ ce?®«iY¬®© ?a®F-
a ¬¬e. „«i ia®F® .BGI-ae ©« a c «  ?aY®!a §aYaaic .OBJ-ae ©«
(?a? ?®¬®e? aa?«?ae BGIOBJ -a¬. ¤®?a¬Ya ae?i c ae ©«Y
UTIL.DOC, ?®a®ae© ?®aa c«iYaai   ®¤®¬ ?§ ¤?aaa?!aa?cea
¤?a?®c), ?®a«Y cYF® c ?aa®¤e© ?®¤ ?®¬Ye Yaai ce§®c
registerbgidriver (¤® ce§®c  initgraph), ca®!e § aYF?aaa?a®-
c ai Fa ae?cYa??© ¤a ©cYa(e) c a?aaY¬Y. ˜a? ?®aaa®Y?? ?a®F-
a ¬¬e ce ¤®«¦e ce?®«?ai ?®¬?®®c?a.OBJ-ae ©«®c caYa § aY-
F?aaa?a®c ea ¤a ©cYa®c. ˜®a«Y ®?aY¤Y«Y?i a®F®, ?®a®ae©
Fa ae?cYa??© ¤a ©cYa ¤®«¦Y !eai ?a?®«i§®c  (?®aaY¤aac®¬
detectgraph) initgraph ?a®cYaiYa, !e« «? ¦Y« Y¬e© ¤a ©cYa
§ aYF?aaa?a®c . …a«? !e«, a® initgraph ®!a e Yaai ? § aY-
F?aaa?a®c ®¬a ¤a ©cYaa Y?®aaY¤aacY® c ? ¬ia?. ‚ ?a®a?c-
®¬ a«ac Y initgraph a a?aY¤Y«iYa ? ¬iai ¤«i ¤a ©cYa  ?
§?Faa¦ Ya a¦e© .BGI-ae ©« a ¤?a? .

˜a?¬Yc ?Y

?a?®«i§®c ?Y aea?ae?? registerbgidriver®a®a?aai ? !®-
«YY a«®¦e¬ ¬Ya®¤ ¬ ?a®Fa ¬¬?a®c ?i, Y aY?®¬Y¤aY¬e¬ ¤«i
 c? ie?a ?a®Fa ¬¬?aa®c. ˜®«YY ?®¤a®!® ¤  i aea?ae?i ®??-
a  c ?« cY 1
‘?a c®c??  ?® !?!«?®aY?Y.

‚® caY¬i ce?®«Y?i Fa ae?cYa?®© a?aaY¬Y ¬®¦Ya ?® ¤®-
!?aiai ce?®«?ai a a?aY¤Y«Y?Y ? ¬ia? ¤«i ¤a ©cYa®c, ea?aea®c
? caaaY?a !aaeYa®c. ˜a?Y®!a®¤?¬®aa?®  ce§ec Ya
_graphgetmem¤«i a a?aY¤Y«Y?i? ¬ia?? _graphfreemem ¤«i YY
®ac®!®¦¤Y?i. ˜® a¬®«c ?i ¤ eY ?®¤?a®Fa ¬¬e ?a®aa® ce§e-
c ia malloc ? free, a®®acYaaacY®.

„Y©aac?Yia?a aea?ae?© ?® a¬®«c ?i ¬®¦® ?YaY®?aY¤Y«?ai,
®?aY¤Y«?c a®!aacYeY aea?ae?? _graphgetmem ? _graphfreemem.
˜« F®¤ ai ia®¬a ce ¬®¦YaY a ¬? a?a c«iai a a?aY¤Y«Y?Y¬ ? –
¬ia? ¤«i Fa ae???. ?¤ ?®, c e? c a? ae aea?ae?© a?a c«Y?i
a a?aY¤Y«Y?Y¬ ? ¬ia? ¤®«¦e ?¬Yai aY ¦Y ?¬Y : ®?§ ¬Yia
a®!®©aea?ae?? ?® a¬®«c ?i a aY¬? ¦Y ?¬Y ¬? ?§ aa ¤ aaea
!?!«?®aY? ‘.

??aY¤Y«?c a®!aacYeY aea?ae?? _graphgetmem ?
_graphfreemem, ce ¬®¦YaY ?®«ac?ai ?aY¤a?aY¦¤Y?Y “duplicate
symbols” (“?®ca®aY?Y a?¬c®«?cYa??a ?¬Y”). ˜a® ?aY¤a?aY¦¤Y-

– 213 –
?Y ¬®¦® ?F®a?a®c ai.

—YacY?Y ? § ?®«Y?Y
___________________________________________________________

˜?¦Y ?a?c®¤?aai ?a a??© ®!§®a aea?ae?© cYacY?i ? § ?®«-
Y?i:

—YacY?Y:

arc —Yaa?a ¤aFa ®?aa¦®aa?.

circle —Yaa?a ®?aa¦®aai.

drawpoly —Yaa?a ?®aaa ¬®F®aF®«i?? .

ellipse —Yaa?a i««??a?cYa?ai ¤aFa.

getarccoords ‚®§ca e Ya ?®®a¤? ae ?®a«Y¤YF® ce§®c 
arc ?«? ellipse.

getaspectratio ‚®§ca e Ya ?®iaeae?ae?Ya a¦ a?i ¤«i aY?aeY
F® Fa ae?cYa?®F® aY¦?¬ .

getlinesettings ‚®§ca e Ya aY?ae?© aa?«i «???, e !«®
«??? ? a®«e?a «???.

line —Yaa?a «??i ?§ (x0,y0) c (x1,y1).

linerel —Yaa?a «??i c a®c?a, § ¤ c Y¬ai ®a®a?aY«i
e¬ a aaa®i?Y¬ ®a aY?aeY© ?®§?ae?? (CP).

lineto —Yaa?a «??i ?§ aY?aeY© ?®§?ae?? (CP) c (x,y).

moveto ˜YaY¬Ye Ya aY?aeai ?®§?ae?i (CP) c (x,y).

moverel ˜YaY¬Ye Ya aY?aeai ?®§?ae?i (CP)   ®a®a?aY«i
®Y a aaa®i?Y.

rectangle ˜?aaYa ?ai¬®aF®«i??.

setaspectratio ?§¬YiYa ?®iaeae?ae?Ya a¦ a?i ?® a¬®«c ?i.

setlinestyle “aa  c«?c Ya e?a?a ? aa?«i aY?aeY© «?
??.

‡ ?®«Y?Y:

bar —Yaa?a ? § ?®«iYa aa®«!??.

bar3d —Yaa?a ? § ?®«iYa aaYa¬Yae© aa®«!??.

fillellipse —Yaa?a ? § ?®«iYa i««??a.

fillpoly —Yaa?a ? § ?®«iYa ¬®F®aF®«i??.

getfillpattern ‚®§ca e Ya ®?aY¤Y«iY¬e© ?®«i§®c aY«Y¬
e !«® § ?®«Y?i.

getfillsettings ‚®§ca e Ya ?ae®a¬ ae?i ® aY?ae?¬ e !«®Y
? aecYaY § ?®«Y?i.

pieslice —Yaa?a ? § ?®«iYa aY?a®a ®?aa¦®aa?.

sector —Yaa?a ? § ?®«iYa i««??a?cYa??© aY?a®a.

– 214 –
setfillpattern ‚e!?a Ya e !«® § ?®«Y?i, ®?aY¤Y«iY¬e©
?®«i§c aY«Y¬.

setfillstyle “aa  c«?c Ya e !«® ? aecYa § ?®«Y?i.

˜a? ?®¬®e? aea?ae?© cYacY?i ? a a?a e?c ?i Turbo C++
ce ¬®¦YaY cecYac?c ai aecYaeY «???, ¤aF?, ®?aa¦®aa?, i«-
«??ae, ?ai¬®aF®«i???, aY?a®ae, ¤ca- ? aaYa¬YaeY aa®«!???,
¬®F®aF®«i???,   a ?¦Ya §«?ceY ?a c?«ieY ?«? Y?a c?«ieY
ae®a¬e, ic«iie?Yai ?®¬!? ae?i¬? ?YaYc?a«YeaFa ae?cYa??a ?a?-
¬?a?c®c. ?Fa ?cYai ae®a¬a ?§aaa? ?«? a aa¦? ¬®¦® § ?®«-
?ai ®¤?¬ ?§ 11 ?aY¤®?aY¤Y«Yea e !«®®c, «?!® e !«®®¬,
®?aY¤Y«Ye¬ ?®«i§®c aY«Y¬. ?®¦®a ?¦Y a?a c«iai a®«e?®© ?
aa?«Y¬ «??? cecYac?c ?i,   a ?¦Y ¬Yaa®?®«®¦Y?Y¬ aY?aeY©
?®§?ae?? (CP).

‹??? ? Y§ ?®«YeY ae®a¬e cecYac?c iaai ?a? ?®¬®e?
aea?ae?© arc, circle, drawpoly, ellipse, line, linerel,
lineto ? rectangle. ‡ aY¬¬®¦® § ?®«?ai ia? ae®a¬e a ?®¬®eii
floodfil, «?!® ¬®¦® ®!eY¤??ai cecYac?c ?Y/§ ?®«Y?Y c
®¤®¬ e FY ?a? ?®¬®e? aea?ae?© bar, bar3d, fillellipse,
fillpoly, pieslice? sector. ”a?ae?i setlinestyle ?®§c®«iYa
§ ¤ ai aa?«i «??© (?Fa ?cea «??© ae®a¬): a®«aa i ?«? a®-
? i, a?«®e i, ?a?a?a ? a.¤., «?!®¬®¦® § ¤ ai c e a®!a-
acYe© e !«®¤«i cecYac?c ?i «???. ?®¦® ce!a ai ?aY¤®?-
aY¤Y«Ye© e !«® § ?®«Y?i ?a? ?®¬®e? aea?ae??
setfillstyle,«?!® ®?aY¤Y«?ai a®!aacYe© e !«® § ?®«Y?i c
setfill psttern. ”a?ae?i moveto ?®§c®«iYa?YaY¬Yaa?ai CP c
¦Y« Y¬ai ?®§?ae?i,  aea?ae?i moverel ?®§c®«iYa a¤c?aai YY  
¦Y« Y¬ai cY«?c?a a¬YeY?i.

‚eia?ai aY?ae?© aa?«i ? a®«e?a «??? ?®§c®«iYa aea?-
ae?i getlinesettings. ?ae®a¬ ae?i ® aY?aeY¬ e !«®Y § ?®«Y?i
? aecYaY § ?®«?aY«i ¬®¦® ?®«ac?ai cYaY§ aea?ae?i
getfillsettings; ®?aY¤Y«iY¬e© ?®«i§®c aY«Y¬ e !«® § ?®«Y-
?i ¬®¦® ?®«ac?ai ?a? ?®¬®e? getfillpattern.

˜®«ac?aiacY¤Y?i ® ?®iaeae?ae?YaY a¦ a?i (?®iaeae?ae?YaY
¬ aea !?a®c ?i, ?a?¬YiY¬®¬ Fa ae?cYa?®© a?aaY¬®© ¤«i a®F®,
ca®!e ®?aa¦®aa? ceF«i¤Y«? ?aaF«e¬?) ?®§c®«iYa aea?ae?i
getaspectratio,   ?®«ac?ai ?®®a¤? ae ?®a«Y¤Y© a?a®c ®©
¤aF? ?«? i««??a  – aea?ae?i getarccoords. …a«? ®?aa¦®aa? Y
?®«ac iaai ?¤Y «i® ?aaF«e¬?, ¬®¦® ?a?a c?ai ¤Y«® ?a? ?®¬®-
e? aea?ae?? setaspectratio.

? ??a«?a®c ?Y i?a ®¬ ? Fa ae?cYa??¬? ®? ¬?
___________________________________________________________

˜?¦Y ?a?c®¤?aai?a a??© ®!§®aaea?ae?© ¬ ??a«?a®c ?i a
i?a ®¬, Fa ae?cYa??¬? ®? ¬?, !?a®ce¬? ®!a § ¬? ? ???aY«i¬?:

? ??a«iae?? a i?a ®¬:

cleardevice ?c?e Ya i?a  ( ?a?cai aaa ?aea).

setactivepage “aa  c«?c Ya  ?a?cai aaa ?aea ¤«i
Fa ae?cYa?®F® cec®¤ 

setvisualpage “aa  c«?c Ya ®¬Ya c?§a «i®© Fa ae?
cYa?®© caa ?aee.

? ??a«iae?? a Fa ae?cYa??¬? ®? ¬?:

clearviewport ?c?e Ya aY?aeYY Fa ae?cYa?®Y ®?®.

getviewsettings ‚®§ca e Ya ?ae®a¬ ae?i ® aY?aeY¬ Fa ae?
cYa?®¬ ®?Y.

– 215 –

setviewport “aa  c«?c Ya aY?aeYY Fa ae?cYa?®Y ®?®
¤«i  ?a c«Y?i   YF® Fa ae?cYa?®F®
cec®¤ .

? ??a«iae?? a !?a®ce¬? ®!a § ¬?:

getimage ‡ ??aec Ya !?a®ce© ®!a § c § ¤ e© ac aa®?
? ¬ia?.

imagesize ‚®§ca e Ya c?a«® ! ©a, aaY!aY¬ea ¤«i aa Y?i
Y?®a®a®© ?ai¬®aF®«i®© ®!« aa? i?a  .

putimage ˜®¬Ye Ya   i?a  a YY § ??a e© c ? ¬iai
!?a®ce© ®!a §.

? ??a«iae?? a ???aY«i¬?:

getpixel ˜a??¬ Ya aecYa ???aY«i c (x,y).

putpixel ˜®¬Ye Ya ???aY«i   i?a  c (x,y).

˜®¬?¬® cYacY?i ? § ?a e?c ?i, Fa ae?cYa? i !?!«?®aY? 
?aY¤«iF Ya Ya?®«i?® aea?ae?© ¤«i ¬ ??a«?a®c ?i i?a ®¬,
Fa ae?cYa??¬? ®? ¬?,®!a § ¬? ? ???aY«i¬?. ‚e§c c
cleardevice, ¬®¦® aa §a ®c?aa?ai cYai i?a ; ¤  i ?®¤?-
a®Fa ¬¬  aa?a Ya i?a  ? ?®¬Ye Ya CP c Fa ae?cYa?®Y ®?®, ®
?a? ia®¬ ®aa c«iYa ¤Y©aacaie?¬? caY ?a®c?Y aaa ®c?? Fa ae?-
cYa?®© a?aaY¬e (aa?«? «???, § ?®«Y?i ? aY?aa ; a a?a a? ,
aaa ®c?? Fa ae?cYa?®F® ®?  ? a.¤.).

‚ § c?a?¬®aa? ®a ?¬YieYF®ai a c a Fa ae?cYa?®F®  ¤ ?aYa 
c e  a?aaY¬  ¬®¦Ya ?¬Yai ®a ®¤®F® ¤® cYaeaYa !aaeYa®c i?a –
ea aaa ?ae, ?aY¤aa c«iie?a a®!®©®!« aa? ? ¬ia?, F¤Y aa ?a-
ai ?ae®a¬ ae?i ?® a®c? ¬ ® ?®?aYaea ?®«®i?a ea ®!a –
§ a.‚e ¬®¦YaY a? § ai  ?a?cai aaa ?aea i?a   (a.Y. ?a¤ 
!a¤Ya  ?a c«Y cec®¤ Fa ae?cYa??aaea?ae?©), ? c?§a «iaiaaa –
?aea i?a   (a.Y. a®¤ieaiai c aY?ae?© ¬®¬Ya   ¤?a?«YY)
?a? ?®¬®e? aea?ae?© setactivepage ? setvisualpage, a®®acYaa-
acY®.

?®F¤  c e i?a   a®¤?aai c Fa ae?cYa?®¬aY¦?¬Y, ce ¬®¦Y-
aY ®?aY¤Y«?ai Fa ae?cYa?®Y ®?® (?«? ?ai¬®aF®«i®Y “c?aaa «i-
®Y ®?®”)   i?a Y a ?®¬®eii aea?ae?? setviewport. ˜®§?ae?i
Fa ae?cYa?®F® ®?  § ¤ Yaai c  !a®«iaea i?a ea ?®®a¤? –
a a; ?a®¬Y a®F®, § ¤ Yaai  ?a?c®Y ?«?Y ?a?c®Y a®aa®i?Y
aea?ae??”®aaYc??”. ?c?aa?  Fa ae?cYa?®F® ®?  ce?®«iYaai ?a?
?®¬®e? clearviewport. „«i a®F®, ca®!e ?®«ac?ai  !a®«iaeY
i?a eY ?®®a¤? ae ? aa aaa “®aaYc??”, a«Y¤aYa c®a?®«i§®-
c aiai aea?ae?Y© getviewsettings.

?®¦® c§iai c aai i?a ®F® ®!a §  ?a? ?®¬®e? getimage,
ce§c ai imagesize ¤«i cec?a«Y?i c?a«  ! ©a®c ¤«i aa Y?i
ia®F® ®!a §  c ? ¬ia?,   § aY¬ cYaaai ®!a §   i?a  (c «i-
!ai ¦Y« Y¬ai ?®§?ae?i) a ?®¬®eii aea?ae?? putimage.

?®®a¤? ae caYa aea?ae?© cec®¤  (cYacY?i, § ?®«Y?i,
aY?aae ? a.¤.) § c?aia ®a ce!a ®F® Fa ae?cYa?®F® ®? .

?®¦® a ?¦Y ¬ ??a«?a®c ai aecYa®¬®a¤Y«iea ???aY«Y©
!« F®¤ ai aea?ae?i¬ getpixel (c®§ca e ieY© aecYa ¤ ®F® ???-
aY«i) ? putpixel (?®a®a i ®a®!a ¦ Ya ¤ e© ???aY«i   i?a –
Y § ¤ e¬ aecYa®¬).

– 216 –

’Y?aa®ce© cec®¤ c Fa ae?cYa?®¬ aY¦?¬Y
___________________________________________________________

˜?¦Y ?a?c®¤?aai ?a a?®Y ®??a ?Y aea?ae?© aY?aa®c®F® ce-
c®¤  c Fa ae?cYa?®¬ aY¦?¬Y:

gettextsettings ‚®§ca e Ya aY?ae?© aY?aa®ce© ea?aea,
 ?a c«Y?Y, a §¬Ya ? cea c?c ?Y.

outtext ˜®ae« Ya aaa®?a   i?a  c aY?aeai ?®§?ae?i
(CP).

outtextxy ˜®ae« Ya aY?aa   i?a  c § ¤ ai ?®§?ae?i.

registerbgifont ˜YF?aaa?aaYa ?a??®¬?®aY¬e© ?«?
®?aY¤Y«iY¬e© ?®«i§®c aY«Y¬ ea?aea.

settextjustify “aa  c«?c Ya § cY?i cea c?c ?i
aY?aa , ?a?®«i§aY¬eY outtext ? outtextxy.

settextstyle “aa  c«?c Ya ea?aea, aa?«i ? ?®iaeae?ae?Ya
acY«?cY?i aY?aeYF® aY?aa .

setusercharsize “aa  c«?c Ya a®®a®eY?Y ¬Y¦¤a cea®a®©
? e?a?®© eaa?a®cea ea?aea®c.

textheight ‚®§ca e Ya cea®aa aaa®?? c ???aY«ia.

textwidth ‚®§ca e Ya e?a?a aaa®?? c ???aY«ia.

?a ae?cYa? i !?!«?®aY?  c?«ic Ya c aY!i ¬ aa?ce© ea?aea
8a8 ? Ya?®«i?® eaa?a®cea ea?aea®c¤«i cec®¤  aY?aa  cFa ae?-
cYa?®¬ aY¦?¬Y.

– ‚ ¬ aa?c®¬ !?a®c®¬ ea?aeaY ? ¦¤e© a?¬c®« ®?aY¤Y«iYaai
? ? ¬ aa?ae  ???aY«Y©.

– ‚ eaa?a®c®¬ ea?aeaY ? ¦¤e© a?¬c®« ®?aY¤Y«iYaai ? ?
?®a«Y¤®c aY«i®aai cY?a®a®c, a®®!e ie?a Fa ae?cYa?®© a?aaY¬Y,
? ? a®§¤ Yaai ¤ e© a?¬c®«.

˜aY?¬aeYaac® ?a?®«i§®c ?i eaa?a®ceaea?aea®c aa ®c?aai
®cYc?¤e¬, ?®F¤  ce  c? YaY a?a®c ai !®«ie?Y ?® a §¬Yaa
a?¬c®«e. ˜®a?®«i?a eaa?a®c®© ea?aea ®?aY¤Y«iYaai ? ? ?®a«Y¤®-
c aY«i®aai cY?a®a®c, ?a? acY«?cY?? a §¬Ya  ® a®aa ?a a®-
a®eYY a §aYeY?Y ? ? cYaac® ?§®!a ¦Y?i. ?  ?a®a?c, ?®F¤ 
ce acY«?c?c YaY !?a®ce© ¬ aa?ce© ea?aea, ¬ aa?ae  a¬®¦ Yaai
  a®®acYaaacYe© ?®iaeae?ae?Ya ¬ aea !?a®c ?i; cY¬!®«ieY
ia®a ?®iaeae?ae?Ya, aY¬aa¦Y aa ®c?aai a §aYeY?Y a?¬c®«®c.
„«i ¬ «ea a §¬Ya®c a ?®©c?¤ ea?aea  c?®«Y a¤®c«Yac®a?aY«Y,
®¤ ?® ¤«i !®«ie?a a §¬Ya®c c ¬ «aceY ce!a ai eaa?a®c®©
ea?aea.

‚ Fa ae??Y aY?aa cec®¤?aai aea?ae?i¬? outtext ?«?
outtextxy,   a?a c«Y?Y YF® cea c?c ?Y¬ (®a®a?aY«i® CP)
ce?®«iYa aea?ae?i settextjustify. ‚e ¤®«¦e ce!a ai a?¬c®«i-
e©ea?aea, ?a c«Y?Y YF® a §¬YeY?i (F®a?§®a «i®Y ?«? cYa-
a?? «i®Y) ? a §¬Ya (¬ aea !) ?a? ?®¬®e? aea?ae??
settextstyle. “§ ai aY?ae?Y aaa ®c?? cec®¤  aY?aa®c ¬®¦®
?a? ?®¬®e? aea?ae?? gettextsettings, ?®a®a i c®§ca e YaaY?a-
e?© aY?aa®ce© ea?aeea, cea c?c ?Y, acY«?cY?Y ?  ?a c«Y?Y
c aaaa?aaaY textsettings. setusercharsize ?®§c®«iYa ¬®¤?ae?-
ae?a®c ai e?a?a ? cea®aa eaa?a®cea ea?aea®c.

– 217 –
…a«? aaY¤aac® ®aaYc?? c?«icY®, a® cec®¤?¬eY aea?ae?i¬?
outtext ? outtextxy aY?aa®ceY aaa®?? !a¤aa ®aaY? aiai ?®
Fa ?ae ¬ Fa ae?cYa?®F® ®? . …a«? ®aaYc?  ®a?«icY , a® aY?a-
ae a ¬ aa?ce¬ ea?aea®¬, a?¬c®«e ?®a®aeaY ?®¬Ye iaai aeY«??®¬
c ®?Y, ®a!a aec iaai?®«®aaii; c a«ac Y ¦Y eaa?a®cea ea?ae-
a®c Y ?®¬Yaa?ce?Yai aY?aae ?a®aa® ®aaY? iaai ?® Fa ?aeY ®?-
 .

˜® a¬®«c ?i !?a®ce© 8a8 ¬ aa?ce© ea?aea ic«iYaai
caaa®Ye¬ c Fa ae?cYa??© ? ?Ya ? ?®ia®¬a caYF¤  ¤®aaa?Y c®
caY¬i ce?®«Y?i. ?aa?a®ceY ea?aeae caY aa iaai c ®a¤Y«iea
.CHR-ae ©« a; ®? ¬®Faa § Faa¦ aiai c® caY¬i ce?®«Y?i ?«?
?aY®!a §®cec aiai c .OBJ-ae ©«e (?a? ?®¬®e? aa?«?ae BGIOBJ) ?
§ aY¬ ?®¬?®®c aiai a c e?¬ .EXE-ae ©«®¬.

?!ec® ?®¤?a®Fa ¬¬  settextstyle § Faa¦ Ya ae ©« ea?aea ,
a a?aY¤Y«ii ? ¬iai ¤«i YF® ? § aY¬ § Faa¦ i a ¤?a?  a®®a-
cYaaacaie?© .CHR-ae ©«. ‚ ? cYaacY  «iaYa a?ce ¤ ®© aaY¬Y
¤? ¬?cYa?®© § Faa§?? ce ¬®¦YaY a?®¬?®®c ai ae ©« ea?aea 
(?«? Ya?®«i?® a ??a ae ©«®c) Y?®aaY¤aacY® ace?®«iY¬e¬
ae ©«®¬ ?a®Fa ¬¬e. „«i ia®F® a c «  aaY!aYaai ?aY®!a §®c ai
.CHR-ae ©« c .OBJ-ae ©« (a?®¬®eii aa?«?ae BGIOBJ – ?a®ca?aY ®!
ia®¬ c ae ©«Y ¤®?a¬Ya ae?? UTIL.DOC, ?®a®ae©  a®¤?aai  
¤?aaa?!aa?c®¬ ¤?a?Y),   § aY¬ ?®¬Yaa?ai c ?aa®¤ai ?a®Fa ¬-
¬a ce§®ce registerbgifont (?YaY¤ ce§®c®¬ settextstyle) ¤«i
a®F®, ca®!e § aYF?aaa?a®c ai ¤ e© a?¬c®«ie© ea?aea(e). ˜a?
?®aaa®Y?? ?a®Fa ¬¬e Y®!a®¤?¬® a?®¬?®®c ai ?®«acYeY .OBJ
-ae ©«e ¤«i caYa § aYF?aaa?a®c ea c ¬? eaa?a®cea ea?aea®c.

˜a?¬Yc ?Y

?a?®«i§®c ?Y registerbgifont ®a®a?aai? a«®¦e¬ ¬Ya®-
¤ ¬ ?a®Fa ¬¬?a®c ?i ? Y aY?®¬Y¤aYaai  c? ie?¬ ?a®Fa ¬-
¬?aa ¬. ˜®«YY ?®¤a®!® ia  aea?ae?i ®??a   c UTIL.DOC, ?®a®-
ae©  a®¤?aai   ¤?aaa?!aa?c®¬ ¤?a?Y.

“?a c«Y?Y aecYa®¬
___________________________________________________________
˜?¦Y ?a?c®¤?aai?a a?®Y ®??a ?Y aea?ae?i ¤«i a?a c«Y?i
aecYa®¬ ?§®!a ¦Y?©:

”a?ae?? ?®«acY?i ?ae®a¬ ae?? ® aecYaY:

getbcolor ‚®§ca e Ya aY?ae?© aecYa ae® .

getcolor ‚®§ca e Ya aY?ae?© aecYa cecYac?c ?i.

getdefaultpalette ‚®§ca e Ya aaaa?aaaa ®?aY¤Y«Y?i ? «?aae.

getmaxcolor ‚®§ca e Ya ¬ ?a?¬ «i®Y § cY?Y aecYa ,
¤®aaa?®Y c aY?aeY¬ Fa ae?cYa?®¬ aY¦?¬Y.

getpalette ‚®§ca e Ya aY?aeai ? «?aaa ? YY a §¬Ya.

getpalettesize ‚®§ca e Ya a §¬Ya ?a®a¬®aa®c®© a !«?aee
? «?aae.

”a?ae?? aaa ®c?? ®¤®F® ?«? !®«YY aecYa®c:

setallpalette ?§¬YiYa caY aecYa  ? «?aae, ? ? § ¤ ®.

setbkcolor “aa  c«?c Ya aY?ae?© aecYa ae® 

setcolor “aa  c«?c Ya aY?ae?© aecYa cecYac?c ?i.

setpalette ?§¬YiYa ®¤? ?§ aecYa®c ? «?aae, ? ?
a? § ® YY  aFa¬Ya ¬?.

– 218 –

˜aY¦¤Y cY¬ ?YaY©a? ? a aa¬®aaY?i a !®aeaea?ae?© a?a c-
«Y?i aecYa®¬ ?§®!a ¦Y?i, ¤ ¤?¬ ! §®c®Y ®??a ?Y a®F®, ? ?
ia? aecYa  ae ?a?cYa?? ?®«ac iaai   c eY¬ Fa ae?cYa?®¬ i?a Y.

˜??aY«? ? ? «?aae
___________________________________________________________

?a ae?cYa??© i?a  ?aY¤aa c«iYa a®!®© ¬ aa?c ???aY«Y©;
? ¦¤e© ???aY«i a®®acYaaacaYa ®¤®©(aecYa®©) a®c?Y   i?a Y.
‡ cY?Y ???aY«i Y § ¤ Ya a®ce© aecYa ia®© a®c??  ?ai¬ai;
 a ¬®¬ ¤Y«Y ia® Y?®a®ae© ?¤Y?a a !«?aee aecYa®c,  §ec Y¬®©
? «?aa®©. ? ¦¤e© i«Y¬Ya ? «?aae, a®®acYaaacaie?© ¤ ®¬a§-
 cY?i ???aY«i, a®¤Ya¦?a a®cai ?ae®a¬ ae?i ® aecYaY, ?®a®ae¬
!a¤Ya ®a®!a ¦Y ia®a ???aY«i.

’ ? i aaY¬  ?®acYea ®!a eY?© ?¬YYa ¬®¦Yaac® a«Y¤a-
ac?©. •®ai  ?? a a®Y ®!Ya?YcY?Y ¬®¦Ya ?®§c®«iai ®a®!a ¦Y-
?Y ¬®¦Yaac  aecYa®c, ®¤®caY¬Y®   i?a Y ¬®¦Ya  a®¤?ai-
ai a®«i?® Y?®a®a®Y ?a ?®¤¬®¦Yaac®. ?®«?cYaac®®¤®caY¬Y®
 a®¤ie?aai   i?a Y aecYa®c a c® c?a«a i«Y¬Ya®c ? «?aae
(a §¬Yaa ? «?aae). ˜ ?a?¬Ya, EGA ?®§c®«iYa  «?c?Y 64 aecY-
a®c, ® «?ei 16 ?§ ?a ¬®¦Ya  a®¤?aiai   i?a Y aa §a; a –
??¬ ®!a §®¬, a §¬Ya ? «?aaeEGA a cY 16.

˜ §¬Ya ? «?aae ®?aY¤Y«iYa ¤? ? §® § cY?©, ?®a®aeY
¬®¦Ya ?a??¬ ai ???aY«i, ®a 0 ¤® (a §¬Ya-1). ”a?-
ae?igetmaxcolor c®§ca e Ya ¬ ?a?¬ «i®Y ¤®?aaa?¬®Y § cY?Y
???aY«i (a §¬Ya-1) ¤«i aY?aeYF® Fa ae?cYa?®F® ¤a ©cYa  ? aY-
¦?¬ .

˜a? ®!aa¦¤Y??Fa ae?cYa??a aea?ae?© Turbo C++ ¬e c aa®
?a?®«i§aY¬ aYa¬? “aecYa”,  ?a?¬Ya aY?ae?© aecYa cecYac?c –
?i, aecYa § ?®«Y?i ? aecYa ???aY«i. ” ?a?cYa??aecYa®¬¬e
§¤Yai  §ec Y¬ § cY?Y ???aY«i: ia® Y?®a®ae© ?¤Y?a c ? –
«?aaY. ’®«i?® ? «?aa  aY «i® ®?aY¤Y«iYa ae ?a?cYa??© aecYa  
i?a Y.? ??a«?aai ? «?aa®©, ce¬®¦YaY?§¬Yiai ae ?a?cYa??Y
aecYa , cec®¤?¬eY   ¤?a?«Y©, ¤ ¦Y a®ai § cY?i ???aY«Y©
(aecYa  cecYac?c ?i, § ?®«Y?i ? a.¤.) ¬®Faa Y ?§¬Yiaiai.

–cYa ae®  ? cecYac?c ?i
___________________________________________________________

–cYa ae®  caYF¤  a®®acYaaacaYa § cY?i ???aY«i 0. ?®F-
¤  ce?®«iYaai ®c?aa?  ®!« aa? i?a   c aecYa ae® , ia® ®§ –
c Ya ?a®aa® aaa ®c?a caYa ???aY«Y© ia®© ®!« aa? c § cY?Y
0.

–cYa®¬cecYac?c ?i  §ec Yaai § cY?Y,c ?®a®a®Y aaa –
 c«?c iaai ???aY«? ?a? cecYac?c ?? «??©. –cYa cecYac?c –
?i aaa  c«?c Yaai aea?ae?Y© setcolor(n), F¤Y n Yaai ¤®?aa-
a?¬®Y ¤«i aY?aeY© ? «?aae § cY?Y ???aY«i.

“?a c«Y?Y aecYa®¬   CGA

‚a«Y¤aac?Y a §«?c?© c Fa ae?cYa?®¬  ?? a a®¬®!Ya?YcY??
ae ?a?cYa?®Y a?a c«Y?Y aecYa ¬? a §«?c® ¤«i CGA ? EGA,ca®
§ aa c«iYa  a a aa¬®aaYai ?a ?® ®a¤Y«i®aa?. “?a c«Y?Y
aecYa®¬ ¤«i ¤a ©cYa AT&T,   a ?¦Y aY¦?¬e ?§?®© a §aYe ieY©
a?®a®!®aa? ¤a ©cYa  MCGA   «®F?ce a?a c«Y?i aecYa®¬ CGA.

‚ a«ac Y CGA ce ¬®¦YaY ce!a ai «?!® aY¦?¬ ?§?®©a §aY-
e ieY© a?®a®!®aa? (320a200), ?®a®ae© ¤®?aa? Ya ?a?®«i§®c –
?Y cYaeaYa aecYa®c, «?!® aY¦?¬ cea®?®© a §aYe ieY© a?®a®!-
®aaY© (640a200), F¤Y ¤®?aa? Yaai ?a?®«i§®c ?Y ¤caa aecYa®c.

– 219 –

CGA c aY¦?¬Y ?§?®© a §aYe ieY© a?®a®!®aa?
___________________________________________________________

‚ aY¦?¬Y ?§?®© a §aYe ieY© a?®a®!®aa? ce ?¬YYaY c®§-
¬®¦®aai ce!a ai ®¤a ?§ cYaeaYa cYaeaYaaecYaea ? «?aa. ‚
? ¦¤®© ?§ ia?a cYaeaYa ? «?aa ce ¬®¦YaY a ¬? aaa ®c?ai
a®«i?® ?Yace© (aecYa 0) i«Y¬Ya; aecYa  1, 2 ? 3 ic«iiaai ae??-
a?a®c e¬?. ˜Yace© i«Y¬Ya ? «?aae (aecYa 0) – ia® aecYa ae®-
 . ˜a®a aecYa ¬®¦Ya ic«iaiai ®¤?¬ ?§ 16 ?¬Yie?aai aecYa®c
(a¬. a !«?aea aecYa®c ae® , ?a?c®¤?¬ai ?¦Y).

‚e ce!?a YaY ¦Y« Y¬ai ? «?aaa, ce!?a i a®®acYaaacaie?©
aY¦?¬ (CGAC0, CGAC1, CGAC2, CGAC3); ia? aY¦?¬e ?a?®«i§aia
? «?aae aecYa®c ®a 0 ¤® 3, a®®acYaaacY®, ? ? ?®? § ® c
a«Y¤aieY© a !«?aeY. –cYa  cecYac?c ?i c CGA ? i?c?c «YaeY
?¬ ?®aa ae ®?aY¤Y«iiaai c graphics.h.

———————————————————–
?®aa a , ?a?ac®Y i ®¬Yaa aecYa  (§ cY?i ???aY«i)
˜®¬Ya ————————————————–
? «?aae 1 2 3
———————————————————–
0 CGA_LIGHTGREENCGA_LIGHTRED CGA_YELLOW
1 CGA_LIGHTCYANCGA_LIGHTMAGENTA CGA_WHITE
2 CGA_GREENCGA_RED CGA_BROWN
3 CGA_CYANCGA_MAGENTA CGA_LIGHTGRAY
———————————————————–

„«i a®F®, ca®!e  § c?ai ®¤? ?§ ia?a aecYa®c aecYa®¬
cecYac?c ?i CGA, a¦® ce§c ai aea?ae?i setcolor, § ¤ c c
Y© c ? cYaacY  aFa¬Ya  «?!® ®¬Ya aecYa , «?!® ?¬i a®®a-
cYaaacaieY© ?®aa ae;  ?a?¬Ya,Ya«? ce ?a?®«i§aYaY ? «?aaa3
? ¦Y« YaY  § c?ai aecYa®¬ cecYac?c ?i cyan, a® ¬®¦® § ??-
a ai:

setcolor(1);

?«?

setcolor(CGA_CYAN);

‚ a«Y¤aieY© a !«?aeY ?YaYc?a«Ye  § c Y¬eY ¤«i CGA
aecYa  ae® :

———————————————————–
—?a«®c®Y ‘?¬c®«?cYa?®Y —?a«®c®Y ‘?¬c®«?cYa?®Y
§ cY?Y ?¬i § cY?Y ?¬i
———————————————————–
0 BLACK8 DARKGRAY
1 BLUE9 LIGHTBLUE
2 GREEN 10 LIGHTGREEN
3 CYAN 11 LIGTHCYAN
4 RED 12 LIGHTRED
5 MAGENTA 13 LIGHTMAGENTA
6 BROWN 14 YELLOW
7 LIGHTGRAY 15 WHITE
———————————————————–

–cYa  CGA ¤«i ?YaY¤YF® ?«   aY ¦Y, ca®  a®¤iaai c
¤ ®© a !«?aeY.

„«i  § cY?i ®¤®F® ?§ia?a aecYa®c c ? cYaacY ae®®c®F®
aecYa a«a¦?aaea?ae?i setbkcolor(aecYa), F¤Y aecYa – ia® ®¤? ?§
i«Y¬Ya®c ?a?cY¤Y®© ceeY a !«?aee. ?a¬Ya?¬, ca® ¤«i CGA

– 220 –
aecYa Y ic«iYaai § cY?Y¬ ???aY«i (?¤Y?a®¬ c ? «?aaY); ®
?ai¬® § ¤ Ya ae ?a?cYa??© aecYa, ?®¬Ye Y¬e© c ?Yace© i«Y¬Ya
? «?aae.

CGA c aY¦?¬Y cea®?®© a §aYe ieY© a?®a®!®aa?
___________________________________________________________

‚ aY¦?¬Y cea®?®© a §aYe ieY© a?®a®!®aa? (640×200)CGA
a !®a Ya a ¤ca¬i aecYa ¬? – cYae¬ aecYa®¬ ae®  ? aecYae¬ ?Y-
aY¤?¬ ?« ®¬. ˜??aY«? ¬®Faa ?a??¬ ai ?a? ia®¬ § cY?i
a®«i?® 0 ?«? 1. ‚ aci§? a ®a®!Y®aai¬? CGA aecYa®¬ ?YaY¤YF®
?«   ae ?a?cYa?? ic«iYaai a®a aecYa, ?®a®ae©  ?? a a®Y ®!Ya-
?YcY?Y ac?a Ya aecYa®¬ ae® ; a ??¬ ®!a §®¬, aecYa ?YaY¤YF®
?«   aaa  c«?c Yaai ?®¤?a®Fa ¬¬®© setbkcolor. (‘aa ®, ®
ae ?a).

–cYa ¤«i ?YaY¤YF® ?«  ¬®¦Ya !eai ce!a  ?§ ?aY¤e¤aeY©
a !«?aee. CGA ¤ «YY !a¤Ya ?a?®«i§®c ai ia®a aecYa ¤«i ®a®!a –
¦Y?i ?¬ caYa ???aY«Y©, ?¬Yie?a § cY?Y 1.

‘«Y¤aie?Y aY¦?¬e a !®a ia   «®F?ce¬ ®ia §a¬: CGAHI,
MCGAMED, MCGAHI, ATT400MED ? ATT400HI.

˜®¤?a®Fa ¬¬e a?a c«Y?i ? «?aa®© c a«ac Y CGA

˜®a?®«i?a ? «?aa  CGA ic«iYaai ?aY¤®?aY¤Y«Y®©, ?®¤?-
a®Fa ¬¬a setallpalette?a?®«i§®c ai c ¤ ®¬ a«ac Y Y«i§i.
’ ?¦Y Y a«Y¤aYa ?a?®«i§®c ai setpalette(?¤Y?a, ae ?a?cYa??©
_aecYa), §  ?a?«icY?Y¬ ?¤Y?a=0. (˜a® «iaYa a?ce© a?®a®!
aaa ®c?? ae®®c®F® aecYa  CGA a ce¬ ae ?a?cYa?®¬a_aecYaa).

“?a c«Y?Y aecYa®¬ ¤«i EGA ? VGA
___________________________________________________________

‚ a«ac Y EGA ? «?aa a®¤Ya¦?a 16 i«Y¬Ya®c ?§ ®!eYF® ?®-
«?cYaac  64 c®§¬®¦ea aecYa®c, ?a?cY¬ ? ¦¤e© ?§ i«Y¬Ya®c ? –
«?aae ¬®¦Ya!eai § ¤  ?®«i§®c aY«Y¬. „®aaa? ? aY?aeY© ? «?a-
aY ce?®«iYaai cYaY§ getpalette, ?®a®a i § ?®«iYa
aaaa?aaaa, c?«ic ieai caY!i a §¬Ya ? «?aae (16) ?¬ aa?cae ?-
a?cYa??a i«Y¬Ya®c ? «?aae (” ?? a aeY ®¬Ya  aecYa®c”, aa –
?¬eY c ? «?aaY). ˜«Y¬Yae ? «?aae ¬®¦® ?§¬Yiai ? ? ?® ®a-
¤Y«i®aa??a? ?®¬®e? setpalette, «?!® caY aa §a cYaY§
setallpalette.

˜ «?aa  EGA ?® a¬®«c ?i a®®acYaaacaYa 16 aecYa ¬ CGA,
?®a®aeY !e«? ¤ e c?aY¤e¤aeY© a !«?aeY aecYa®c: cYae© a cY
i«Y¬Yaa 0, F®«a!®© a cY i«Y¬Yaa 1, … , !Y«e© a cY i«Y-
¬Yaa 15. ‚ graphics.h ®?aY¤Y«Ye ?®aa ae, ?®a®aeY a®¤Ya-
¦ a a®®acYaaacaie?Y aecYa ¬  ?? a aeY § cY?i: ia®
EGA_BLACK, EGA_WHITE ? a.¤.˜a? § cY?i ¬®Faa !eai a ?¦Y ?®-
«acYe cYaY§ getpalette.

˜®¤?a®Fa ¬¬  setbkcolor(aecYa)   EGAa !®a Ya Ya?®«i?®
? cY, cY¬   CGA. ˜  EGA setbkcolor ?®??aaYa ae ?a?cYa?®Y
§ cY?Y aecYa , aa ieYYai c i«Y¬YaY #aecYa, c i«Y¬Ya #0.

—a® ? a Yaai aecYa®c, a® ¤a ©cYa VGA a !®a Ya ae ?a?cYa-
??a ? ¦Y, ? ? ? ¤a ©cYa EGA; ® ?a®aa® ?¬YYa !®«YY cea®?®Y
a §aYeY?Y (? ¬Yie?Y ?® a §¬Yaa ???aY«?).

?!a !®a?  ®e?!®? c Fa ae?cYa?®¬ aY¦?¬Y
___________________________________________________________

˜?¦Y ?a?c®¤?aai?a a??© ®!§®aaea?ae?© ®!a !®a?? ®e?!®? c
Fa ae?cYa?®¬ aY¦?¬Y:

grapherrormsg ‚®§ca e Ya aaa®?a a a®®!eY?Y¬ ®! ®e?!?Y

– 221 –
¤«i § ¤ ®F® ?®¤  ®e?!??.

graphresult ‚®§ca e Ya ?®¤ ®e?!?? ¤«i ?®a«Y¤Y© Fa ae?-
cYa?®© ®?Ya ae??, c ?®a®a®© caaaYa?« ai ®e?!? .

…a«? ®e?!?  ?a®?§®e«  ?a? ce§®cY Fa ae?cYa?®© !?!«?®aYc-
®© aea?ae?? ( ?a?¬Ya,Y  ©¤Y ea?aea, § ?a®eYe© aea?ae?Y©
settextstyle), aaa  c«?c Yaai caaaY?© ?®¤ ®e?!??. „®aaa?
? ?®¤a ®e?!?? ¤«i ?®a«Y¤Y© Fa ae?cYa?®© ®?Ya ae??, a®®!e?ceY©
®! ®e?!?Y, ce?®«iYaai ?a? ?®¬®e? graphresult. ??aY¤Y«Ye
a«Y¤aie?Y ?®¤e c®§ca a  ®e?!??:

———————————————————–
?®¤ ?®aa a  ‘®®acYaaacaie i aaa®? 
®e?!?? Fa ae?cYa?®©_®e?!?? a a®®!eY?Y¬ ®! ®e?!?Y
———————————————————–
0 grOk No error
˜Ya ®e?!??

-1 grNoInitGraph (BGI) graphics not installed (use
initgraph)
(BGI) Fa ae??  Y ?aa «?a®c  
(?a?®«i§a©aY initgraph)

-2 grNotDetected Graphics hardware not detected
?a ae?cYa?®Y  ?? a a®Y ®!Ya?YcY?Y
Y ®! aa¦Y®

-3 grFileNotFound Device driver file not found
˜Y  ©¤Y ae ©« ¤a ©cYa  aaaa®©aac 

-4 grInvalidDriver Invalid device driver file
˜YcYae© ae ©« ¤a ©cYa  aaaa®©aac 

-5 grNoLoadMem Not enough memory to load driver
˜Y ac a Ya ? ¬ia? ¤«i § Faa§??
¤a ©cYa 

-6 grNoScanMem Out of memory in scan fill
?®c?« ai ? ¬iai ?a? a? ?aaieY¬
§ ?®«Y??

-7 grNofloodMem Out of memory in flood fill
?®c?« ai ? ¬iai ?a? « c?®¬
§ ?®«Y??

-8 grFontNotFound Font file not found
” ©« ea?aea  Y  ©¤Y

-9 grNoFontMem Not enough memory to load font
˜Y ac a Ya ? ¬ia? ¤«i § Faa§??
ea?aea 

-10 grInvalidMode Invalid graphics mode for selrcted
driver
˜Y¤®?aaa?¬e© Fa ae?cYa??© aY¦?¬
¤«i ce!a ®F® ¤a ©cYa 

-11 grError Graphics error
?a ae?cYa? i ®e?!? 

-12 grIOerror Graphics I/O error
?a ae?cYa? i ®e?!?  cc®¤ /cec®¤ 

-13 grInvalidFont Invalid font file
˜YcYae© ae ©« ea?aea 

– 222 –
-14 grInvalidFontNum Invalid font number
˜YcYae© ®¬Ya ea?aea 

-15 grInvalidDeviceNum Invalid device number
˜YcYae© ®¬Ya aaaa®©aac 

-16 grInvalidVersion Invalid version of file
˜Y?a c?«i i cYaa?i ae ©« 
———————————————————–

‚e§®c grapherrormsg(graphresult()) c®§ca e Ya aaa®?a
a®®!eY?i ®! ®e?!?Y ?§ ceeY?a?cY¤Y®© a !«?aee.

?®¤ c®§ca a  ®e?!??  ? ?«?c Yaai, ?§¬Yiiai a®«i?®
?®F¤  Fa ae?cYa? i aea?ae?i a®®!e Ya ®! ®e?!?Y. ?®¤ c®§ca a 
®e?!?? a!a aec Yaai c 0 a®«i?® ?a? aa?Ye®¬ ce?®«Y??
initgraph, «?!® ?a? ce§®cY graphresult. ’ ??¬ ®!a §®¬, Ya«?
ce a®a?aY § ai, ? ? i Fa ae?cYa? i aea?ae?i c®§ca a?«  ®e?!-
?a, a¦® aa ?ai § cY?Y graphresult c® caY¬Y®© ?YaY¬Y-
®© ? § aY¬ ?a®cYaiai YY.

”a?ae?? § ?a®a  a®aa®i?i
___________________________________________________________

˜?¦Y ?a?c®¤?aai ?a a?®Y ?§«®¦Y?Y aea?ae?© § ?a®a  a®a-
a®i?i Fa ae?cYa?®F® aY¦?¬ :

getarccoords ‚®§ca e Ya ?ae®a¬ ae?i ® ?®®a¤? a a,
§ ¤ ea c ?®a«Y¤Y¬ ce§®cY arc ?«? ellipse.

getaspectratio ‚®§ca e Ya ?®iaeae?ae?Ya a¦ a?i ¤«i Fa ae?-
cYa?®F® i?a  .

getbkcolor ‚®§ca e Ya aY?ae?© aecYa ae® .

getcolor ‚®§ca e Ya aY?ae?© aecYa cecYac?c ?i.

getdrivername ‚®§ca e Ya ?¬i aY?aeYF® Fa ae?cYa?®F®
¤a ©cYa .

getfillpattern ‚®§ca e Ya e !«® § ?®«Y?i, ®?aY¤Y«iY-
¬e© ?®«i§®c aY«Y¬.

getfillsettings ‚®§ca e Ya ?ae®a¬ ae?i ® aY?aeY¬ e !«®Y
? aecYaY § ?®«Y?i.

getgraphmode ‚®§ca e Ya aY?ae?© Fa ae?cYa??© aY¦?¬.

getlinesettings ‚®§ca e Ya aY?ae?Y aa?«i, e !«® ? a®«-
e?a «???

getmaxcolor ‚®§ca e Ya ¬ ?a?¬ «i® ¤®?aaa?¬®Y   aY?a-
e?© ¬®¬Ya § cY?Y ???aY«i.

getmaxmode ‚®§ca e Ya ¬ ?a?¬ «i® ¤®?aaa?¬e© ®¬Ya
aY¦?¬  ¤«i aY?aeYF® ¤a ©cYa .

getmaxx ‚®§ca e Ya aY?aeYY a §aYeY?Y ?® ®a? x.

getmaxy ‚®§ca e Ya aY?aeYY a §aYeY?Y ?® ®a? y.

getmodename ‚®§ca e Ya ?¬i ¤ ®F® aY¦?¬  ¤a ©cYa .

getmoderange ‚®§ca e Ya ¤? ? §® aY¦?¬®c ¤«i ¤ ®F®
¤a ©cYa .

getpalette ‚®§ca e Ya aY?aeai ? «?aaa ? YY a §¬Ya.

– 223 –

getpixel ‚®§ca e Ya aecYa ???aY«i c (x,y).

gettextsettings ‚®§ca e Ya aY?ae?© ea?aea,  ?a c«Y?Y,
a §¬Ya ? a?®a®! cea c?c ?i aY?aa .

getviewsettings ‚®§ca e Ya ?ae®a¬ ae?i ® aY?aeY¬ Fa ae?-
cYa?®¬ ®?Y.

getx ‚®§ca e Ya ?®®a¤? aa x aY?aeY© ?®§?ae?? (CP).

gety ‚®§ca e Ya ?®®a¤? aa y aY?aeY© ?®§?ae?? (CP).

‚ ? ¦¤®© ?§ ? aYF®a?© Fa ae?cYa??a aea?ae?© Turbo C++
?¬YYaai a®ai !e ®¤  aea?ae?i § ?a®a  a®aa®i?i. ˜a? aea?ae?-
?a?®¬? «?ai ?a? a aa¬®aaY?? a®®acYaaacaie?a ? aYF®a?© ?
a ?¦Y a aa¬ aa?c iaai §¤Yai®a¤Y«i®. ? ¦¤ i ?§ Fa ae?cYa??a
aea?ae?© § ?a®a  a®aa®i?i Turbo C++ ?¬YYa ?¬i c?¤ 
“getca®-a®” (§  ?a?«icY?Y¬ ? aYF®a?? aea?ae?© ®!a !®a?? ®e?-
!®?). ˜Y?®a®aeY ?§ ?a Y ?a??¬ ia ?? ??a  aFa¬Ya®c
?c®§ca e ia Y¤?aacY®Y § cY?Y, ?aY¤aa c«iieYY a®!®© ?a-
?®¬ai ?ae®a¬ ae?i; ?a®c?Y !Yaaa a? § aY«i aaaa?aaae, ®?aY¤Y-
«iY¬®© c graphics.h, § ?®«iia iaa aaaa?aaaa a®®acYaaacaieY©
?ae®a¬ ae?Y© ? Y c®§ca e ia ?? ??a § cY?©.

”a?ae?i¬? § ?a®a  a®aa®i?i ? aYF®a?? a?a c«Y?iFa ae?-
cYa?®© a?aaY¬e ic«iiaai getgraphmode, getmaxmode ?
getmoderange. ˜Yac i ?§ ?a c®§ca e Ya aeY«®Y c?a«®, ®?aY¤Y-
«iieYY aY?ae?©Fa ae?cYa??© ¤a ©cYa ? aY¦?¬, ca®a i c®§ca e Ya
¬ ?a?¬ «ie© ®¬Ya aY¦?¬  ¤«i ia®F® ¤a ©cYa ,   aaYaii c®§c-
a e Ya ¤? ? §® aY¦?¬®c, ?®¤¤Ya¦?c Y¬ea ¤ e¬ Fa ae?cYa??¬
¤a ©cYa®¬. getmaxx ? getmaxy c®§ca e ia a®®acYaaacY® ¬ ?-
a?¬ «ieY i?a eY ?®®a¤? ae x ? y ¤«i aY?aeYF® Fa ae?cYa?®-
F® aY¦?¬ .

”a?ae?i¬? § ?a®a  a®aa®i?i? aYF®a?? cecYac?c ?i ? § –
?®«Y?i ic«iiaai getarccoords, getaspectratio,
getfillpattern ? getlinesettings. getarccoords § ?®«iYa
aaaa?aaaa, a®¤Ya¦ eaa ?®®a¤? ae, ?®a®aeY ?a?®«i§®c «?ai ?a?
?®a«Y¤Y¬ ce§®cY aea?ae?© arc ?«? ellipse; getaspectratio a®-
®!e Ya aY?ae?©?®iaeae?ae?Ya a¦ a?i, ?a?®«i§aY¬e© Fa ae?cYa?®©-
a?aaY¬®© ¤«i a®F®, ca®!e ®?aa¦®aa? ceF«i¤Y«? ?aaF«e¬?.
getfillpatternc®§ca e Ya aY?ae?© ®?aY¤Y«iY¬e©?®«i§®c aY«Y¬
e !«® § ?®«Y?i. getfillsettings § ?®«iYa Y?®a®aaiaaaa?-
aaaa aY?ae?¬ e i«®®¬ ? aecYa®¬ § ?®«Y?i. getlinesettings
§ ?®«iYa aaaa?aaaa aY?ae?¬ aa?«Y¬ «???(a?«®e i, ?a?a?a ?
a.¤.), a®«e?®© (®!ec i?«? acY«?cY i),   a ?¦Y e !«®®¬
«???.

”a?ae?i¬? § ?a®a  a®aa®i?i? aYF®a?? ¬ ??a«?a®c ?i
Fa ae?cYa??¬ ®?®¬ ic«iiaai getviewsettings, getx, gety ?
getpixel. ˜®a«Y a®F®, ? ? Fa ae?cYa?®Y ®?® ®?aY¤Y«Y®, ce
¬®¦YaY  ©a?YF®  !a®«iaeY i?a eY ?®®a¤? ae ?ceia?ai
a®aa®i?Y aY¦?¬  ®aaYc??, ce§c c getwiewsettings, ?®a®a i
§ ?®«iYa a®®acYaaacaieY© ?ae®a¬ ae?Y© Y?®a®aai aaaa?aaaa.
getx ? gety c®§ca e ia (®a®a?aY«i® Fa ae?cYa?®F®®? ) x- ?
y-?®®a¤? ae aY?aeY© ?®§?ae??. getpixel c®§ca e Ya aecYa a? –
§ ®F® ???aY«i.

”a?ae?i § ?a®a a®aa®i?i ? aYF®a??cec®¤  aY?aa  c Fa –
ae?cYa?®¬ aY¦?¬Y ?¬YYaai a®«i?® ®¤  – gettextsettings. ˜a 
aea?ae?i § ?®«iYa aaaa?aaaa?ae®a¬ ae?Y© ®aY?aeY¬ a?¬c®«i®¬
ea?aeaY,  ?a c«Y?? cec®¤  aY?aa  (?® F®a?§®a «? ?«? ?®
cYaa?? «?)6 ?®iaeae?ae?YaY acY«?cY?ia?¬c®«®c,   a ?¦Y c?¤Y
cea c?c ?i (? ? ¤«i F®a?§®a «i®, a ? ?¤«i cYaa?? «i-
®-®a?Ya?a®c ea aY?aa®c).

– 224 –
”a?ae?i¬? § ?a®a  a®aa®i?? ? aYF®a??a?a c«Y?i aecYa®¬
ic«iiaai getbkcolor,c®§ca e ie i aY?ae?© aecYa ae® ,
getcolor, c®§ca e ie i aY?ae?© aecYa cecYac?c ?i ?
getpalette,§ ?®«iie i aaaa?aaaa, ?®a®a i c?«ic Yac aY!i
a §¬Ya aY?aeY© ? «?aae ? YY a®¤Ya¦?¬®Y. getmaxcolor c®§ca –
e Ya ¬ ?a?¬ «i® ¤®?aaa?¬®Y § cY?Y ???aY«i ¤«i aY?aeYF®
Fa ae?cYa?®F® ¤a ©cYa  ? aY¦?¬  (a §¬Ya ? «?aae -1).

?  ?®Yae, getmodename ? getdrivername c®§ca e ia?¬i
§ ¤ ®F® aY¦?¬  ¤a ©cYa  ? ?¬i aY?aeYF® Fa ae?cYa?®F® ¤a ©-
cYa , a®®acYaaacY®.

?« c  6

?aYaaeY©a a i§e?®¬  aaY¬!«Ya 
___________________________________________________________

‚ ¤ ®© F« cY a aa? §ec Yaai, ? ?  ??a ai  aaY¬!«Ya-
e© ?®¤, ?®a®ae© !a¤Ya a®a®e® a !®a ai a Turbo C++. ˜aY¤?®-
« F Yaai, ca® ce § YaY, ? ? ??eaaai?®¤?a®Fa ¬¬e   i§e?Y
 aaY¬!«Ya  ?? ? ®?aY¤Y«iiaai aYF¬Yae, ?®aa ae ¤ ea ? a.
¤. …a«? ce Y § ?®¬e a ia?¬? ?®aeY?ae?i¬?, ?®c?a ©aY aa?®-
c®¤aac® ?® Turbo Assembler, ®a®!Y® F« ca “?aYaaeY©a Turbo
Assembler a Turbo C” c ˜a?®c®¤aacY ?®«i§®c aY«i.
TurboAssembler cYaa?? 2.0c?«ic Ya Ya?®«i?® aaY¤aac, ¤Y« i-
e?a ?aYaaeY©a a Turbo C++ !®«YY ?a®aae¬ ? ?a®§a ce¬ ¤«i
?a®Fa ¬¬?aa .

‘¬Ye ®Y ?a®Fa ¬¬?a®c ?Y

Turbo C++ a?a®e Ya ce§®c ?§ ‘-?a®Fa ¬¬ ?®¤?a®Fa ¬¬,  –
??a ea   i§e?Y  aaY¬!«Ya , ?  ®!®a®a, ce§®c ?§  aaY¬!-
«Yaea ?a®Fa ¬¬ ?®¤?a®Fa ¬¬   ‘. ‚ ¤ ®¬ a §¤Y«Y ?®? § ®,
 a?®«i?® ?a®aa?aYaaeY©a ¬Y¦¤a Turbo C++ ?  aaY¬!«Ya®¬; a ?-
¦Y ?a?c®¤?aai ?ae®a¬ ae?i, ?®¬®F ie i   ?a ?a??Y ®aaeYaac?ai
a ?®© ?aYaaeY©a.

˜®a«Y¤®c aY«i®aa? ?YaY¤ c? ? a ¬Yaa®c

Turbo C++ ?®¤¤Ya¦?c Ya¤c  ¬Ya®¤  ?YaY¤ c? ? a ¬Yaa®c
aea?ae??. ?¤? ?§ ?a ic«iYaai aa ¤ aae¬ ¬Ya®¤®¬ ‘, ?®a®ae©
¬e a aa¬®aa?¬ ?Yace¬; ca®a®© ¬Ya®¤ § ?¬aac®c  ?§ ˜ a? «i.

˜®a«Y¤®c aY«i®aai ?YaY¤ c? ? a ¬Yaa®c c ‘
___________________________________________________________

˜aY¤?®«®¦?¬, ce ®!eic?«? a«Y¤aie?© ?a®a®a?? aea?ae??:

void funca(int p1, int p2, long p3);

˜® a¬®«c ?i Turbo C++ ?a?®«i§aYa ?®a«Y¤®c aY«i®aai
?YaY¤ c? ? a ¬Yaa®c ‘, ?®a®a i a ?¦Y  §ec Yaai a®F« eY?Y¬
® aci§ia ‘. ˜a? ce§®cY ia®© aea?ae??(funca) ? a ¬Yaae ?®¬Ye –
iaaic aaY? c ?®a«Y¤®c aY«i®aa? a?a c – «Yc® (p3,p2,p1),
?®a«YcYF® c aaY? ?®¬Ye Yaai  ¤aYa c®§ca a . ’ ??¬ ®!a §®¬, c
a«ac Y ce§®c 

– 225 –

main()
(*
int i,j;
long k;

i = 5; j = 7; k = 0x1407AA;
funca(i,j,k);

*)

a® aaY? (Y?®aaY¤aacY® ?YaY¤ ?®¬YeY?Y¬ c YF®  ¤aYa 
c®§ca a ) !a¤Ya ceF«i¤Yai a«Y¤aie?¬ ®!a §®¬:

sp + 06: 0014
sp + 04: 07AA k = p3
sp + 02: 0007 j = p2
sp: 0005 i = p1

‚e§ec Y¬®© ?®¤?a®Fa ¬¬Y Y aaY!aYaai a®c® § ai,
a?®«i?® ? a ¬Yaa®c ?®¬YeY® c aaY?. ?  ?a®aa® ?aY¤?®« F Ya,
ca® caY a¦eY Y© ? a ¬Yaae  a®¤iaai c aaY?Y.

?a®¬Y a®F® – ca® ®cYi c ¦® – ce§ec Y¬ i ?®¤?a®Fa ¬¬ 
Y ¤®«¦  a?¬ ai ? a ¬Yaae a® aaY? . ˜®cY¬a? „Y«® c a®¬,
ca® ia® a¤Y« Ya ce§ec ie i ?a®Fa ¬¬ . ˜ ?a?¬Ya, ?a?cY¤Y i
ceeY aea?ae?i c  aaY¬!«Ya®¬ c?¤Y, ?®«ac Y¬®¬ ?®¬??«ia®a®¬ ?§
?aa®¤®F® ?®¤    ‘, !a¤Ya ceF«i¤Yai a«Y¤aie?¬ ®!a §®¬:

mov WORD PTR [bp-8],5;aaa ®c?  i =5
mov WORD PTR [bp-6],7;aaa ®c?  j = 7
mov WORD PTR [bp-2],0014h;aaa ®c?  k = 0x1407AA
mov WORD PTR [bp-4],07AAh
push WORD PTR [bp-2];?®¬YeY?Y c aaY? aa aeYF® a«®c  k
push WORD PTR [bp-4];?®¬YeY?Y c aaY? ¬« ¤eYF® a«®c  k
push WORD PTR [bp-6];?®¬YeY?Y c aaY? j
push WORD PTR [bp-8];?®¬YeY?Y c aaY? i
call NEAR PTR funca ;ce§®c funca (?®¬YeY?Y c aaY?
; ¤aYa  c®§ca a )
add sp,8; aaa®©?  aaY? 

?!a a?aY c?¬ ?Y   ?®a«Y¤ii ?®¬ ¤a, add sp,8. ?
ia®¬a ¬®¬Yaa ?®¬??«ia®aa ?§cYaa®, a?®«i?® ? a ¬Yaa®c !e«®
?®¬YeY® c aaY?; ?®¬??«ia®a a ?¦Y § Ya, ca®  ¤aYa c®§ca a 
!e« ?®¬YeY c aaY? ?a? ce§®cY funca ? a¦Y !e« aia ®aaa¤ 
?®¬ ¤®© ret c ?®aeY funca.

˜®a«Y¤®c aY«i®aai ?YaY¤ c? ? a ¬Yaa®c ˜ a? «i
___________________________________________________________

„aaF?¬ ¬Ya®¤®¬ ?YaY¤ c? ? a ¬Yaa®c ic«iYaai aa ¤ aae©
¬Ya®¤ ?YaY¤ c? ? a ¬Yaa®c ˜ a? «i ( §ec Y¬e© a ?¦Y a®F« eY-
?Y¬ ® aci§ia ˜ a? «i). ˜a® Y § c?a, ca® ce ¬®¦YaY ce§e-
c ai ?§ TurboC++ aea?ae?? Turbo Pascal. ˜a® Yc®§¬®¦®. …a«?
funca ®!eic«Y  ? ?

void pascal funca(int p1, int p2, long p3);

a® ?a? ce§®cY ia®© aea?ae?? ? a ¬Yaae ?®¬Ye iaai c aaY?
c ?®a«Y¤®c aY«i®aa? a«Yc – ?a c® (p1,p2,p3), ?®a«Y cYF® c
aaY? ?®¬Ye Yaai  ¤aYa c®§ca a . ’ ??¬ ®!a §®¬, ?a? ce§®cY:

– 226 –

main()
(*
int i,j;
long k;

i = 5; j = 7; k = 0x1407AA;
funca(i,j,k);

*)

a® aaY? (Y?®aaY¤aacY® ?YaY¤ ?®¬YeY?Y¬ c YF®  ¤aYa 
c®§ca a ) !a¤Ya ceF«i¤Yai a«Y¤aie?¬ ®!a §®¬:

sp + 06: 0005 i = p1
sp + 04: 0007 j = p2
sp + 02: 0014
sp: 07AA k = p3

?a ?, c cY¬ §¤Yai a §«?c?Y? „Y«® c a®¬, ca® ?®¬?¬® ?§-
¬YY?i ®cYaY¤®aa? ?®¬YeY?i ? a ¬Yaa®c c aaY?, ?®a«Y¤®c –
aY«i®aai ?YaY¤ c? ? a ¬Yaa®c ˜ a? «i ?aY¤?®« F Ya, ca® ce-
§ec Y¬ i aea?ae?i (funca) § Ya, a?®«i?® ? a ¬Yaa®c !a¤Ya Y©
?YaY¤ ® ? a®®acYaaacY®  aaa ?c YaaaY?. „aaF?¬?a«®c ¬?,
aY?Yai c  aaY¬!«?a®c ®¬ c?¤Y ¤  i aea?ae?i !a¤Ya ?¬Yai
c?¤:

push WORD PTR [bp-8];?®¬YeY?Y c aaY? i
push WORD PTR [bp-6];?®¬YeY?Y c aaY? j
push WORD PTR [bp-2];?®¬YeY?Y c aaY? aa aeYF® a«®c  k
push WORD PTR [bp-4];?®¬YeY?Y c aaY? ¬« ¤eYF® a«®c  k
call NEAR PTR funca ;ce§®c funca (?®¬YeY?Y c aaY?
; ¤aYa  c®§ca a )

?a¬Ya?¬, ca® aY?Yai ?®a«Y ce§®c  ®aaaaaacaYa ?®¬ ¤ add
sp,8. ‚¬Yaa® YY funca ?a?®«i§aYa ?a? ®?®c ?? ?®¬ ¤a ret
8, ?a? ?®¬®e? ?®a®a®© ®c?e Ya aaY? ?YaY¤ c®§ca a®¬ ? main.

˜® a¬®«c ?i caY aea?ae??, a®§¤ c Y¬eY c Turbo C++, ?a-
?®«i§aia a?®a®! ?YaY¤ c? ? a ¬Yaa®c ‘. ?a?«icY?Y ¤Y« Yaai
?a?  «?c?? ®?ae???®¬??«ia®a  -p (®?ae?i Pascal c ¤? «®F®c®¬-
?®«Y Code Generation); c ia®¬ a«ac Y caY aea?ae?? ?a?®«i§aia
¬Ya®¤ ?YaY¤ c? ? a ¬Yaa®c ˜ a? «i. ’Y¬ Y ¬YYY, ce ¬®¦YaY
§ ¤ ai ¤«i «i!®© aea?ae?? ¬Ya®¤ ?YaY¤ c? ? a ¬Yaa®c ‘ ?a? ?®-
¬®e? ¬®¤?ae?? a®a  cdecl:

void cdeclfunca(int p1, int p2, long p3);

„ ®Y ®!eic«Y?Y ?YaY®?aY¤Y«?a ¤?aY?a?ca ?®¬??«ia®a  –
p.

? ®¤ ?®, ?®cY¬a ¬®¦Ya c®§??aai Y®!a®¤?¬®aai ?a?®«i-
§®c ai a®F« eY?Y ® aci§ia ˜ a? «i c®®!eY? „«i ia®F® Yaai
¤cY F« cea ?a?c?e.

– ‚ ¬ ¬®¦Ya ?® ¤®!?aiai ce§ec ai aaeYaacaie?Y ?®¤?a®F-
a ¬¬e   i§e?Y  aaY¬!«Ya , ?a?®«i§aie?Y a®F« eY?Y ® aci§ia
˜ a? «i.

– ˜®«ac Y¬e© c a ?®¬ a«ac Y ?®¤ Ya?®«i?® ¬YieY ?®
a §¬Yaa, ?®a?®«i?a c ia®¬ a«ac Y Y aaY!aYaai c ?®aeY ce?®«-
iai ®c?aa?a aaY? .

?¤ ?®, ?a?®«i§®c ?Y a®F« eY?i ® aci§ia ˜ a? «i ¬®¦Ya

– 227 –
ce§c ai Y?®a®aeY ?a®!«Y¬e.

˜aY¦¤Y caYF®, a®F« eY?Y ® aci§ia ˜ a? «i ¤ Ya ¬YieY
c®§¬®¦®aaY©,cY¬ ¤«i ‘. ‚e Y ¬®¦YaY ?YaY¤ c ai ?YaY¬Y®Y
c?a«® ? a ¬Yaa®c (? ? ia®¤®?aa? Yaai ca®F« eY?? ‘), ?®a-
?®«i?a ce§ec Y¬ i ?®¤?a®Fa ¬¬  ¤®«¦  § ai c?a«® ?YaY¤ c Y-
¬ea Y© ? a ¬Yaa®c ? a®®acYaaacYe¬®!a §®¬  aaa®?ai aaY?.
˜YaY¤ c  !®«ieYF® ?«? ¬YieYF® c?a«  ? a ¬Yaa®cce§ec Ya
aYaiY§eY ?a®!«Y¬e, a®F¤  ? ? c a«ac Y a®F« eY?i ‘ ?cYF®
®a®!Y®F® c a ??aa«ac ia Y ?a®?aa®¤?a (?a®¬Y, c®§¬®¦®,
a®F®, ca® ?a®Fa ¬¬  ¤ aa Y?a c?«ie© ®acYa).

‚®-ca®aea, ?a? ?a?®«i§®c ?? ®?ae?? ?®¬??«ia®a  ce ®!i-
§ aY«i® c?«ic?ai ae ©«e § F®«®c?  ¤«icaYa ce§ec Y¬ea c eY©
?a®Fa ¬¬®© aa ¤ aaea aea?ae?© ‘. ˜®cY¬a? „Y«® c a®¬, ca® c
?a®a?c®¬ a«ac Y Turbo C++ !a¤Ya ?a?®«i§®c ai ¤«i ? ¦¤®© ?§
ia?a aea?ae?© a®F« eY?Y ® aci§ia (? ?¬Y a) – ? c e  ?a®F-
a ¬¬  Y !a¤Ya ?®¬?®®c aiai.

‚ ae ©«Y § F®«®c?  ? ¦¤ i ?§ ia?a aea?ae?© ®!eic«Y  ? ?
cdecl, ?®ia®¬a c?«icY?Y ae ©«®c§ F®«®c?  § aa c?a ?®¬??«ia®a
?a?®«i§®c ai ¤«i ia?a aea?ae?© a®F« eY?Y ‘.

˜Y§i¬Y:Ya«? ce a®!?a YaYai ?a?®«i§®c ai c‘-?a®Fa ¬¬Y
a®F« eY?Y ®aci§ia˜ a? «i, Y § !ec ©aY ® Y®!a®¤?¬®aa? ?a-
?®«i§®c ai ?a®a®a??e aea?ae?© cY§¤Y, F¤Y ia® c®§¬®¦®,   ? ¦-
¤ai aea?ae?i ic® ®!eic«i©aY pascal ?«? cdecl. ˜®«Y§® a ?¦Y
a §aYe?ai ce¤ ca a®®!eY?i “Function call with no
prototype” (“ce§®c aea?ae?? !Y§ ?a®a®a?? “), ca®!e F a a?a®-
c ai  «?c?Y ?a®a®a??®c caYa aea?ae?©.

˜®¤F®a®c?  ? ce§®ca .ASM ?§ Turbo C++

˜a?  ??a ?? ?®¤?a®Fa ¬¬   i§e?Y  aaY¬!«Ya  a¦®
?a??¬ ai c® c?¬ ?Y ®?aY¤Y«YeY a®F« eY?i ¤«i a®F®, ca®-
!e (1) ®!Ya?Yc?ai ?®¬?®®ce?? a¦®© Y¬a ?ae®a¬ ae?Y© ? (2)
®!Ya?Yc?ai a®®acYaaac?Y ae®a¬ a  ae ©«  ? ¬®¤Y«? ? ¬ia?, ?a-
?®«i§aY¬®© c ?a®Fa ¬¬Y   ‘. “?a®eYeY aYF¬YaeY ¤?aY?a?ce

?!ec® ¬®¤a«?   i§e?Y  aaY¬!«Ya  a®aa®ia ?§ aaYa a §-
¤Y«®c: ?®¤ , ??ae? «?§?a®c ea ¤ ea ? Y??ae? «?§?a®c –
ea ¤ ea. ? ¦¤e© ?§ ia?a a??®c ?ae®a¬ ae?? ®aF ?§®c  c
®a¤Y«ie© aYF¬Ya a ?a?®«i§®c ?Y¬ ®?aY¤Y«Yea ?¬Y, ?®a®-
aeY § c?aia ®a ?a?®«i§aY¬®© c c eY© ‘-?a®Fa ¬¬Y ¬®¤Y«? ? ¬i-
a?.

Turbo Assembler (TASM) ?aY¤« F Ya c ¬ aa? a?a®eYea
aYF¬Yaea ¤?aY?a?ce (.CODE, .DATA ? .DATA?), ?®a®aeY¬®Faa
!eai ?a?®«i§®c e?a? ®?aY¤Y«Y?? ia?a aYF¬Ya®c. ?? F®c®aia
?®¬??«ia®aa ® Y®!a®¤?¬®aa??a?®«i§®c ai ?¬Y  aYF¬Ya®c ?®
a¬®«c ?i ¤«i ¬®¤Y«? ? ¬ia?, § ¤ ®© c ¬? ?a? ?®¬®e? ¤?aY?-
a?ce .MODEL. ˜ ?a?¬Ya, Ya«? c e  ?a®Fa ¬¬    ‘ ?a?®«i§aYa
¬®¤Y«i ? ¬ia? small, ce ¬®¦YaY ®aF ?§®c ai ? ¦¤e©  aaY¬!-
«Yae© ¬®¤a«i a a?a®eYe¬? aYF¬Yae¬? ¤?aY?a?c ¬?,? ? ?®-
? § ® c a«Y¤aieY© a !«?aeY:

———————————————————–
.MODEL SMALL

.CODE
…?®¤®ce© aYF¬Ya…

.DATA
…aYF¬Ya ??ae? «?§?a®c ea ¤ ea…

.DATA?
…aYF¬Ya Y??ae? «?§?a®c ea ¤ ea…

– 228 –
———————————————————–
‘a ¤ aaeY aYF¬YaeY ¤?aY?a?ce

‚ Y?®a®aea a«ac ia c ¬ ¬®¦Ya ?® ¤®!?aiai ?a?®«i§®c ai ¤aa-
F?Y ?¬Y  aYF¬Ya®c, Y¦Y«? aY, ca® ic«iiaai a¬®«c ?i¬?¤«i
¤ ®© ¬®¤Y«? ? ¬ia?. „«i ia®F® ce ¤®«¦e ?a?®«i§®c ai aa –
¤ aaeY aYF¬YaeY ¤?aY?a?ce, ? ? ?®? § ® c ’ !«?aeY 6.1.

”®a¬ a ae ©«  i§e?   aaY¬!«Ya  ’ !«?ae  6.1
———————————————————–
code SEGMENT BYTE PUBLIC ‘CODE’
ASSUME CS:code, DS:dseg
………..?®¤®ce© aYF¬Ya………….
code ENDS

dseg GROUP _DATA,_BSS
data SEGMENT WORD PUBLIC ‘DATA’
…??ae? «?§?a®c e© aYF¬Ya ¤ ea…
data ENDS

_BSS SEGMENT WORD PUBLIC ‘BSS’
…Y??ae? «?§?a®c e© aYF¬Ya ¤ ea…
_BSS ENDS
END
———————————————————–

?¤Ya?ae?? a®ae code, data ? dseg c ¤ ®¬ ¬ ?YaY ?¬Yia a?Y-
ae? «ieY § ¬Y?aY«?, § c?aie?Y ®a ?a?®«i§aY¬®© ¬®¤Y«? ? ¬i-
a?; c a !«?aeY 6.2 ?®? § ®, ? ?®Y ?¬i ¤®«¦® ?a?®«i§®c aiai
¤«i a®©?«? ?®© ¬®¤Y«?. ?¬i_ae ©«  c ’ !«?aeY 6.2 – ia® ?¬i
¬®¤a«i: ®® ¤®«¦® !eai aY¬ ¦Y c ¤?aY?a?cY NAME ? ?a? § ¬Y-
 a ?¤Ya?ae?? a®a®c.

?a¬Ya?¬,ca® ca«ac Y¬®¤Y«?? ¬ia?huge aYF¬Ya _BSS ®aaaaaaca-
Ya,   ®?aY¤Y«Y?Y GROUP ®?aa? Yaai ?®«®aaii. ‚ aeY«®¬, _BSS
?aY¤aa c«iYa a®!®© ®?ae?i; ®?aY¤Y«Y?Y YY Y®!a®¤?¬® a®«i?® c
a«ac Y ?a?®«i§®c ?i.

‹ace?© a?®a®! a®§¤ ?i “§ F®a®c??” ¤«i !a¤aeY©  aaY¬!«Ya®©
?a®Fa ¬¬e a®aa®?a c a®¬, ca®!e a?®¬??«?a®c ai ?aaaai ?a®F-
a ¬¬a c .ASM-ae ©« (?a? ?®¬®e? ®?ae?? TCC -S) ? § aY¬ ?§ac?ai
aFYYa?a®c e© a ??¬ ®!a §®¬  aaY¬!«Yae© ?®¤.

‡ ¬Ye ?¤Ya?ae?? a®a®c ? ¬®¤Y«? ? ¬ia? ’ !«?ae  6.2
———————————————————–
?®¤Y«i ‡ ¬Ye ?¤Ya?ae?? a®a “? § aY«? ?®¤  ? ¤ ea
———————————————————–
Tiny,Small code = _TEXT?®¤:DW _TEXT:xxx
data = _DATA„ eY: DW DGROUP:xxx
dseg = DGROUP

Compact code = _TEXT?®¤:DW _TEXT:xxx
data = _DATA„ eY: DD DGROUP:xxx
dseg = DGROUP

Medium code = ?¬i_ae ©« _TEXT?®¤:DD:xxx
data = _DATA„ eY: DW DGROUP:xxx
dseg = DGROUP

Large code = ?¬i_ae ©« _TEXT?®¤:DD:xxx
data = _DATA„ eY: DD DGROUP:xxx
dseg = DGROUP

Huge code = ?¬i_ae ©« _TEXT?®¤:DD:xxx
data = ?¬i_ae ©« _DATA„ eY: DD:xxx
———————————————————–

– 229 –
??aY¤Y«Y?Y ¤ ea – ?®aa a ? ?YaY¬Yea

?®¤Y«? ? ¬ia? a ?¦Y c«?iia   a®, ? ??¬ ®!a §®¬ ce ®?aY¤Y«i-
YaY «i!eY ?®aa ae, ic«iie?Yai a? § aY«i¬? ?®¤ , ¤ ea,
«?!® a®F® ? ¤aaF®F®. ‚ a !«?aeY 6.2 ?®? § ®, ? ? ¤®«¦e ceF-
«i¤Yai ia? a? § aY«?, ?a?cY¬ xxx – ia®  ¤aYa,   ?®a®ae© aa-
a  c«?c Yaai a? § aY«i.

˜Y?®a®aeY ®?aY¤Y«Y?i ?a?®«i§aia DW (®?aY¤Y«Y?Y a«®c ),  
Y?®a®aeY – DD (®?aY¤Y«Y?Y ¤c®©®F® a«®c ), ca® ®§ c Ya
a §¬Ya aY§a«ia?aaieYF® a? § aY«i. —?a«®ceY ? aY?aa®ceY ?®a-
a ae ®?aY¤Y«iiaai ®a¬ «ie¬ ®!a §®¬.

˜YaY¬YeY, a §a¬YYaai, ®?aY¤Y«iiaai a ? ¦Y, ? ? ? ?®aa –
ae. …a«? c ¬ a¦e ?YaY¬YeY,Y ??ae? «?§?a®c eY?®?aYa-
e¬? § cY?i¬?, ce ¬®¦YaY ®!eic?ai ?ac aYF¬YaY _BSS, ccY¤i
c®?a®a?aY«ie© § ?(?) ca®¬ ¬YaaY, F¤Y ®!ec®  a®¤?aai § –
cY?Y.
??aY¤Y«Y?Y F«®! «iea ? cYe?a ?¤Ya?ae?? a®a®c

˜®a«Y a®F®, ? ? ce a®§¤ «? ¬®¤a«i, c eY© ?a®Fa ¬¬Y   Turbo
C++ aaY!aYaai § ai, ? ??Y aea?ae?? ®  ¬®¦Ya ce§ec ai ?  
? ??Y ?YaY¬YeY aae« aiai. ? «®F?ce¬ ®!a §®¬, c ¬ ¬®¦Ya
?®aaY!®c aiai ?¬Yai c®§¬®¦®aai ce§ec ai aea?ae?? Turbo C++?§
?®¤?a®Fa ¬¬   i§e?Y  aaY¬!«Ya , «?!® aae« aiai ®aaa¤   ?Y-
aY¬YeY, ®?aY¤Y«YeY c ?a®Fa ¬¬Y   Turbo C++.

˜a? ce?®«Y?? a ??a ce§®c®c ce ¤®«¦e a®a®e® ?aY¤aa c«iai
aY!Y a !®aa ?®¬??«ia®a  ? ?®¬?®®ce??  Turbo C++. ˜a? ®!eic-
«Y?? cYeYF® ?¤Ya?ae?? a®a  ?®¬??«ia®a  ca®¬ a?cYa?? ¤®-
! c«iYa ? ia®¬a ?¬Y?a?¬c®«?®¤cYa??c ?i (_), ?aY¦¤Y cY¬
a®aa ?ai YF® c ®!eY?a®¬ ¬®¤a«Y. ˜a® ®§ c Ya, ca® ce ¤®«¦-
e ?®¬Yaa?ai a?¬c®« ?®¤cYa??c ?i ?YaY¤ «i!e¬? ?¤Ya?ae?? a®-
a ¬? c eYF® ¬®¤a«i   i§e?Y  aaY¬!«Ya ,   ?®a®aeY ce a®a?aY
aae« aiai ?§ ‘-?a®Fa ¬¬e. ?¤Ya?ae?? a®ae ˜ a? «i ®!a ! aec –
iaai ? cY, cY¬ ?¤Ya?ae?? a®ae ‘, – ®? a®aa®ia a®«i?® ?§
§ F« cea a?¬c®«®c Y ?¬Yia cY¤aeYF® a?¬c®«  ?®¤cYa??c ?i.

‘?¬c®«e ?®¤cYa??c ?i c ?¤Ya?ae?? a®a a ‘ Y®!i§ aY«ie, ®
?® a¬®«c ?i®? ?®¬Ye iaai ?YaY¤?¬?. ?a ¬®¦® ®a¬Y?ai ?a?
?®¬®e? ?®¬ ¤®© aaa®?? -u-. ?¤ ?®, ?a? ?a?®«i§®c ?? aa –
¤ aaea !?!«?®aY? Turbo C++ ce c a ?®¬ a«ac Y aa®«?YaYai a
?a®!«Y¬ ¬?, ? c ¬ ?a?¤Yaai ?YaY¤Y«ec ai ia? !?!«?®aY??. („«i
ia®F®c ¬ ?® ¤®!?aai ¤aaF®© ?a®¤a?a Turbo C++ – ?aa®¤eY
aY?aae !?!«?®aY? ?a?®«iieY© a?aaY¬e;c ia®¬ a«ac Y §  ¤®?®«-
?aY«i®© ?ae®a¬ ae?Y© ®!a e ©aYai   ae?a¬a Borland).

…a«? ? ?®©-«?!®asm-?®¤ c ?aa®¤®¬ ae ©«Y aae« Yaai   ?¤Ya?-
ae?? a®ae ‘ (¤ eY ?«? aea?ae??), ia? ?¤Ya?ae?? a®ae ¤®«¦e
 c? aiai § ?®¬ ?®¤cYa??c ?i (Ya«? ce Y ?a?®«i§aYaY ®¤?
?§ ®??a ea ceeY a?Yae?ae?? a®a®c i§e? ).

Turbo Assembler (TASM) Y ac?aec YaaYF?aaae, ?®a®ae¬?  !a –
e a?¬c®«e ?¤Ya?ae?? a®a®c; ¤aaF?¬? a«®c ¬?,?a?  aaY¬!«?a®-
c ?? ?a®Fa ¬¬e caY ?¤Ya?ae?? a®ae § ??aec iaai a®«i?® § F-
« ce¬? !a?c ¬?. ??ae?i TASM /mx aaa  c«?c Ya acYa aYF?aaa 
¤«i ®!e?a ? cYe?a ?¬Y. ?®¬?®®ce?? Turbo C++ a ?¦Y § ??-
aec Ya ?¤Ya?ae?? a®ae extern § F« ce¬? !a?c ¬?, ?®ia®¬a aaa
caY ¤®«¦® a !®a ai. ‚  e?a ?a?¬Ya a ?«icYceY a«®c  ? ¤?-
aY?a?ce § ??aec iaai § F« ce¬? !a?c ¬?,   caY ?a®c?Y ?¤Y-
a?ae?? a®ae ? ?®¤e ®?Ya ae?© aaa®ce¬?; ia® a®®acYaaacaYa aa?-
«i ?¬Y c a?a c®c®¬ aa?®c®¤aacY ?® TASM.‚ ¬ ?aY¤®aa c«iYaai
ac®!®¤  «i!ea ?®¬!? ae?© § F« cea ? aaa®cea !a?c c ?¤Ya?-
ae?? a®a a, ?® c eY¬a aa¬®aaY?i.

„«i a®F®, ca®!e ?¤Ya?ae?? a®ae !e«? c?¤?¬e¬? ?§cY  aaY¬!-
«Ya®F® ¬®¤a«i, ce ¤®«¦e ®!eic?ai ?a ? ? PUBLIC.

– 230 –

˜ ?a?¬Ya, Ya«? cea®!?a YaYai  ??a ai ¬®¤a«i a aeY«®c?a«Ye-
¬? aea?ae?i¬? max ? min,   a ?¦Y aeY«®c?a«Ye¬? ?YaY¬Ye¬?
MAXINT, lastmax? lastmin, c ¬ a«Y¤aYa ?®¬Yaa?ai c ?®¤®ce©
aYF¬Ya ®?Ya a®a

PUBLIC _max, _min

? ®?Ya a®ae

PUBLIC _MAXINT, _lastmax, _lastmin
_MAXINT DW 32767
_lastmin DW 0
_lastmax DW 0

c aYF¬Ya ¤ ea.

TASM 2.0

Turbo Assemblrt 2.0 a ae?aiYa a?a ?a?a ¬®F?a ¤?aY?a?c,
?®§c®«ii § ¤ c ai ®?ae?® «ie© a?Yae?ae?? a®a i§e? . ˜ ?a?¬Ya,
Ya«? ce a? ¦YaY ‘ c c eY¬ ¬®¤a«i c ¤?aY?a?cY .MODEL, a® caY
?¬Y  ?¤Ya?ae?? a®a®c !a¤aa § ??aec aiai c ®!eY?ae© ¬®¤a«i
a cY¤ae?¬ a?¬c®«®¬ ?®¤cYa??c ?i. ˜a® aaY¤aac® a ?¦Y¬®¦Ya
a !®a ai   aa®cY ¤?aY?a?c. ˜a? ?®¬®e? a?Yae?ae?? a®a  i§e? C
c Turbo Assembler 2.0 ceeY?a?cY¤YeY ®!eic«Y?i ¬®¦® ?YaY-
??a ai c c?¤Y:

PUBLIC C max, min
PUBLIC C MAXINT, lastmax, lastmin
MAXINT DW 32767
lastmin DW 0
lastmax DW 0

˜®¤F®a®c?  ? ce§®ca Turbo C++ ?§ .ASM

„«i a®F®, ca®!e ¬®¤a«i   i§e?Y  aaY¬!«Ya  ¬®F ®!a e aiai ?
aea?ae?i¬ ? ?YaY¬Ye¬ ?a®Fa ¬¬e   Turbo C++, a«Y¤aYa ?a-
?®«i§®c ai ®?Ya a®a EXTRN.

‘ae«?? ? aea?ae?i¬

„«i a®F®, ca®!e ?¬Yaic®§¬®¦®aai ce§c ai aea?ae?i ‘ ?§ ?®¤?-
a®Fa ¬¬e   i§e?Y  aaY¬!«Ya , ce ¤®«¦e ®!eic?ai YY c  a-
aY¬!«Ya®¬ ¬®¤a«Y c ®?Ya a®aY

EXTRN fname : fdist

F¤Y fname – ia® ?¬i aea?ae??,   fdist – ia® «?!® near, «?!®
far, c § c?a?¬®aa? ®a a®F®, ic«iYaai «? aea?ae?i ‘ near ?«?
far. ˜®ia®¬a c ?®¤®c®¬ aYF¬YaY ¬®¦Ya  a®¤?aiai ®?Ya a®a

EXTRN _myCfunc1:near, _myCfunc2:far

ca® ?®§c®«iYa ce§ec ai myCfunc1 ? myCfunc2 ?§ ?®¤?a®Fa ¬¬  
i§e?Y  aaY¬!«Ya .

TASM 2.0

?a?®«i§ai a?Yae?ae?? a®a i§e? ‘ c Turbo Assembler2.0 ?®a«Y¤?©
®?Ya a®a ¬®¦® ?YaY??a ai ? ?:

EXTRN C mCfunc1:near, myCfunc2:far
‘ae«?? ? ¤ e¬

„«i ®!a eY?i ? ?YaY¬Ye¬ a«Y¤aYa ?®¬Yaa?ai c aYF¬Ya ¤ –
ea a®®acYaaacaie?© ®?Ya a®a(e) EXTRN c ae®a¬ aY:

– 231 –

EXTRN vname : size

F¤Y vname – ia® ?¬i ?YaY¬Y®©,   size a? §ec Ya a §¬Ya ?Y-
aY¬Y®©.

˜ §¬Ya ?YaY¬Y®© ¬®¦Ya !eai a«Y¤aie?¬:

BYTE(1 ! ©a) QWORD(8 ! ©a®c)
WORD(2 ! ©a ) TBYTE(10 ! ©a®c)
DWORD(4 ! ©a )

˜®ia®¬a, Ya«? c‘-?a®Fa ¬¬Y ?¬Yiaai a«Y¤aie?Y F«®! «ieY ?Y-
aY¬YeY:

int i,jarray[10];
char ch;
long result;

a® ¬®¦® a¤Y« ai ?a c?¤?¬e¬? ?§ c eYF® ¬®¤a«i ?a? ?®¬®e?
a«Y¤aieYF® ®?Ya a®a :

EXTRN _i:WORD,_jarray:WORD,_ch:BYTE,_result:DWORD

«?!® ?a? ?®¬®e? a?Yae?ae?? a®a  i§e?  ‘ c Turbo Assembler 2.0
(TASM 2.0):

EXTRN C i:WORD,jarray:WORD,ch:BYTE,result:DWORD

‚ ¦®Y § ¬Yc ?Y !

˜a? ?a?®«i§®c ?? ¬®¤Y«? ? ¬ia? huge ®?Ya a®ae EXTRN ¤®«¦e
 a®¤?aiai cY «i!ea aYF¬Ya®c. ˜a® ®a®a?aai ? ? ? aea?ae?-
i¬,a ? ? ? ?YaY¬Ye¬.

??aY¤Y«Y?Y ?®¤?a®Fa ¬¬   i§e?Y  aaY¬!«Ya 

’Y?Yai, ?®F¤  ce § YaY, ? ?ce?®«?ai ?®¤F®a®c?aY«ieY aaa –
®c??, a aa¬®aa?¬, ? ? ?a ?a?cYa?? ??eYaai aea?ae?i   i§e?Y
 aaY¬!«Ya . ‡¤Yai ?¬YYaai Ya?®«i?® c ¦ea c®?a®a®c: ?YaY¤ –
c  ? a ¬Yaa®c, c®§ca a § cY?©, ? a ?¦Y ?a?®«i§®c ?Y a¦-
ea a®F« eY?© ® aYF?aaa a.

˜aY¤?®«®¦?¬, ca® ce a®a?aY  ??a ai aea?ae?i min, ¤«i ?®a®a®©
?aY¤?®« F Yaai  «?c?Y a®®acYaaacaieYF® ?a®a®a??  ‘:

extern int min(int v1, int v2);

‚e a®a?aY, ca®!e min c®§ca e «  ¬??¬ «i®Y ?§ ¤caa ?YaY¤ –
ea Y© § cY?©. ?!e?© ae®a¬ a min !a¤Ya a«Y¤aie?©:

PUBLIC _min
_min PROC NEAR

_min ENDP

˜ §a¬YYaai, ia® ?aY¤?®« F Ya,ca® min ic«iYaai !«?¦Y© aea?-
ae?Y©; Ya«? !e ia  aea?ae?i !e«  ¤ «iY©, ce !e ?®¤aa c?«?FAR
c¬Yaa® NEAR. ?a¬Ya?¬, ca® ¬e ¤®! c?«? ?YaY¤min a?¬c®« ?®¤-
cYa??c ?i, !« F®¤ ai cY¬a ?®¬?®®ce?? Turbo C++ ¬®¦Ya ?a –
c?«i® a §aYe?ai aae«??. …a«? !e ¬e ?a?®«i§®c «? c ®?Ya a®aY
PUBLIC a?Yae?ae?? a®a i§e?  ‘ Turbo Assembler 2.0,  aaY¬!«Ya
?®§ !®a?«ai !e ®! ia®¬ a ¬.

˜YaY¤ c  ? a ¬Yaa®c

˜aY¦¤Y caYF®, ce ¤®«¦e aYe?ai, ? ?®Y a®F« eY?Y® ?YaY¤ cY

– 232 –
? a ¬Yaa®c ?a?®«i§®c ai; ?a? ®aaaaaac?? ¤Y?c a®© ?a?c?e
?§!YF ©aY a®F« eY?i ® ?YaY¤ cY ? a ¬Yaa®c ˜ a? «i, a®F« eY-
?Y ‘ ic«iYaai ?aY¤?®ca?aY«ie¬. ˜a® ®§ c Ya, ca® ?®F¤  min
ce§c  , aaY? !a¤Ya ceF«i¤Yai a«Y¤aie?¬ ®!a §®¬:

sp + 04: v2
sp + 02: v1
sp:  ¤aYa c®§ca a 

‚ ¬ aaY!aYaai ?®«ac?ai ¤®aaa? ? ? a ¬Yaa ¬, Y ce?®«ii ai-
a?Y a® aaY? , ?®ia®¬a c ¬ a«Y¤aYa a®aa ?ai a? § aY«i ! §e
(BP), ?YaYa« ai a? § aY«i aaY?  (SP) c a? § aY«i ! §e,   § –
aY¬ ?a?®«i§®c ai ?®a«Y¤?© ¤«i ?ai¬®© ?¤Y?a ae?? aaY? , ca®
?®§c®«?a ?®«ac?ai Y®!a®¤?¬eY § cY?i. ?a¬Ya?¬, ca® ?a? ?®-
¬YeY?? BP c aaY? ®a®a?aY«ieY a¬YeY?i ? a ¬Yaa®c acY«?-
c aai   2, ?®a?®«i?a aaY? aY?Yai acY«?c?aai   ¤c .

TASM 2.0

Turbo Assembler 2.0 ®!Ya?Yc?c Ya ?a®aa®© a?®a®! ®!a eY?i ?
? a ¬Yaa ¬ aea?ae?? ? a !®ae a® aaY?®¬. ˜a®ca?aY a«Y¤aieYY;
¤«i c a c ¦® ?®iai, ? ? a !®a Ya  ¤aYa ae?i aaY? .

?!a !®a?  § cY?© c®§ca a 

‚ e  aea?ae?i c®§ca e Ya aeY«®c?a«Y®Y § cY?Y; ?a¤  ¦Y ®®
?®¬Ye Yaai? „«i 16-!?a®cea (2-! ©a®cea) § cY?© (char,
short, int, enum ?!«?¦?a a? § aY«Y©) ?a?®«i§aYaai aYF?aaa
AX; ¤«i 32-!?a®cea (4-! ©a®cea) § cY?© (c?«ic i a? § aY«?
far ? huge) ?a?®«i§aYaai a ?¦Y aYF?aaa DX, ?a?cY¬ aa aeYY
a«®c® (c a«ac Y a? § aY«Y© ia®  ¤aYa aYF¬Ya ) ?®¬Ye Yaai c
DX,   ¬« ¤eYY a«®c® ?®¬Ye Yaai c AX.

‡ cY?ia??  float, double ? long double c®§ca e iaai cYaY§
aYF?aaa “cYae?e aaY? ” (TOS), ST(0); Ya«? ?a?®«i§aYaai i¬a-
«ia®a 80×87, a® § cY?Y c®§ca e Yaai cYaY§ aYF?aaa TOS i¬a-
«ia®a . ‚e§ec ie i aea?ae?i ¤®«¦  a?®??a®c ai ia® § cY?Y-
aa¤ , ?a¤  aaY!aYaai.

‘aaa?aaae ¤«?®© c 1 ! ©a c®§ca e iaai cYaY§ AL. ‘aaa?aaae
¤«?®© c 2 ! ©a  c®§ca e iaai cYaY§ AX. ‘aaa?aaae ¤«?®© 4
! ©a  c®§ca e iaai cYaY§ DX:AX. „«i c®§ca a  aaaa?aaa, ?¬Yi-
e?a a §¬Ya 3 ! ©a  ?«? !®«YY 5 ! ©a®c, ®??®¬Ye iaai c ®!-
« aaiaa a?cYa??a ¤ ea ? § aY¬ c®§ca e Yaai a? § aY«i   ?a
 ¤aYa (cYaY§ AX ¤«i ¬®¤Y«Y© ¤ ea small ? cYaY§ DX:AX ¤«i
¬®¤Y«Y© ¤ ea large). ce§ec Y¬ i ?®¤?a®Fa ¬¬  ¤®«¦  a?®??-
a®c ai § cY?Y c®§ca a  ?®  ¤aYaa, § ¤ c Y¬®¬a a? § aY«Y¬.

‚ ?a?¬YaY a aea?ae?Y© min ce?¬YYaY¤Y«® a 16-!?a®ce¬ § cY?-
Y¬, ?®ia®¬a ®acYa ¬®¦® ?®¬Yaa?ai Y?®aaY¤aacY® c AX.

’ ? !a¤Ya ceF«i¤Yai ia®a ?®¤ aY?Yai:

PUBLIC _min
_min PROC NEAR
push bp;§ ??a ai bp c aaY?
mov bp,sp;a?®??a®c ai sp c bp
mov ax,[bp+4];?YaYa« ai v1 c ax
cmp ax,[bp+6];aa c?ai a v2
jle exit ;Ya«? v1 > v2
mov ax,[bp+6];a® § Faa§?ai v2 c ax
exit: pop bp;c®aaa ®c?ai bp
ret;? ce?®«?ai c®§ca a c ‘
_min ENDP

– 233 –
—a®, Ya«? ce ®!eic?aYmin ? ? ¤ «iii (far) aea?ae?i – ca® ?§-
¬Y?aai c aY§a«ia aY ia®F®? ?« c®Y®a«?c?Y !a¤Yaa®aa®iai c
a®¬, ca® aaY?   ca®¤Y c ?®¤?a®Fa ¬¬a !a¤Ya ceF«i¤Yai a«Y¤a-
ie?¬ ®!a §®¬:

sp + 06: v2
sp + 04: v1
sp + 02: aYF¬Ya c®§ca a 
sp: a¬YeY?Y c®§ca a 

˜a® ®§ c Ya, ca® a¬YeY?i caaY? acY«?c?«?ai   ¤c , ?®a-
?®«i?a aY?Yai c aaY??®¬Ye Yaai ¤®?®«?aY«i® 2 ! ©a  (a®¤Ya-
¦ e?Y aYF¬Ya c®§ca a ). ‚Yaa?i min c a«ac Y far ceF«i¤?a
a«Y¤aie?¬ ®!a §®¬:

PUBLIC _min
_min PROC FAR
push bp;§ ??a ai bp c aaY?
mov bp,sp;a?®??a®c ai sp c bp
mov ax,[bp+6];?YaYa« ai v1 c ax
cmp ax,[bp+8];aa c?ai a v2
jle exit ;Ya«? v1 > v2
mov ax,[bp+6];a® § Faa§?ai v2 c ax
exit: pop bp;c®aaa ®c?ai bp
ret;? ce?®«?ai c®§ca a c ‘
_min ENDP

?a¬Ya?¬,ca® caY a¬YeY?i ¤«i v1 ? v2 acY«?c?«?ai   2, ca®
®aa ¦ Ya ¤®?®«?aY«i® ?®¬YeYeY c aaY? ¤c  ! ©a .

—a® !a¤Ya, Ya«? ce aYe?aY ?a?®«i§®c ai ?®a«Y¤®c aY«i®aai
?YaY¤ c? ? a ¬Yaa®c ˜ a? «i?

˜a? ca®¤Y c e aaY? !a¤Ya ceF«i¤Yai aY?Yai a«Y¤aie?¬ ®!a §®¬
(?aY¤?®« F i a®c , ca® min ic«iYaai NEAR aea?ae?Y©):

SP + 04: v1
SP + 02: v2
SP:  ¤aYa c®§ca a 

?a®¬Y a®F®, c ¬ ?a?¤Yaaia®!«i¤ ai a®F« eY?i ˜ a? «i¤«i
?¤Ya?ae?? a®a  min: ® ¤®«¦Y !eai § ??a  § F« ce¬? !a?c –
¬? ? Y ?¬Yai a?¬c®«  ?®¤cYa??c ?i c  c «Y.

˜®¬?¬® a®F®, ca® ¤®«¦e ?®¬Yiaiai ¬Yaa ¬? v1 ? v2, ia® a®F-
« eY?Y a ?¦Y ?®¤a §a¬Yc Ya, ca® min ¤®«¦  ®c?e ai aaY??a?
cea®¤Y, § ¤ c i c ?®¬ ¤Y RET c?a«® ! ©a®c, ?®a®aeY ¤®«¦e
a?¬ aiai a® aaY? . ‚ ¤ ®¬ a«ac Y aaY!aYaaiaiai a® aaY? 
4 ¤®?®«?aY«iea ! ©a ¤«i v1 ? v2 ( ¤aYa c®§ca a  a?¬ Yaai
a® aaY?   ca®¬ a?cYa?? ?®¬ ¤®© RET).

‚®a ? ? !a¤Ya ceF«i¤Yai ¬®¤?ae?ae?a®c  i ?®¤?a®Fa ¬¬ :

PUBLIC MIN
MIN PROC NEAR ;cYaa?i a a®F« eY?i¬? ˜ a? «i
push bp;§ ??a ai bp c aaY?
mov bp,sp;a?®??a®c ai sp c bp
mov ax,[bp+6];?YaYa« ai v1 c ax
cmp ax,[bp+4];aa c?ai a v2
jle exit ;Ya«? v1 > v2
mov ax,[bp+4];a® § Faa§?ai v2 c ax
exit: pop bp;c®aaa ®c?ai bp
ret 4;®c?aa?ai aaY? ? ce?®«?ai
;c®§ca a c ‘
MIN ENDP

˜a?cY¤Y¬ ?®a«Y¤?© ?a?¬Ya a®F®,?®cY¬a¬®¦Ya ?® ¤®!?aiai ?a-

– 234 –
?®«i§®c ?Y ?®a«Y¤®c aY«i®aai?YaY¤ c? ? a ¬Yaa®c ‘. ˜aY¤?®-
«®¦?¬, ce ?YaY®?aY¤Y«?«? min a«Y¤aie?¬ ®!a §®¬:

int min (int count,…);

’Y?Yai min ¬®¦Ya ?a??¬ ai «i!®Y c?a«® aeY«®c?a«Yea ? a –
¬Yaa®c, c®§ca e i ¬??¬ «ie© ?§ ?a. ?¤ ?®, ?®a?®«i?a min
Y ¬®¦Ya ca®¬ a?cYa?? ®?aY¤Y«?ai c?a«® ?YaY¤ c Y¬ea Y© ? a –
¬Yaa®c, ¬®¦® a¤Y« ai ?Yace© ?YaY¤ c Y¬e© ? a ¬Yaa acYac??®¬
, ?®a®ae© !a¤Yaa? §ec ai c?a«® a«Y¤aie?a §  ?¬ ? a ¬Yaa®c.
˜ ?a?¬Ya, ce ¬®¦YaY ?a?®«i§®c ai aea?ae?i a«Y¤aie?¬ ®!a §®¬:

i = min(5, j, limit, indx, lcount, 0);

?aY¤?®« F i, ca® i, j, limit, indx ? lcount ?¬Yia a?? int
(?«? «i!®© a®c¬Yaa?¬e© a ?¬ a??). ‘aY? ?®a«Y ca®¤  c ?®¤?-
a®Fa ¬¬a !a¤Ya ?¬Yai c?¤:

sp + 08: (? a.¤.)
sp + 06: v2
sp + 04: v1
sp + 02: count
sp:  ¤aYa c®§ca a 

?®¤?ae?ae?a®c  i cYaa?i min !a¤Ya ?¬Yai aY?Yai c?¤:

PUBLIC MIN
_min PROC NEAR
push bp;§ ??a ai bp c aaY?
mov bp,sp;a?®??a®c ai sp c bp
mov cx,[bp+4];?YaYa« ai count c cx
cmp cx,0 ;aa c?ai a 0
jle exit ;Ya«? = 2, a® min ce?®«iYa ?®a«Y¤®c aY«i®aai aa c-
Y?© ¤® ?®a«Y¤YF® ?YaY¤ ®F® Y© c a??a?Y § cY?i.

’Y?Yai, ?®F¤  ce ?®?¬ YaY, ? ? a¦® ¬ ??a«?a®c ai
aaY?®¬ ? a¬YYaY ??a ai ac®? a®!aacYeY aea?ae??,ce ¬®¦YaY
®aeY?ai Y?®a®aeY ®ceY a ae?aY?i cYaa?? Turbo Assembler
2.0. ˜Y?®a®aeY ?§ ?a ?®§c®«iia c ¬  ca®¬ a?cYa?? a®§¤ c ai
?¬Y  ?YaY¬Yea, aaa  c«?c ai ? ®c?e ai aaY? ?§ PROC,  
a ?¦Y «YF?® ce?®«iai ¤®aaa? ? ? a ¬Yaa ¬, ?a?®«i§ai ?a?
ia®¬ a®F« eY?i a®F® i§e? ,   ?®a®a®¬  ??a   ce§ec ie i
?a®aeY¤aa .

‘ acYa®¬ia?a a ae?aY?© ?Yac i cYaa?i min (  aaa.257
®a?F? « ) ¬®¦Ya !eai ?YaY??a   a«Y¤aie?¬ ®!a §®¬:

– 235 –

PUBLIC C MIN
min PROC C NEAR v1: WORD, v2: WORD
mov ax,v1
cmp ax,v2
jle exit
mov ax,v2
exit: ret
min ENDP

‚Yaa?i a a®F« eY?i¬? ˜ a? «i (aaa.259 ®a?F? « ) ¬®¦Ya
!eai ?YaY??a   c c?¤Y:

PUBLIC PASCAL MIN
min PROC PASCAL NEAR v1: WORD, v2: WORD
mov ax,v1
cmp ax,v2
jle exit
mov ax,v2
exit: ret
min ENDP

?a¬Ya?¬, ca® ?®¤ c ®!®?a a«ac ia ®a«?c Yaai a®«i?® ?«i-
cYce¬ a«®c®¬ PASCAL c¬Yaa® ‘,   c ®aa «iea ® ?¤Ya?cY.
?¤ ?®, ?®¤, ae ?a?cYa?? FYYa?aaY¬e©  aaY¬!«Ya®¬, a®®acYaa-
acaYa ?aa®¤e¬ ?a?¬Ya ¬. ˜®«®Y ®??a ?Y ia?a ®cea aaY¤aac,
ac?aec ie?a ?®?aYaeY i§e?? ?a? a¬Ye ®¬?a®Fa ¬¬?a®c ??,
a¬. c aa?®c®¤aac a ?® Turbo Assembler.

? ? ? ®!eceY ?a®aeY¤aae ? aea?ae?? ‘, ?®¤?a®Fa ¬¬e  
i§e?Y  aaY¬!«Ya  a??  external ¤®«¦e a®!«i¤ ai ®?aY¤Y«YeY
?a c?«  ?a®Fa ¬¬?a®c ?i, ca®!e a ?¬? ¬®F«  ?a c?«i® a !®-
a ai ?a®Fa ¬¬  a?a c«Y?i ®cYa«Yi¬?.

…a«? ?®¤?a®Fa ¬¬    i§e?Y  aaY¬!«Ya  ce?®«iYa ce§®c
«i!®© ®cYa«Y©®© ?a®aeY¤aae ?«? aea?ae??, a® ia  ?®¤?a®Fa ¬¬ 
¤®«¦  !eai ¤ «iY© (far) ? aaa  c«?c ai aaY?®ce© aeaY©¬,
?a?®«i§ai ¤«i ia®F® aYF?aaa BP. ˜®«YY ?®¤a®!ai ?ae®a¬ ae?i
a¬.   aaa.217 ®a?F? « .

‘®F« eY?i ® aYF?aaa a

‚ min !e«® ?a?®«i§®c ® Ya?®«i?® aYF?aaa®c (BP, SP,
AX,BX, CX); !e«® «? ia® ?a?®«i§®c ?Y !Y§®? ae¬? ? ? ®!aa®-
?a ¤Y«® a aYF?aaa ¬?, ?®a®aeY ¬®¦Ya ?a?®«i§®c ai c e  ?a®F-
a ¬¬    Turbo C++?

?? §ec Yaai, ¤  i aea?ae?i !e«   ??a   cYa®. ?§®
caYa ?a?®«i§aY¬ea c Y© aYF?aaa®c Y¤?aacYe© aYF?aaa, ®?®-
a®a®¬ ce ¤®«¦e !e«? a?Yae? «i® ?®§ !®a?aiai, ia® BP, ? ?a?
ca®¤Y c aea?ae?i ce a®aa i«? YF® c aaY?Y, c®aaa  c«?c i § –
aY¬ ?a? cea®¤Y.

„c  ®aa «iea aYF?aaa ,   ?®a®aeY a ?¦Y a«Y¤aYa ®!a –
e ai c?¬ ?Y, ia® SI ? DI; Turbo C++ ?a?®«i§aYa ia? ¤c  aY-
F?aaa ¤«i «i!eaaYF?aaa®cea ?YaY¬Yea. …a«?ce ?a?®«i§aYaY ?a
c c eY©  aaY¬!«Ya®© ?®¤?a®Fa ¬¬Y, a® ?a? ca®¤Y c YY a«Y¤a-
Ya a®aa ?ai ia? aYF?aaae(c®§¬®¦®, c aaY?Y),? § aY¬ c®aaa –
®c?ai ?a ?a? cea®¤Y. ?¤ ?®, ?a? ?®¬??«iae?? ?a®Fa ¬¬e Turbo
C++ a®?ae?Y©-r(?«? ?a? ce?«icY®© ®?ae??Register Variables
¤? «®F®c®F® ?®«i Code Generation) ce ¬®¦YaY Y !Ya?®?®?aiai
® a®aa Y?? SI ? DI.

˜a?¬Yc ?Y

˜a? ?a?®«i§®c ?? ®?ae?? -r- a«Y¤aYa ?a??¬ ai ¬Yae ?aY-
¤®aa®a®¦®aa?. ‘¬. ?« ca4, “?®¬??«ia®a ?®¬ ¤®© aaa®??” c

– 236 –
˜a?®c®¤aacY ?®«i§®c aY«i, F¤Y ¤  i ®?ae?i ®??a   ?®¤a®!®.

˜YF?aaae CS, DS, SS ? ES?a??¬ ia ?®?aYaeY § cY?i,
c § c?a?¬®aa? ®a ?a?®«i§aY¬®©¬®¤Y«?? ¬ia?. ˜?¦Y ?a?c®¤?aai
ia  c§ ?¬®§ c?a?¬®aai:

Tiny CS = DS = SS
ES = a !®c?©

Small, Medium CS != DS, DS = SS
ES = a !®c?©

Compact, Large CS != DS != SS
ES = a !®c?©
(®¤? CS   ¬®¤a«i)

Huge CS != DS != SS
ES = a !®c?©
(®¤? CS ? ®¤? DS   ¬®¤a«i)

‚e ¬®¦YaY aaa ®c?ai DS Y a ce¬ SS ¤«i ¬®¤Y«Y© tiny,
small ? medium, § ¤ c i ®?ae?? ?®¬??«ia®a  ?®¬ ¤®© aaa®?? –
mtl, -msl ? -mml. ‘¬. ?« ca 4, “?®¬??«ia®a ?®¬ ¤®© aaa®-
??” c ˜a?®c®¤aacY ?®«i§®c aY«i, F¤Y ia? ®?ae?? ®??a e ?®¤-
a®!®.

TASM 2.0

Turbo Assembler2.0 ?®§c®«iYa§ ¤ c ai ia® (DS != SS) ?a?
?a?®«i§®c ?? a?a®eYea aYF¬Yaea ¤?aY?a?c ? ¬®¤?ae?? a®a 
¬®¤Y«? c ¤?aY?a?cY .MODEL.

‚e§®c aea?ae?© ‘ ?§ ¬®¤a«Y© .ASM

‚e ¬®¦YaY ?®aaa??ai? a«Y¤aie?¬®!a §®¬: ce§ec ai ?®¤?-
a®Fa ¬¬e   ‘ ?§ ¬®¤a«Y©   i§e?Y  aaY¬!«Ya . ˜aY¦¤Y caYF®,
¤«i ia®F® ce ¤®«¦e a¤Y« ai aea?ae?i ‘ c?¤?¬®© ¤«i ¬®¤a«i  
i§e?Y  aaY¬!«Ya . ?e a¦Y ?a a?® a aa¬ aa?c «?, ? ? ia® ¤Y« –
Yaai: aea?ae?i ¤®«¦  !eai ®!eic«Y  ? ? EXTRN ? ?¬Yai ¬®¤?-
ae?? a®a «?!® near, «?!® far. ˜ ?a?¬Ya, ce  ??a «? a«Y¤aieai
aea?ae?i ‘:

long docalc(int *fact1, int fact2, int fact3);

„«i ?a®aa®ae ?aY¤?®«®¦?¬, ca® docalc ic«iYaai aea?ae?Y©
‘ (  Y ˜ a? «i).˜aY¤?®« F i, ca® ¤  i aea?ae?i ?a?®«i§aYa
¬®¤Y«i ? ¬ia? tiny, small ?«? compact, a«Y¤aYa a¤Y« ai a®®a-
cYaaacaieYY ®!eic«Y?Y c c eY¬  aaY¬!«Ya®¬ ¬®¤a«Y:

EXTRN _docalc:near

? «®F?ce¬ ®!a §®¬, Ya«? aea?ae?i ?a?®«i§aYa ¬®¤Y«? ? –
¬ia? medium, large ?«? huge, a® ® ¤®«¦  ?¬Yai ®!eic«Y?Y
_docalc:far.

TASM 2.0

?a?®«i§ai c Turbo Assembler 2.0 a?Yae?ae?? a®a i§e?  ‘,
ia? ®!eic«Y?i ¬®¦® ?YaY??a ai c c?¤Y

EXTRN C docalc:near

?

EXTRN C docalc:far

docalc ¤®«¦  ce§ec aiai a aaY¬i ? a ¬Yaa ¬?:

– 237 –

–  ¤aYa®¬ ? ¬ia? a ?¬YY¬ xval

– § cY?Y¬, aa ?¬e¬ c  ¤aYaY ? ¬ia? a ?¬YY¬ imax

– aaYai?¬ § cY?Y¬ – ?®aa a®© 421 (¤Yaia?c®©)

˜aY¤?®«®¦?¬ a ?¦Y, ca® ce a®!?a YaYai a®aa ?ai aY§a«i-
a a c 32-!?a®c®¬  ¤aYaY ? ¬ia? a?¬YY¬ ans. ˜?c?c «Yae©
ce§®c c ‘ ?¬YYa c?¤:

ans = docalc(&xval,imax,421);

‘ c «  ce ¤®«¦e ?®¬Yaa?ai c aaY? ?®aa aa 421, § aY¬
imax ?  ?®Yae,  ¤aYa xval, ?®a«Y cYF® ce§c ai docalc. ˜®a«Y
c®§ca a  ce ¤®«¦e ®c?aa?ai aaY?, c ?®a®a®¬ !a¤Ya  a®¤?aiai
«?e?a eYaai ! ©a®c,   ?®a®¬ ?YaYa« ai ®acYa ?®  ¤aYaa ans ?
ans+2.

?®¤ !a¤Ya ?¬Yai a«Y¤aie?© c?¤:

mov ax,421 ;c§iai 421 ? ?®¬Yaa?ai c aaY?
push ax
push imax ;c§iai imax ? ?®¬Yaa?ai c aaY?
lea ax,xval ;c§iai &xval ? ?®¬Yaa?ai c aaY?
push ax
call _docalc ;ce§c ai docalc
add sp,6 ;®c?aa?ai aaY?
mov ans,ax ;?YaYa« ai c ans 32-!?a®ce© aY§a«ia a
mov ans+2,dx ;c?«ic i aa aeYY a«®c®

TASM 2.0

Turbo Assembler cYaa?? 2.0 c?«ic Ya c aY!i Ya?®«i?®
a ae?aY?©, ?®a®aeY a?a®e ia ?aYaaeY©a ¬Y¦¤a ¬®¤a«i¬?   ‘ ?
  i§e?Y  aaY¬!«Ya . ˜Y?®a®aeY ?§ia?a a ae?aY?© ?®§c®«iia
 ca®¬ a?cYa?? a®§¤ c ai ?¬Y  c aa?«Y, ac®©aacY®¬ ‘, ?®¬Y-
e ai ? a ¬Yaae c aaY? ca®© ?®a«Y¤®c aY«i®aa?, ca® ?a?ia  c
‘, ? ®c?e ai aaY? ?®a«Y ce§®c  aea?ae??  ‘. ˜ ?a?¬Ya, ?®¤?-
a®Fa ¬¬a docalc ¬®¦® ?YaY??a ai c c?¤Y:

EXTRN C docalc:near

mov bx,421
lea ax,xval
calc docalc C ax,imax,bx
mov ans,ax
mov ans+2,dx

˜®«®Y ®??a ?Yia?a ®cea aaY¤aac a¬. c aa?®c®¤aac a ?®
Turbo Assembler 2.0.

? ? !eai, Ya«?docalc?a?®«i§aYa a®F« eY?Y® ?YaY¤ cY ? –
a ¬Yaa®c ˜ a? «i? ‚ ia®¬ a«ac Y c ¬a¦® ?§¬Y?ai   ?a®a?-
c®?®«®¦e© ?®ai¤®? ?YaY¤ c? ? a ¬Yaa®c ? Y ce?®«iai ®c?aa-
?a aaY?  ?®a«Y c®§ca a , ?®a?®«i?a ?®¤?a®Fa ¬¬  a¤Y« Ya ia®
§ c a a ¬ .?a®¬Y a®F®, ?¬i docalc ¤®«¦® !eai § ??a ® c ?a-
a®¤®¬  aaY¬!«Ya®¬ ?®¤Y ?® ?a c?« ¬ ˜ a? «i (a.Y. § F« ce-
¬? !a?c ¬? ? !Y§ cY¤aeYF® a?¬c®«  ?®¤cYa??c ?i).

??Ya a®a EXTRN !a¤Ya ?¬Yai a«Y¤aie?© c?¤:

EXTRN DOCALC:near

  a ¬ ?®¤, ce§ec ie?© docalc:

lea ax,xval ;c§iai &xval ? ?®¬Yaa?ai c aaY?

– 238 –
push ax
push imax ;c§iai imax ? ?®¬Yaa?ai c aaY?
mov ax,421 ;c§iai 421 ? ?®¬Yaa?ai c aaY?
push ax
call DOCALC ;ce§c ai docalc
mov ans,ax ;?YaYa« ai c ans 32-!?a®ce© aY§a«ia a
mov ans+2,dx ;c?«ic i aa aeYY a«®c®

Turbo Assembler cYaa?? 2.0 c?«ic Ya c aY!i Ya?®«i?®
a ae?aY?©, ?®a®aeYa?a®e ia ?aYaaeY©a ¬Y¦¤a ¬®¤a«i¬? a a®F-
« eY?i¬? ˜ a? «i ?   i§e?Y  aaY¬!«Ya , c?«ic i  ca®¬ a?-
cYa?®Y a®§¤ ?Y ?¬Y c aa?«Y, ac®©aacY®¬ ˜ a? «i, ? ?®¬Y-
eY?Y ? a ¬Yaa®c c aaY? c a®© ?®a«Y¤®c aY«i®aa?, ca®
?a?ia  c ˜ a? «Y. ˜ ?a?¬Ya, ?®¤?a®Fa ¬¬a docalc ¬®¦® ?YaY-
??a ai c c?¤Y:

EXTRN PASCAL docalc:near

lea ax,xval
mov bx,421
calc docalc PASCAL ax,imax,bx
mov ans,ax
mov ans+2,dx

˜a® caY, ca® c ¬ Y®!a®¤?¬® § ai ¤«i ®aF ?§ ae?? ?-
aYaaeY©a  ¬Y¦¤a  aaY¬!«Yae¬? ¬®¤a«i¬? ? ¬®¤a«i¬? Turbo C++.

– 239 –
˜aYc¤®?YaY¬YeY, caaa ?c Y¬eY  aaY¬!«YaeY ?®¤e ?
aea?ae?? ?aYaec ?i

? ? !eai c a®¬ a«ac Y, Ya«? c ¬ aaY!aYaai ce?®«?ai ? –
??Y-«?!® ®?Ya ae?? ?¦YF® aa®ci, ® ?a? ia®¬ ce Y a®a?aY
aci§ec aiai a a®§¤ ?Y¬ ®a¤Y«i®F®¬®¤a«i   i§e?a  aaY¬!«Y-
a ? Turbo C++ ¤ Ya c ¬ ®acYa   ¤ e© c®?a®a – ¤ ¦Y aa? ®a-
cYa ,   ?¬Y®: ?aYc¤®?YaY¬YeY, caaa ?c Y¬eY  aaY¬!«YaeY
?®¤e ? aea?ae?? ?aYaec ?i. ?aa ce iai c aai F« ce?®acieY 
a aa¬®aaY?i ia?a a?®a®!®c a !®ae.
˜aYc¤®?YaY¬YeY

˜«®? aeYaa «i®F® ?a®aeYaa®a  c eY© a?aaY¬e (8088?«?
80a86) ?¬YYa Ya?®«i?® aYF?aaa®c,?«? a?Yae? «iea ®!« aaY©
? ¬ia?, ?a?®«i§aY¬ea ¤«i ¬ ??a«?a®c ?i § cY?i¬?. ? ¦¤e©
aYF?aaa ?¬YYa ¤«?a16 !?a®c (2 ! ©a ); !®«ie?aac® ?§ ?a
?¬YYa a?Yae? «i®Y  § cY?Y,   Y?®a®aeY a ?¦Y ¬®Faa !eai
?a?®«i§®c ec ? cYaacY aYF?aaa®c ®!eYF®  § cY?i. ‘¬. a §-
¤Y« “?®¤Y«? ? ¬ia?”   aaa.187 ®a?F? «  ?« ce 4, F¤Y aY-
F?aaae aeYaa «i®F® ?a®aeYaa®a  ®??a e !®«YY ?®¤a®!®.

?®F¤  ?a? ?a®Fa ¬¬?a®c ??   ?¦Y¬ aa®cY c ¬ ¬®¦Ya
?® ¤®!?aiai ¤®aaa? ?§ ?a®Fa ¬¬e   ‘ Y?®aaY¤aacY® ? ia?¬
aYF?aaa ¬.

– ‚ ¬ ¬®¦Ya ?®aaY!®c aiai § Faa§?ai aa¤  ? ??Y-«?!®
§ cY?i ?YaY¤ ce§®c®¬ a?aaY¬ea ?®¤?a®Fa ¬¬.

– ‚ ¬ ¬®¦Ya ?® ¤®!?aiai a§ ai, ? ??Y § cY?i a®¤Ya-
¦ aai a ¬ c aY?ae?© ¬®¬Ya.

˜ ?a?¬Ya, ce ¬®¦YaY ce§c ai ?®?aYaeY ?®¤?a®Fa ¬¬e ?§-
˜‡“ c eYF® ?®¬?iiaYa , ce?®«?c ¤«i ia®F® ?®¬ ¤a INT (?aY-
aec ?i), ® a c «  c ¬ aaY!aYaai ?®¬Yaa?ai c ?®?aYaeY
aYF?aaae ®?aY¤Y«Yai ?ae®a¬ ae?i:

void reaches(unsigned char page, unsigned char *ch,
unsigned char *attr);
(*
_AH = 8; /* ‘«a¦Y!e© ?®¤: c?a Ya a?¬c®«,  aa?!aa*/
_BH = page; /* ‡ ¤ Ya aaa ?aea ¤?a?«Yi */
geninterrupt(0x10); /* ‚e§®c ?aYaec ?i INT 10h */
*ch = _AL; /* ˜a?Y¬ ASCII-?®¤  ac?a ®F® a?¬c®«  */
*attr = _AH /* ˜a?Y¬  aa?!aa  ac?a ®F® a?¬c®«  */
*)

? ? ce¬®¦YaYc?¤Yai, ?®¤?a®Fa ¬¬Y INT 10h ?YaY¤ Yaai
a«a¦Y!e© ?®¤ ? ®¬Ya aaa ?aee; c®§ca e Y¬eY § cY?i ?®??-
aaiaai c ch ? attr.

Turbo C++ ®!Ya?Yc?c Ya®cYi ?a®aa®©a?®a®!¤®aaa?  ? aY-
F?aaa ¬ cYaY§ ?aYc¤®?YaY¬YeY. ˜aYc¤®?YaY¬Y i – ia® ?a®a-
a®© ?¤Ya?ae?? a®a, a®®acYaaacaie?© ¤ ®¬a aYF?aaaa.
?a?®«i§®c ai YY ¬®¦®a ??¬ ¦Y ®!a §®¬, ? ? Ya«? !e ia® !e« 
®!ec i ?YaY¬Y i a??  unsigned int ?«? unsigned char.

˜?¦Y ?a?c®¤iaai aY?®¬Y¤ ae?? ?® !Y§®? a®¬a ?a?®«i§®c –
?i ?aYc¤®?YaY¬Yea:

– ˜a?ac®Y?Y ¬Y¦¤a ?aYc¤®?YaY¬Ye¬? ? ®!ece¬? ?YaY-
¬Ye¬? Y ce§ec Ya ?§¬YY?i ?a®c?a aYF?aaa®c, Ya«? Y ce-
?®«iiaai ?aY®!a §®c ?i a?? .

– ˜a?ac®Y?Y ?aYc¤®?YaY¬Ye¬ ?®aa a a ?¦Y Y cY¤Ya ?
a §aaeY?i ¤ ea c ?a®c?a aYF?aaa a, §  ?a?«icY?Y¬ ?a?ac®-
Y?© aYF¬Yae¬ aYF?aaa ¬ (_CS,_DS,_SS,_ES), ?®a®aeY ?a?®«i-
§aia aYF?aaa _AX.

– 240 –
– ˜a®aa®Y ®!a eY?Y ?® aae«?Y cYaY§ ?YaY¬Yai a?? 
a? § aY«i ®!ec® c«YcYa a §aaeY?Y ¤ ea c ®¤®¬ ?§ a«Y¤ai-
e?a aYF?aaa®c: _BX, _SI ?«? _DI,   a ?¦Y, c®§¬®¦®, _ES.

– …a«? c ¬ aaY!aYaai ce?®«?ai aaa ®c?a Ya?®«i??a aY-
F?aaa®c ( ?a?¬Ya, ?a? ®!a eY?? ? ˜‡“-aY§?¤Yae¬ ?®¤?a®F-
a ¬¬ ¬), !Y§®? aYY ?a?®«i§®c ai _AX ?®a«Y¤?¬, ?®a?®«i?a
¤aaF?Y ®?Ya a®ae ¬®Faa ?a?cYaa? ? a«ac ©®¬a YF® ?§¬YY?i.

‚ a«Y¤aieY© a !«?aeY ?a?cY¤Y ?®«e© a??a®? ?aYc¤®?YaY-
¬Yea, ¤®aaa?ea ¤«i ?a?®«i§®c ?i, ?a a??e, aYF?aaae, ?®-
a®ae¬®? a®®acYaaacaia ? ®!ec®Y  § cY?Y ?a ?a?®«i§®c –
?i.

˜aYc¤®?YaY¬YeY ’ !«?ae  6.3
———————————————————-
˜aYc¤®-
?YaY¬Y i ’?? ˜YF?aaa ˜ § cY?Y
———————————————————-
_AX unsigned int AX ?!eYF®  § cY?i/aa¬¬ a®a
_AL unsigned char AL ?« ¤e?© ! ©a AX
_AH unsigned char AH ‘a ae?© ! ©a AX

_BX unsigned int BX ?!eYF®  § cY?i/?¤Y?ae©
_BL unsigned char BL ?« ¤e?© ! ©a BX
_BH unsigned char BH ‘a ae?© ! ©a BX

_CX unsigned int CX ?!eYF®  §./acYac?? ae??«®c
_CL unsigned char CL ?« ¤e?© ! ©a CX
_CH unsigned char CH ‘a ae?© ! ©a CX

_DX unsigned int DX ?!eYF®  §./aa Y?Y ¤ ea
_DL unsigned char DL ?« ¤e?© ! ©a DX
_DH unsigned char DH ‘a ae?© ! ©a DX

_CS unsigned int CS ?¤aYa ?®¤®c®F® aYF¬Ya 
_DS unsigned int DS ?¤aYa aYF¬Ya  ¤ ea
_SS unsigned int SS ?¤aYa aaY?®c®F® aYF¬Ya 
_ES unsigned int ES ?¤aYa ca?®¬®F a. aYF¬Ya 

_SP unsigned int SP “? § aY«i aaY?  (a¬YeY?Y c SS)
_BP unsigned int BP “? § aY«i ! §e (a¬YeY?Y c SS)
_DI unsigned int DI ?a?®«i§aYaai ¤«i aYF?aaa®cea
?YaY¬Yea
_SI unsigned int SI ?a?®«i§aYaai ¤«i aYF?aaa®cea
?YaY¬Yea
_FLAGS unsigned int ae« F®c ‘®aa®i?Y ?a®aeYaa®a 
———————————————————–

˜aYc¤®?YaY¬YeY¬®¦® a aa¬ aa?c ai ? ? ®!eceY
F«®! «ieY ?YaY¬YeY a®®acYaaacaieYF® a??  (unsigned int,
unsigned char). ?¤ ?®, ?®a?®«i?a ®? ®a®aiaai Y ? ? ?®¬a-
«?!® ?a®?§c®«i®¬a  ¤aYaa ? ¬ia?,   ? ?®?aYae¬ aYF?aaa ¬
aeYaa «i®F®?a®aeYaa®a , ¤«i ?a aaeYaacaia Y?®a®aeY ®Fa ?-
cY?i ? ®a®!Y®aa?, ?®a®aeY ce ¤®«¦e ac?aec ai.

– ‘ ?aYc¤®?YaY¬Ye¬? Y«i§i ?a?®«i§®c ai ®?Ya ae?i  ¤-
aYa ae?? (&), ?®a?®«i?a ?aYc¤®?YaY¬YeY Y ?¬Yia  ¤aYa .

– ’ ? ? ? ?®¬??«ia®a caY caY¬i FYYa?aaYa ?®¤e, ?a?®«i-
§aie?Y aYF?aaae (?a ?a?cYa?? caY ?®¬ ¤e 8086 a !®a ia a
aYF?aaa ¬?), Ya ?? ??a F a a?© a®F®, ca® ?®¬YeY®Y c
?aYc¤®?YaY¬Yai § cY?Y ?a®¤Ya¦?aai a ¬ a?®«i?®-?!a¤i
?a®¤®«¦?aY«ie© ®aaY§®? caY¬Y?.

˜a® ®§ c Ya, ca® ?a?ac ?c ai § cY?i ?aYc¤®?YaY¬Ye¬
a¦® Y?®aaY¤aacY® ?YaY¤ aY¬, ? ? ia? § cY?i !a¤aa ?a-

– 241 –
?®«i§®c e,   ac?aec ai § cY?i – aa §a ¦Y ?®a«Y ?a ?®«acY-
?i, ? ? c ?aY¤e¤aeY¬ ?a?¬YaY. ˜a® ®a®!Y®? a Yaai aYF?aa-
a®c ®!eYF®  § cY?i (AX, AH, AL ? a.¤.), a ? ? ?
?®¬??«ia®a ac®!®¤® ?a?®«i§aYa ia? aYF?aaae ¤«i aa Y?i
?a®¬Y¦aa®cea § cY?©. ’ ??¬ ®!a §®¬, ?a®aeYaa®a ¬®¦Ya ?§¬Y-
iai § cY?i ia?a aYF?aaa®c Y®¦?¤ ® ¤«i c a;  ?a?¬Ya,
CX ¬®¦Ya ?a?®«i§®c aiai c ae??« a ? ®?Ya ae?ia a¤c?F ,  c DX
¬®¦Ya ?®¬Ye aiai aa aeYY a«®c® 16-!?a®c®F® a¬®¦Y?i.

– ˜Y«i§i ®¦?¤ ai, ca® § cY?i ?aYc¤®?YaY¬Yea ®aa –
aaai Y?§¬Ye¬? ?®a«Y ce§®c  aea?ae??.„«i ?a?¬Ya  a aa¬®a-
a?¬ a«Y¤aie?© aea F¬Ya ?®¤ :

_CX = 18;
myFunc();
i = _CX;

˜a?ce§®cYaea?ae?? a®aa iiaai Y caY § cY?i aYF?aaa®c,
aY¬ a ¬e¬ Ya ?? ??a F a a?©, ca® i !a¤Ya ?a?ac®Y® § cY-
?Y18. …¤?aacYe¬? aYF?aaa ¬?,?®a®aeY  cYai?  a®aa iia
ac®Y § cY?Y ?®a«Y ce§®c  aea?ae??, ic«iiaai _DS,_BP,_SI ? _
DI.

– ‘«Y¤aYa !eai ®cYi ®aa®a®¦e¬ ?a? ¬®¤?ae?? ae?? Y?®a®-
aea aYF?aaa®c, ?®a?®«i?a ia® ¬®¦Ya ?¬Yai cYai¬  Y®¦?¤ e©
? Y¦Y« aY«ie© iaeaeY?a. ˜ ?a?¬Ya, ?ai¬®Y ?a?ac®Y?Y § cY?©
?aYc¤®?YaY¬Ye¬ CS,_DS,_SS,_SP ?«? _BP ¬®¦Ya (?  cYa®Y,
a ? ? ?a®?§®©¤Ya) ?a?cYaa? ? ®e?!®c®¬a ?®cY¤Y?i c eY©
?a®Fa ¬¬e, a ? ? ? ¬ e?e© ?®¤, a®§¤ c Y¬e© ?®¬??«ia®a®¬
Turbo C++, ?a?®«i§aYa ia? aYF?aaae a ¬e¬? a §«?ce¬? a?®a®-
! ¬?.

‚aaa ?c Y¬eY  aaY¬!«YaeY ?®¤e

‚e a¦Y § YaY, ? ? ??a ai ®a¤Y«ieY ?®¤?a®Fa ¬¬e  
i§e?Y  aaY¬!«Ya  ??®¬?®®c ai ?a a ?a®Fa ¬¬®©   Turbo C++.
Turbo C++ ?®§c®«iYa a ?¦Y caaa ?c ai  aaY¬!«YaeY ?®¤e c
‘-?a®Fa ¬¬a.˜a® aaY¤aac®  §ec Yaai caaa®Ye¬  aaY¬!«?a®c –
?Y¬.

„«i ?a?®«i§®c ?i c ‘-?a®Fa ¬¬Y caaa®Yea  aaY¬!«Yaea
?®¤®c ¬®¦Ya a«a¦?ai ®?ae?i ?®¬??«ia®a  -B. …a«? ia  ®?ae?i Y
!e«  § ¤  ,   c ?a®Fa ¬¬Y caaaYa?«ai caaa®Ye©  aaY¬!«Ya-
e© ?®¤, a® ?®¬??«ia®a ce¤ Ya a®®acYaaacaieYY ?aY¤a?aY¦¤Y?Y
? ?YaY§ ?aa? Yaai a ®?ae?Y© -B.˜a®F® ¬®¦® ?§!Y¦ ai, ?®¬Yaa?c
c ?aa®¤e©?®¤ ¤?aY?a?ca #pragma inline, ?®a®a i ae ?a?cYa??
§ aa c«iYa ?®¬??«ia®a c?«ic?ai ®?ae?i -B.

˜® a¬®«c ?i -B § ?aa? Ya TASM. ˜a® a¬®«c ?Y ¬®¦® ?Y-
aY®?aY¤Y«?ai ®?ae?Y© -Exxx, F¤Y xxx – ia® ¤aaF®©  aaY¬!«Ya.
˜®¤a®!ai ?ae®a¬ ae?i a¬. c ?« cY 4, “?®¬??«ia®a ?®¬ ¤®©
aaa®??”, ˜a?®c®¤aac  ?®«i§®c aY«i.

„«i ?a?®«i§®c ?i ¤ ®F® aaY¤aac  ce ¤®«¦e ?¬Yai ?®-
??i Turbo Assembler (TASM). ‘ c «  ?®¬??«ia®a FYYa?aaYa
 aaY¬!«Yae© ae ©«,   § aY¬ § ?aa? Ya ¤«i ia®F® ae ©«  TASM,
?®a®ae© a®§¤ Ya .OBJ-ae ©«.

˜ §a¬YYaai, ce ¤®«¦e !eai § ?®¬e a  !®a®¬ ?®¬ ¤ ?
 aa?aY?aaa®© 8086. „ ¦Y Ya«? ce Y ??eYaY ®a¤Y«iea¬®¤a«Y©
  i§e?Y aaY¬!«Ya , caY a c® ce ¤®«¦e § ai, ? ? ?¬Y®
a !®a ia ?®¬ ¤e  aaY¬!«Ya , ? ? ?a?a?¬Yiai ?c ? ??a a«ac –
ia ?a?®«i§®c ?Y ia?a ?®¬ ¤ § ?aYeY®.

…a«? caY ia? aa«®c?i ce?®«Ye, a® ¤«i c?«icY?i c
‘-?a®Fa ¬¬a caaa®Yea ?®¬ ¤   i§e?Y  aaY¬!«Ya  ¤®aa a®c®
?a?®«i§®c ai ?«icYc®Y a«®c® asm. ”®a¬ a ia®© ?®¬ ¤e:

– 242 –

asm ?®¤-®?Ya ae?? ®?Ya ¤e;?«? ®c i-aaa®? 

F¤Y

– ?®¤-®?Ya ae?? ia® ®¤  ?§ ¤®?aaa?¬ea ?®¬ ¤ 8086 (caY
?®¤e-®?Ya ae?© 8086 ?a?c®¤iaai ?¦Y c a !«?aeY 6.4.

– ®?Ya ¤e – ia® ¤®?aaa?¬e© (¤®?aaa?¬eY) ¤«i ¤ ®F®
?®¤ -®?Ya ae?? ®?Ya ¤(e); ia® ¬®Faa !eai ?®aa ae, ?YaY¬Y-
eY ? ¬Ya?? ‘.

– ;?«? ®c i-aaa®?  – ia® «?!® a®c?  a § ?ia®©, «?!®
a?¬c®« ®c®© aaa®??, ®!®§ c ie?Y ?®Yae ®?Ya a®a  asm.

˜®ce© ®?Ya a®a asm ¬®¦Ya  a®¤?aiai c a®© ¦Y aaa®?Y cY-
aY§ a®c?a a § ?ia®©, ®¤ ?® ?? ?®© ®?Ya a®a asm Y¬®¦Ya
!eai ?a®¤®«¦Y c ®c®© aaa®?Y.

…a«? ce a®a?aY c?«ic?ai c ?a®Fa ¬¬a Ya?®«i?® ®?Ya a®-
a®c asm, c®§i¬?aY ?a c ae?FaaeY a?®!??:

asm (*
pop ax; pop ds
iret
*)

’®c?? a§ ?ia®© c ¤ ®¬ a«ac Y Y ¬®Faa a«a¦?ai ?a?§ –
?®¬  c «  ?®¬¬Ya a?i (? ? c TASM). „«i?®¬¬Ya?a®c ?i ®?Y-
a a®a®c asm a«Y¤aYa ?a?®«i§®c ai ?®¬¬Ya a?? ‘,  ?a?¬Ya:

asm mov ax,ds;/* ˜a®a ?®¬¬Ya a?© ¤®?aaa?¬ */
asm (*pop ax; pop ds; iret;*) /* ˜a®a a®¦Y ¤®?aaa?¬ */
asm push ds ;˜’?’ ????…˜’?˜?‰ ˜…‚…˜…˜ !!

— aai ®?Ya a®a asm, ?aY¤aa c«iie i a®!®© ?®¬ ¤a  
i§e?Y  aaY¬!«Ya , Y?®aaY¤aacY® ?®??aaYaai   cea®¤ ?
caaa ?c Yaai c  aaY¬!«Yae©?®¤, FYYa?aaY¬e© Turbo C++ ?§
?®¬ ¤ ‘. ‘?¬c®«?cYa??Y?¬Y  ‘ § ¬Yiiaai ?a? ia®¬ a®®acYaa-
acaie?¬? i?c?c «Ya ¬? i§e?   aaY¬!«Ya .

‘aY¤aac®caaa®Y®F®  aaY¬!«?a®c ?i Y aY «?§aYa ?®«e©
 aaY¬!«Ya, c aY§a«ia aY cYF® ¬®F?Y ®e?!?? Y ®! aa¦?c iaai
?¬ aa §a¦Y. ‚®§¬®¦eY ®e?!?? ®! aa¦?c Ya TASM. ?¤ ?®, TASM
¬®¦Ya ®? § aiai Y c a®aa®i?? ?¤Ya?ae?ae?a®c ai ¬Yaa® a®¦-
¤Y?Y ®e?!??, c c aa®aa? ?§-§  a®F®, ca® ®¬Ya ?aa®¤®©
aaa®?? ‘ ? ia®¬a ¬®¬Yaa a¦Y aaYai.

? ¦¤e© ®?Ya a®a asm ac?a Yaai ®?Ya a®a®¬ ‘. ˜ ?a?¬Ya,

myfunc()
(*
int i;
int x;
if (i>0)
asm mov x,4
else
i = 7;
*)

„  i ?®aaaa?ae?i ?aY¤aa c«iYa a®!®© ¤®?aaa?¬e© ®?Ya –
a®a ‘. ?a¬Ya?¬, ca®a®c?  a § ?ia®© ?®a«Y ?®¬ ¤e mov x,4 Y
aaY!aYaai. ??Ya a®ae asm ic«iiaai Y¤?aacYe¬? ®?Ya a®a ¬?
‘, § c?aie?¬? ®a  «?c?i a?¬c®«  ®c®© aaa®??. ˜a®Y a®®a-
cYaaacaYa ?a ?a??Y, ?a?ia®© ¤«i ®aa «i®© c aa? i§e? ‘, ®-
§ a® a®®acYaaacaYa a®F« eY?i, ?a?ia®¬a c Ya?®«i??a ?®¬??-
«ia®a a   ! §Y UNIX.

– 243 –

?aaY¬!«Yae© ®?Ya a®a ¬®¦Ya !eai ?a?®«i§®c  ? ? c
? cYaacY ce?®«iY¬®F® ®?Ya a®a  caaa? aea?ae??, a ? ? c ? –
cYaacY cYeYF® ®!eic«Y?i cY ia®© aea?ae??. ?aaY¬!«YaeY
®?Ya a®ae,  a®¤ie?Yai cY aea?ae?©, ?®¬Ye iaai c aYF¬Ya
DATA,   a®¤ie?Yai caaa? aea?ae?© ?®¬Ye iaai c aYF¬Ya CODE.

˜?¦Y ?a?c®¤?aai cYaa?i aea?ae?? min (?®a®a i a aa¬ aa?-
c « ai c a §¤Y«Y “®!a !®a?  § cY?© c®§ca a ”   aaa.257
®a?F? « ), ?a?®«i§aie i caaa®Y®Y  aaY¬!«?a®c ?Y.

int min (int V1, int V2)
(*
asm (*
mov ax,V1
cmp ax,V2
jle minexit
mov ax,V2
*)
minexit:
return (_AX);
*)

?a¬Ya?¬ aa®¦Yaai ¤ ®F® ?®¤  a ?®¤®¬  aaa.260 ®a?F?-
 « , ?®a®ae© ?a?®«i§aYaa ae?aY?Y Turbo Assembler, aci§ –
®Y a § ¤ ?Y¬ ?®?aYa®F® i§e? .

‚ ? cYaacY ®?Ya a®a®c caaa®Y®F®  aaY¬!«?a®c ?i ¤®-
?aa? Yaai c?«ic ai «i!eY ?®¤e®?Ya ae?© 8086. ‘aeYaacaYa
cYaeaY ?« aa  ?®¬ ¤, ?®§c®«iY¬ea ?®¬??«ia®a®¬ Turbo C++:

– ®!eceY ?®¬ ¤e – aa ¤ aae©  !®a ?®¤®c ®?Ya ae?© 8086

– aaa®?®ceY ?®¬ ¤e – a?Yae? «ieY ?®¤e ®!a !®a?? aaa®?

– ?®¬ ¤e ?YaYa®¤  – a §«?ceY ?®¤e ®?Ya ae?© ?YaYa®¤ 

– ¤?aY?a?ce  aaY¬!«?a®c ?i – a §¬YeY?i ? ®?aY¤Y«Y?i
¤ ea

?a¬Ya?¬,ca® ?®¬??«ia®a ¤®?aa? Ya § ¤ ?i «i!ea ®?Ya –
¤®c, ¤ ¦Y Ya«? ®? ®e?!®ce ?«? Y a §aYeYe  aaY¬!«Ya®¬.
’®ce© ae®a¬ a ®?Ya ¤®c Y ¬®¦Ya !eai ?a?a¤?aY«i® aaa ®c-
«Y ?®¬??«ia®a®¬.

?®¤e ®?Ya ae?©
___________________________________________________________
___________________________________________________________

˜?¦Y ?a?c®¤?aai ?®«e© ?YaYcYi ¬Y¬®?cYa??a?¬Y ?®¤®c
®?Ya ae?©, ?®a®aeY ¬®Faa !eai ?a?®«i§®c e c ®?Ya a®a a
caaa®Y®F®  aaY¬!«?a®c ?i:

?Y¬®?cYa??Y ?¬Y  ?®¤®c ®?Ya ae?© ’ !«?ae  6.4
———————————————————–
aaafdvtr fpatan lsl
aadfeni fprem mov
aamffroe** fplan mul
aasfiadd frndint neg
adcficom frstor nop
addficomp fsave not
andfidiv fscale or
boundfidifr fsqrt out
callfild fst pop
cbwfimul fstcw popa
clcfincstp** fslenv popi

– 244 –
cldfinit fstp push
clifist fstsw pusha
cmcfistp fsub pushf
cmpfisub fsubp rcl
cwdfisubr fsubr rcr
daafld fsubrp ret
dasfld1 ftst rol
decfldcw fweit ror
divfldenv fxam sahf
enterfldl2e fxch sal
f2xm1fldl2t fxtract sar
fabsfldlg2 fyl2x sbb
faddfldln2 fyl2xp1 shl
faddpfldpi hlt shr
foldfldz idiv smsw
fbstpfmul imul stc
fchsfmulp in std
fclexfnclex inc sti
fcomfndisi int sub
fcompfneni into test
fcomppfninit iret verr
fdecstp** fnop lahf verw
fdisifnsave lds wait
fdivfnstcw lea xchg
fdivpfnstenv leave xlat
fdivrfnstsw les xor
———————————————————–

˜a? ?a?®«i§®c ?? aaY¤aac  caaa®Y®F®  aaY¬!«?a®c ?i
c ?®¤?a®Fa ¬¬ a, i¬a«?aaie?a ®?Ya ae?? a ?« c ieY© a®c?®©
(®?ae?iTCC -O), ?®¤e ®?Ya ae??, ?®¬YcYeY **, Y ?®¤¤Ya¦?c –
iaai.

˜a? ?a?®«i§®c ?? c ®?Ya a®a a caaa®Y®F®  aaY¬!«?a®-
c ?i ¬Y¬®?cYa??a ?®¬ ¤ 80186 Y®!a®¤?¬® c?«ic ai ®?ae?i
?®¬ ¤®© aaa®?? -1. ’®F¤  ?®¬??«ia®a c?«ic?a c FYYa?aaY¬e©
?¬  aaY¬!«Yae© ?®¤ a®®acYaaacaie?Y ®?Ya a®ae, c aY§a«ia aY
cYF® Turbo Assembler !a¤Ya ®¦?¤ ai ?®ic«Y?Y ¤ ea¬Y¬®?-
cYa??a?¬Y.˜a? ?a?®«i§®c ?? ?aY¤e¤ae?a cYaa?©  aaY¬!«Ya 
ia? ¬Y¬®?cYa??Y ?¬Y  ¬®Faa Y ?®¤¤Ya¦?c aiai.

‘aa®?®ceY ?®¬ ¤e
___________________________________________________________

˜®¬?¬®?®¤®c ®?Ya ae?©, ?a?cY¤Yea ceeY, c®§¬®¦® ?a-
?®«i§®c ?Y a«Y¤aie?a aaa®?®cea ?®¬ ¤, ? ? c ?aa®¤®¬ c?¤Y,
a ? ? a ?aYae??a ¬? ae??«?cYa?®F® ce?®«Y?i.

‘aa®?®ceY ?®¬ ¤e ’ !«?ae  6.5
———————————————————–
capslasw movsb outswstos
capsblods movsw scasstosb
capswlodsb outs scasbstosw
laslodsw outsb scasw
lasbmovs
———————————————————–

˜aYae??ae
___________________________________________________________

„®?aaa?¬e a«Y¤aie?Y ?aYae??ae:

lock rep reperepnerepnzrepz

?®¬ ¤e ?YaYa®¤ 

– 245 –
___________________________________________________________

?®¬ ¤e ?YaYa®¤  a aa¬ aa?c iaai ®a¤Y«i®. ˜®a?®«i?a
¬Ya?  Y ¬®¦Ya !eai c?«icY  c a ¬a ?®¬ ¤a, ?YaYa®¤e ce?®«-
iiaai ? ¬Ya? ¬ ‘ (a¬. a §¤Y« “?a?®«i§®c ?Y ?®¬ ¤ ?YaYa®¤ 
? ¬Ya®?”   aaa.274 ®a?F? « ). ‚ a«Y¤aieY© a !«?aeY ?YaYc?a-
«Ye¤®?aaa?¬eY ?®¬ ¤e ?YaYa®¤ :

?®¬ ¤e ?YaYa®¤  ’ !«?ae  6.6
————————————————————
jajge jnc jnp js
jaejl jne jns jz
jbjle jng jnx loop
jbejmp jnge jo loope
jcjna jnl jp loopae
jcxzjnae jnle jpe loopnz
jejnb jno jpo loopz
jgjnbe
———————————————————–

„?aY?a?ce  aaY¬!«?a®c ?i
___________________________________________________________

‚ ®?Ya a®a a caaa®Y®F®  aaY¬!«?a®c ?i Turbo C++ ¤®-
?aaa?¬e a«Y¤aie?Y ¤?aY?a?ce:

db dd dw extra

‘ae«?? ?§ ®?Ya a®a®c caaa®Y®F®  aaY¬!«?a®c ?i
? ¤ e¬ ? aea?ae?i¬

‚ ®?Ya a®a a asm ¤®?aa? Yaai ?a?®«i§®c ai a?¬c®«?cYa??Y
?¬Y  ‘; Turbo C++  ca®¬ a?cYa?? ?aY®!a §®cec Ya ?a c a®®a-
cYaaacaie?Y ®?Ya ¤e i§e?   aaY¬!«Ya  ? caa c«iYa ?YaY¤ ia?-
¬? ?¬Y ¬? a?¬c®« ?®¤cYa??c ?i. „®?aa? Yaai ?a?®«i§®c ?Y
«i!ea a?¬c®«?cYa??a ?¬Y, c?«ic i  ca®¬ a?cYa?? a a?aY¤Y«iY-
¬eY («®? «ieY)?YaY¬YeY, aYF?aaa®ceY ?YaY¬YeY ? ? a ¬Ya-
ae aea?ae?©.

‚ aeY«®¬, ce ¬®¦YaY ?a?®«i§®c ai a?¬c®«?cYa?®Y ?¬i ‘ c
«i!®© ?®§?ae??, F¤Y ¤®?aaa?¬e  ¤aYaeY ®?Ya ¤e. ˜ §a¬YYaai,
¤®?aaa?¬® ?a?®«i§®c ?Y aYF?aaa®cea ?YaY¬Yea cY§¤Y, F¤Y
¤®?aaa?¬e¬ ®?Ya ¤®¬ ic«iYaai aYF?aaa.

? ? a®«i?®  aaY¬!«Ya caaaYc Ya c® caY¬i «Y?a?cYa?®F®
  «?§  ®?Ya ¤®c caaa®Y®F®  aaY¬!«Ya  ?¤Ya?ae?? a®a,
?a®a¬ aa?c Yaai a !«?ae  a?¬c®«?cYa??a ?¬Y ‘. ?¬Y  aYF?aa-
a®c 8086 ?§ ia®F® ?®?a?  ?a?«ic iaai. ?¬Y  aYF?aaa®c ¬®Faa
!eai  !a e ? ?§ F« ce¬?, a ? ? aaa®ce¬? !a?c ¬?.

‚aaa®Y®Y  aaY¬!«?a®c ?Y ? aYF?aaa®ceY ?YaY¬YeY
___________________________________________________________

‚aaa®Ye©  aaY¬!«Yae© ?®¤ ¬®¦Ya ac®!®¤® ?a?®«i§®c ai
a !®c?Y aYF?aaae SI? DI.˜a? ?a?®«i§®c ?? c® caaa®Y®¬  a-
aY¬!«Ya®¬?®¤Y aYF?aaa®c SI ? DI ?®¬??«ia®a Y aa Ya a a?-
aY¤Y«iai ?a ¤«i aYF?aaa®cea ?YaY¬Yea.

‚aaa®Y®Y  aaY¬!«?a®c ?Y, a¬YeY?i ? ?YaY®?aY¤Y«Y?Y
a §¬Ya 
___________________________________________________________

‚® caY¬i?a®Fa ¬¬?a®c ?i c ¬ Y aaY!aYaai § ai a®ceY
a¬YeY?i «®? «iea ?YaY¬Yea. ˜a? ?a?®«i§®c ?? ?¬Y? ?a –
c?«i®Y § cY?Y a¬YeY?i !a¤Ya c?«icY®  ca®¬ a?cYa??.

– 246 –

?¤ ?®, ¬®¦Ya ®? § aiai Y®!a®¤?¬e¬ c?«icY?Y c  aaY¬!-
«Yaai ?®¬ ¤a a®®acYaaacaieYF® WORD PTR, BYTE PTR, ?«? «i-
!®F® ¤aaF®F® ?YaY®?aY¤Y«Y?i a §¬Ya . ˜YaY®?aY¤Y«Y?Y DWORD
PTR aaY!aYaai § ¤ c ai c ?®¬ ¤ a LES ?«? ?®acY®F® ¤ «iY-
F® ce§®c .

?a?®«i§®c ?Y ?®¬?®Ya®c aaaa?aaa ‘
___________________________________________________________
___________________________________________________________

‚ ®?Ya a®aY caaa®Y®F®  aaY¬!«?a®c ?i ¤®?aa? Yaai ®!-
a eY?Y ??®¬?®Ya ¬aaaa?aaa ®!ece¬ a?®a®!®¬ (a.Y. ?YaY¬Y-
 i.?®¬?®Ya). ‚ a ?®¬ a«ac Y ce ?¬YYaY ¤Y«® a ?YaY¬Y®© ?
¬®¦YaY § ??aec aic YY?«? ®!a e aiai ? aa ?¬e¬ c Y© § cY-
?i¬. ?¤ ?®, ce ¬®¦YaY a ?¦Y Y?®aaY¤aacY® ®!a e aiai ?
?¬Y? ?®¬?®Ya  (!Y§ ?¬Y? ?YaY¬Y®©) c ae®a¬Y c?a«®c®©
?®aa ae. ‚ ¤ ®© a?aa ae?? ?®aa a  a c  (c ! ©a a) a¬Y-
eY?i ®a  c «  aaaa?aaae, a®¤Ya¦ eY© ia®a ?®¬?®Ya. ˜ aa-
¬®aa?¬ a«Y¤aie?© aea F¬Ya ?a®Fa ¬¬e:

struct myStruct (*
int a_a;
int a_b;
int a_c;
*) myA;

myfunc ()
(*

asm (*mov ax, myA.a_b
mov bx, [di].a_b
*)

*)

?e ®!eic?«? a?? aaaa?aaae a ?¬YY¬ myStruct a aaY¬i
?®¬?®Ya ¬?,a_a, a_b ? a_c; ¬e a ?¦Y ®!eic?«? ?YaY¬Yai
myA a??  myStruct. ˜Yace© ®?Ya a®a caaa®Y®F®  aaY¬!«?a®c –
?i ?YaYae« Ya § cY?Y ?§ myA.a_b c aYF?aaaAX. ‚a®a®© ®?Y-
a a®a ?YaYae« Ya § cY?Y ?®  ¤aYaa [di]+a¬YeY?Y(a_c) c aY-
F?aaa BX(® !YaYa ¤aYa,aa ?¬e© c DI, ? a?« ¤ec Ya a®
a¬YeY?Y¬a_c ®a®a?aY«i®  c «  myStruct.) ‚ a ?®© ?®a«Y¤®-
c aY«i®aa?ia?  aaY¬!«YaeY ®?Ya a®ae ®!a §aia a«Y¤aie?©  a-
aY¬!«Yae© ?®¤:

mov ax, DGROUP : myA+2
mov bx, [di+4]

„«i cYF® ia® ¬®¦Ya ?® ¤®!?aiai? ‡ Faa§?c aYF?aaa ( ?-
a?¬Ya, DI)  ¤aYa®¬ aaaa?aaae a??  myStruct ce
¬®¦YaY?a?®«i§®c ai ?¬Y  ?®¬?®Ya®c ¤«i Y?®aaY¤aacYea
aae«®? ? ia?¬ ?®¬?®Ya ¬. ” ?a?cYa?? ?¬i ?®¬?®Ya  ¬®¦Ya
!eai ?a?®«i§®c ® cY§¤Y, F¤Y c ? cYaacY ®?Ya ¤   aaY¬!«Ya-
®F® ®?Ya a®a ¤®?aaa?¬  c?a«®c i ?®aa a .

?®¬?®Yaa aaaa?aaae ®!i§ aY«i® ¤®«¦  ?aY¤eYaac®c ai
a®c?  (.), ?®a®a ia®®!e Ya, ca®¤ ®Y?¬i -ia® ?¬i ?®¬?®Ya 
aaaa?aaae,   Y ®!ec®Y a?¬c®«?cYa?®Y ?¬i ‘. ?¬Y  ?®¬?®Y-
a®c c  aaY¬!«Ya®¬ c?¤Y   cea®¤Y ?®¬??«ia®a  § ¬Yiiaai
c?a«®ce¬? a¬YeY?i¬? (c?a«®c®Y § cY?Y a_c a c® 4),  ?-
ae®a¬ ae?i ® a??Y aYaiYaai. ’ ??¬ ®!a §®¬, ?®¬?®Yae aaaa?aa-
ae ¬®Faa ?a?®«i§®c aiai c  aaY¬!«Yaea ®?Ya a®a a ? ? ?®a-
a ae caY¬Y? ?®¬??«iae??.

?¤ ?®,§¤YaiaaeYaacaYa ®¤® ®Fa ?cY?Y. …a«?¤cY
aaaa?aaae, ?a?®«i§aY¬eY c® caaa®Yea  aaY¬!«Yaea®?Ya a®-

– 247 –
a a, ?¬Yia ®¤? ?®ceY ?¬Y , ce ¤®«¦e a §«?c ai ?a. „«i
ia®F® caa ciaY a?? aaaa?aaae (c?aaF«ea a?®!? a) ¬Y¦¤a a®c?®©
? ?¬YY¬ ?®¬?®Ya , ? ? Ya«? !e aYci e«  ® ?a?cY¤Y?? a?-
?®c. ˜ ?a?¬Ya,

asm mov bx,[di].(struct tm)tm_hour

?a?®«i§®c ?Y ?®¬ ¤ ?YaYa®¤  ? ¬Ya®?
___________________________________________________________
___________________________________________________________

‚e ¬®¦YaY ?a?®«i§®c ai c ®?Ya a®a acaaa®Y®F®  aaY¬!-
«?a®c ?i «i!eY ?®¬ ¤e aa«®c®F® ? !Y§aa«®c®F® ?YaYa®¤ ,  
a ?¦Yae??«®ceY ?®¬ ¤e. ?? ic«iiaai ¤®?aaa?¬e¬? ?a?«ic?aY«i-
® caaa? aea?ae?©. ˜®a?®«i?a ®?Ya a®ae asm Y ?®§c®«iia ®!e-
ic«Y?i ¬Ya®?, ?®¬ ¤e ?YaYa®¤   aaY¬!«Ya  ¤®«¦e ?a?®«i§®-
c ai c ? cYaacY ®!eY?a®c ?YaYa®¤  ?¬Y  ¬Ya®?goto C. ˜ai¬eY
¤ «i?Y ?YaYa®¤e FYYa?a®c aiai Y ¬®Faa.

‚ a«Y¤aieY¬ ?a?¬YaY ?®¤  ?YaYa®¤ ce?®«iYaai ? ¬Ya?Y C
goto a.

int x()
(*
a: /* ia® ¬Ya?  ?®¬ ¤e C goto “a” */

asm jmp a /* ?YaYa®¤ ? ¬Ya?Y”a” */

*)

’ ?¦Y ¤®?aaa?¬e ?®acYeY ?YaYa®¤e. „«i a®F®, ca®!e ce-
?®«?ai ?®acYe© ?YaYa®¤, c ? cYaacY ®?Ya ¤  ?®¬ ¤e ?YaY-
a®¤  a? §ec Yaai ?¬i aYF?aaa .

”a?ae?? ?aYaec ?i

8086 aY§Yac?aaYa ?YaceY 1024 ! ©a  ? ¬ia? ¤«i  !®a  ?§
256 ¤ «i?a a? § aY«Y©,  §ec Y¬ea a ?¦Y cY?a®a ¬??aYaec –
?i, a? §ec ie?a   a?Yae? «ieY a?aaY¬eY ?®¤?a®Fa ¬¬e, ?®-
a®aeY  §ec iaai ®!a !®ac?? ¬? ?aYaec ?©. ˜a? ?®¤?a®Fa ¬¬e
ce§ec iaai ?a? ce?®«Y?? a«Y¤aieY© ?®¬ ¤e:

int int#

F¤Y int# ia® c?a«® ®a 0h ¤® FFh. ?®F¤  caaaYc Yaai ¤ –
 i ?®¬ ¤ , ?®¬?iiaYa a®aa iYa ?®¤®ce© aYF¬Ya (CS), a? –
§ aY«i ?®¬ ¤ (IP) ? a®aa®i?i ae« F®c, § aY¬ § ?aYe Ya ?aY-
aec ?i ? ce?®«iYa ¤ «i?© ?YaYa®¤ ?®  ¤aYaa,   ?®a®ae©
a? §ec Ya a®®acYaaacaie?© cY?a®a ?aYaec ?i. ˜ ?a?¬Ya, c aa®
caaaYc Yaai ?aYaec ?Y

int 21h

ce§ec ieYY !®«ie?aac® ?®¤?a®Fa ¬¬ DOS. ?¤ ?®, ¬®F?Y
cY?a®ae ?aYaec ?Y Y ?a?®«i§®c e, ca® ®§ c Ya ¤«i c a
c®§¬®¦®aai  ??a ai a®!aacYeY ®!a !®ac??? ?aYaec ?© ?
?®¬Yaa?ai ¤ «i?Y a? § aY«?   ?a c ac®!®¤eY cY?a®ae ?aY-
aec ?i.

„«i a®F®, ca®!e  ??a ai c Turbo C++ ®!a !®ac?? ?aYae-
c ?i, ce ¤®«¦e ®?aY¤Y«?ai aea?ae?i a a??®¬ interrupt; !®«YY
?®?aYa®, ®  ¬®¦Ya ceF«i¤Yai a«Y¤aie?¬ ®!a §®¬:

void interrupt myhandler(bp, di, si, ds, es, dx,
cx, bx, ax, ip, cs, flags, …);

– 248 –
? ? ¬®¦® § ¬Ya?ai, caY aYF?aaae ?YaY¤ iaaic ? cYaacY
? a ¬Yaa®c, ca® ?®§c®«iYa ?a?®«i§®c ai ? ¬®¤?ae?ae?a®c ai ?a c
c eY© ?a®Fa ¬¬Y, Y ?a?!YF i ? a aa¬®aaYe¬ ceeY c ¤ ®©
F« cY ?aYc¤®?YaY¬Ye¬. „®?aa? Yaai a ?¦Y ?YaY¤ c ®!a !®ac?-
?a ?aYaec ?© ¤®?®«?aY«iea ? a ¬Yaa®c (flags,…); ?®a«Y¤-
?Y ¤®«¦e ?¬Yai a®®acYaaacaie?Y ®?aY¤Y«Y?i.

”a?ae?i a??  interrupt  ca®¬ a?cYa?? a®aa iYa (?®¬?¬®
SI, DI ? BP) aYF?aaae ®a AX ¤® DX ? DS. ˜a? ¦Y aYF?aaae ?a?
cea®¤Y ?§ ®!a !®ac??  ?aYaec ?i c®aaa  c«?c iaai.

?!a !®ac??? ?aYaec ?©¬®Faa ?a?®«i§®c ai  a?ae¬Ya?cYa??Y
®?Ya ae?? a ?« c ieY© a®c?®© ?a? caYa ¬®¤Y«ia? ¬ia?. ‹i!®©?®¤
®!a !®ac??  ?aYaec ?i, ?a?®«i§aie?© 80a87, ¤®«¦Y a®aa iai
a®aa®i?Y a®?a®aeYaa®a  ?a? ca®¤Y ? c®aaa  c«?c ai YF® ?a?
cea®¤Y.

”a?ae?i ?aYaec ?i ¬®¦Ya ¬®¤?ae?ae?a®c ai ?YaY¤ c Y¬eY Y©
? a ¬Yaae. ?§¬YY?Y ®!eic«Yea ? a ¬Yaa®c ?a?cY¤Ya ? ¬®¤?-
ae?? ae?? a®®acYaaacaieYF® aYF?aaa  ?a? cea®¤Y ?§ ®!a !®ac?? 
?aYaec ?i. ˜a® ac®©aac® ¬®¦Ya ®? § aiai ?®«Y§e¬, ?®F¤  ®!-
a !®ac?? ?aYaec ?i ?a?®«i§aYaai ? ? a«a¦Y! iaea?ae?i ?®«i-
§®c aY«i, ? ?ia® ?a®?aa®¤?a ca«ac Ya«a¦Y!®© aea?ae?? DOS INT
21. ?a®¬Y a®F®, ®!a a?aY c?¬ ?Y   a®, ca® aea?ae?i ?aYae-
c ?i ce?®«iYa cea®¤ a ?®¬®eii ?®¬ ¤e IRET (c®§ca a  ?§
?aYaec ?i).

?a ?, c ? ??a a«ac ia ¬®¦Ya ?® ¤®!?aiai  ??a ai a®!a-
acYe© ®!a !®ac?? ?aYaec ?©? „Y«®c a®¬, ca® a ? a !®a Ya
!®«ie?aac® aY§?¤Yaea ?a®Fa ¬¬. ?? ?aa ««?aaiaai ? ?®!-
a !®ac??? ?aYaec ?©. ’Y¬ a ¬e¬, ?a? ce?®«Y?? Y?®a®a®F®
?Ya?®¤?cYa?®F® ?«? a?Yae? «i®F® ¤Y©aac?i (a ?a®c®¬ a?F «Y
c a®c,  ¦ a?? ?« c?e? ? a.¤.) ?a®?aa®¤?a ®!a eY?Y ? a®®a-
cYaaacaieY¬a®!a !®ac??a ?aYaec ?i ? a®®acYaaacaie?Y ¤Y©a-
ac?i. ‡ aY¬ a?a c«Y?Y c®§ca e Yaai ?a®Fa ¬¬Y, ?a? ce?®«Y-
?? ?®a®a®© caaaYa?«®ai ¤ ®Y ?aYaec ?Y.

˜a ?a?cYa??Y ?a?¬Yae ?a®Fa ¬¬ ?§?®F® aa®ci

?e a¦Y a aa¬®aaY«? Ya?®«i?® ?a?¬Ya®c ®!a eY?© ?
aea?ae?i¬ ?§?®F® aa®ci ?§ ‘-?a®Fa ¬¬e; a aa¬®aa?¬ YeY Ya-
?®«i?® a ??a ?a ?a?cYa??a ?a?¬Ya®c. ˜ cY¬ a ®!a !®ac?? 
?aYaec ?i, ?®a®ae© ce?®«iYa Y?®a®aeY !Y§caY¤eY, ® ®ea-
a?¬eY (c ¤ ®¬ a«ac Y a«ee?¬eY) ¤Y©aac?i: ?a? YF® ce§®cY
a §¤ Yaai §ca?®c®© a?F «.

˜aY¦¤Y caYF®,  ??eY¬ a ¬a aea?ae?i: ?  ¬®¦Ya ceF«i¤Yai
a«Y¤aie?¬ ®!a §®¬:

#include

void interrupt mybeep(unsigned bp, unsigned di,
unsigned si, unsigned ds, unsigned es, unsigned dx, unsigned
cx, unsigned bx, unsigned ax)
(*
int i, j;
char originalbits, bits;
unsigned char bcount = ax >> 8;

/* ?a?Y¬ aY?ae?a aaa ®c®? a?a c«iieYF® ?®aa  */
bits = originalbits = inportb(0x61);

for (i = 0; i - 249 - /* aY?Yai ¤? ¬??   Y?®a®a®Y caY¬i c?«ic Yaai */ outportb(0x61, bits \! 2); for (j = 0; j - 250 - ?¬i_ae ©« ?¬i ae ©«  (a a ae?aY?Y¬ ?«? !Y§) Faa??  ?¬i Faa??e ?¤Ya?ae?? a®a?¤Ya?ae?? a®a (?¬i ?YaY¬Y®© ?«? ¤aaF®©) i§e?˜ §c ?Y i§e?  ?a®Fa ¬¬?a®c ?i ?®¬?®Ya?¬i ?®¬?®Ya  ¤ ea ?«? aea?ae?? ?®¬?®Ya  a®®!eY?Y‘aa®?  a®®!eY?i ¬®¤a«i ?¬i ¬®¤a«i c?a«®” ?a?cYa?®Y c?a«® ®?ae?i??ae?i ?®¬ ¤®© aaa®?? ?«? ¤aaF i ®?ae?i ? a ¬Yaa?¬i ? a ¬Yaae aYF¬Ya?¬i aYF¬Ya  a?Yae?ae?? a®a‘?Yae?ae?? a®a a??  a?¬c®«?cYa?®Y_?¬i‘?¬c®«?cYa?®Y ?¬i XXXXh4-§ c®Y eYaa ¤ae a?a?c®Y c?a«®, §  ?®a®ae¬ a«Y¤aYa h ------------------------------------------------------------ ‘®®!eY?i ®! ®e?!? a ?YaYc?a«Ye c  «ae c?a®¬ ?®ai¤?Y, ?® aa ae?aaca a?¬c®«®c ASCII; ®!ec® ?Yace¬? ?¤aa a®®!eY- ?i,  c? ie?Yai a?¬c®« ¬? (a cYaac®, § ?ia i, ae?Faa i a?®!?  ? a.¤.). ˜®a?®«i?a a®®!eY?i, c ?®a®aea   ?Yac®¬ ¬YaaY cec®¤?aai ?¬i, a?Yae?ae?cYa?®Y ¤«i ¤ ®© ?a®Fa ¬¬e, Y ¬®Faa !eai a aaa c«Ye ?®  «ae c?aa, a® ®? a ?¦Y  a®¤iaai c  c «i®© c aa? ? ¦¤®F® a??a?  a®®!eY?©. ˜ ?a?¬Ya, Ya«? a c a ?¬YYaai aea?ae?i ‘++ goforit, a® ae ?a?cYa?? ce ¬®¦YaY ?®«ac?ai a®®!eY?Y ®! ®e?!?Y goforit must be declared with no arguments „«i a®F®, ca®!e  ©a? ®??a ?Y ¤ ®F® a®®!eY?i c ia®© F« cY, ?a? ai a«Y¤aYa a®®!eY?Y aea?ae?i must be declared with no arguments c  c «Y a??a?  a®®!eY?© ®! ®e?!? a. …a«? ¦Y Y?®a®a i ?YaY¬Y i c?«ic Yaai c aY?aa a®®!eY- ?i ?®§¦Y ( ?a?¬Ya, "Incorrect command-line argument:  aFa- ¬Ya"), a® a ?®Y a®®!eY?Y ¬®¦®  ©a? ?®  «ae c?aa, c ¤ ®¬ a«ac Y   !a?ca I. ‘®®!eY?i ®! ®e?!? a caY¬Y? ce?®«Y?i ----------------------------------------------------------- ?®«?cYaac® ®e?!®? caY¬Y? ce?®«Y?i c Turbo C++ YcY- «??®. ˜a? ®e?!?? ¬®Faa !eai ®! aa¦Ye c a¦Y ®a?®¬??«?a®c - ®© ? ce?®«iieY©ai ?a®Fa ¬¬Y. ‚ ¤ ®¬ a §¤Y«Y ®? ?YaYc?a- «Ye c  «ae c?a®¬ ?®ai¤?Y ? ?a?c®¤iaai a ®!eiaY?i¬?. ˜a? ®e?!?? ¬®Faa ic«iaiai a«Y¤aac?Y¬ a«ac ©®F® § a?a ?Y ? ¬ia? ?a®Fa ¬¬®©. Abnormal program termination ?c a?©®Y § cYaeY?Y ?a®Fa ¬¬e „ ®Y a®®!eY?Y ¬®¦Ya ?®ic«iaiai, Ya«? ¤«i ce?®«Y?i ?a®Fa ¬¬e Y ¬®¦Ya !eai ce¤Y«Y® ¤®aa a®c®F® ?®«?cYaac  ? - ¬ia?. ˜®«YY ?®¤a®!® ®® a aa¬ aa?c Yaai c ?®aeY a §¤Y« , ? a ieYF®ai ®e?!®? ®?Ya ae?© a ?« c ieY© a®c?®©. ‚e§®c abort a ?¦Y ?a?c®¤?a ? ?®ic«Y?i ¤ ®F® a®®!eY?i. Divide by 0 „Y«Y?Y   ®«i „ ®Y a®®!eY?Y ce¤ Yaai ?a? aeY«®c?a«Y®¬ ¤Y«Y??   - 251 - ®«i,  ?a?¬Ya int n = 0; n = 2 / n; ˜aa ®e?!?a ¬®¦® ®aa«Y¤?ai ?a? ?®¬®e? aea?ae?? signal. ‚ ?a®a?c®¬ a«ac Y ce§ec Yaai abort, ? ?a®Fa ¬¬  § cYae Yaai. Floating point error:Divide by 0. ?e?!?  ®?Ya ae?? a ?« c ieY© a®c?®©:„Y«Y?Y   0. Floating point error:Domain. ?e?!?  ®?Ya ae?? a ?« c ieY© a®c?®©:‚ea®¤ ?§ ®!« aa? ®?- aY¤Y«Y?i. Floating point error:Overflow. ?e?!?  ®?Ya ae?? a ?« c ieY© a®c?®©:˜YaY?®«Y?Y. „ eY ae a «ieY ®e?!?? ic«iiaai a«Y¤aac?Y¬ ®?Ya ae?? a ?« c ieY© a®c?®©, ¤«i ?®a®a®© aY§a«ia a Y ®?aY¤Y«Y. - "„Y«Y?Y   0" ®§ c Ya, ca® aY§a«ia a a cY c a®c- ®aa? +INF ?«? -INF (?«ia ?«? ¬?aa Y®?aY¤Y«Y®aai),  ?- a?¬Ya ¤«i ®?Ya ae?? 1.0/0.0. - "‚ea®¤ ?§ ®!« aa? ®?aY¤Y«Y?i" ®§ c Ya, ca® aY§a«i- a a a cY NAN (not a number - Y c?a«®),  ?a?¬Ya ¤«i 0.0/0.0. - "˜YaY?®«Y?Y" ®§ c Ya, ca® aY§a«ia a a cY +INF (Y®?aY¤Y«Y®aai) ?«? -INF ?a? ?®«®© ?®aYaY a®c®aa?,  ?- a?¬Ya c a«ac Y ?a?ac®Y?i 1e20*1e20 ?YaY¬Y®© a??  double. Floating point error:Partial loss of precision. ?e?!?  ®?Ya ae?? a ?« c ieY© a®c?®©:— aa?c i ?®aYai a®c®aa?. Floating point error:Underflow. ?e?!?  ®?Ya ae?? a ?« c ieY© a®c?®©:?aa?ae aY«i®Y ?YaY- ?®«Y?Y. ˜a? ®a®!eY a?aa ae?? ?® a¬®«c ?i ¬ a??aaiaai, ? a®®!eY- ?i ®! ®e?!? a Y ce¤ iaai. ?aa?ae aY«i®Y ?YaY?®«Y?Y ?aY- ®!a §aYaai c ®«i,  ?®aYa? a®c®aa? ?F®a?aaiaai. ?a¬Y?ai ¬ a?a ¬®¦®, ce§c c _control87. Floating polnt error:Stack fault. ?e?!?  ®?Ya ae?? a ?« c ieY© a®c?®©:‘!®© c aaY?Y. ˜a® a®®!eY?Y a? §ec Ya   cea®¤ §  ?aY¤Y«e aaY?  ?« - c ieY© a®c??. ‚ ®a¬ «iea aa«®c?ia ®® Y ?®ic«iYaai ? ?®i- a®¬a ¬®¦Ya ®§ c ai «?!® a®, ca®  aaY¬!«Yae© ?®¤ ?a?®«i§aYa a«?e?®¬ ¬®F® aYF?aaa®c, «?!® Y?a c?«i®Y ®!eic«Y?Y aea?- ae?? a ?« c ieY© a®c?®©. ˜a®© ®e?!?? ¬®¦® ?§!Y¦ ai, ¬ a??aai ®a®!eY a?aa ae?? a ??¬ ®!a §®¬, ca®!e ®? Y ?®ic«i«?ai, «?!® ?YaYac aec i ?a aea?ae?Y© signal. ‘¬. ?®¤a®!®Y ®??a ?Y aea?ae?© _control87 ? signal c ‘?a c®c??Y ?® !?!«?®aY?Y. ‚ ? ¦¤®¬ ?§ ?a?cY¤Yea a«ac Yc ?a®Fa ¬¬  ?Yc a Ya a®- ®!eY?Y ®! ®e?!?Y ? § aY¬ ce§ec Ya abort, ?®a®a i c ac®i ®cYaY¤i ce¤ Ya a®®!eY?Y Abnormal program termination ? ce§ec Ya _exit(3). ‘¬. ?®¤a®!eY ®??a ?i aea?ae?© abort ? _exit. Null pointer assignment. - 252 - ˜a?ac®Y?Y ?aaa®¬a a? § aY«i ˜a? cea®¤Y ?§ ?a®Fa ¬¬e a ¬®¤Y«ii ? ¬ia? small ?«? medium ce?®«iYaai ?a®cYa? , ca®!e ®?aY¤Y«?ai, !e«? «? ?§¬Y- Ye § cY?i ¤caa ?Yacea ! ©a®c c aYF¬YaY ¤ ea ?a®Fa ¬- ¬e. ˜a? ! ©ae ??®F¤  Y ¤®«¦e ?§¬Yiaiai a !®a ieY© ?a®F- a ¬¬®©. …a«? ¦Y ®? !e«? ?§¬YYe, a® ce¤ Yaai a®®!eY?Y "Null pointer asignment", F®c®aieYY ® a®¬, ca® (cYa®ia®) Y?®a®a®Y § cY?Y !e«® § ??a ® c Y??ae? «?§?a®c e© a? - § aY«i. ‚® caYa ?a®c?a ®a®eY?ia ?a®Fa ¬¬  ¬®¦Ya a !®a ai ?a c?«i®; ®¤ ?® ¤  i ®e?!?  ic«iYaai aYaiY§®© ®e?!?®©, ? Y© a«Y¤aYa § iaiai Y¬Y¤«Y®. …a«? ce Y a¬®¦YaY ?a?a - c?ai Y??ae? «?§?a®c e© a? § aY«i, ia® ?a?cY¤Ya ? Y?aY¤a- ? §aY¬®¬a ?®cY¤Y?i ?®¬?iiaYa  (c?«®ai ¤® YF® "!«®??a®c - ?i" c a«ac Y ¬®¤Y«Y© ? ¬ia? large, compact ? huge.) „«i ®aa«Y¦?c ?i a ??a ®e?!®? ¬®¦Ya a«a¦?ai ?aYFa?a®c e© ®a- « ¤c??, ca®¤ie?© c aaY¤a a §a !®a??. Stack overflow ˜YaY?®«Y?Y aaY?  ˜® a¬®«c ?i a §¬Ya aaY?  ¤«i ?a®Fa ¬¬ Turbo C++ a cY 4,096 ! ©a. „«i !®«ie?aac  ?a®Fa ¬¬ ia®F® ¤®aa a®c®, ®¤ - ?® ?a®Fa ¬¬e a aY?aaa?ce¬? aea?ae?i¬? ?«? !®«ie?¬? ®!eY¬ ¬? «®? «iea ¤ ea ¬®Faa ?YaY?®«?ai aaY?. „ ®Y a®®!eY?Y ce¤ Yaai a®«i?® c a®¬ a«ac Y, ?®F¤  c?«icY® aaY¤aac® ?®a- a®«i aaY? . ˜a? ?®«acY?? ia®F® a®®!eY?i ce ¬®¦YaY ?YaY©a? ? !®«ieY© ¬®¤Y«? ? ¬ia?, acY«?c?ai a §¬Ya aaY? , «?!® a¬Yi- e?ai ?a?®«i§®c ?Y aaY?  c eY© ?a®Fa ¬¬®©. ?ae®a¬ ae?i ® a®¬, ? ? ?§¬Y?ai a §¬Ya aaY?  a ?®¬®eii F«®! «i®© ?YaY¬Y®© _stklen, a¬. c ?« cY 2, "?«®! «ieY ?YaY¬YeY" c ‘?a c®c?- ?Y ?® !?!«?®aY?Y. „«i a¬YieY?i ?®«?cYaac  ?a?®«i§aY¬ea aea?ae?Y© «®? «iea ¤ ea ¬®¦® ?®aaa??ai a ?, ? ? ?®? § ® c ?a?c®¤?¬®¬ ?¦Y ?a?¬YaY. ˜YaY¬Y i buffer ®!eic«Y  ? ? static ? ?®a®¬a, c ®a«?c?Y ®a list, Y a aa®¤aYa aaY?. void anyfunction( void ) (* static int buffer[ 2000 ];/*a §¬Ye Yaai c aYF¬YaY ¤ - ea*/ int list[ 2000 ]; /*a §¬Ye Yaai c aaY?Y*/ *) ?!eic«Y?Y «®? «iea ?YaY¬Yea ? ? static ?¬YYa ¤c  Y¤®aa a? . 1. ’Y?Yai a ? i ?YaY¬Y i § ?¬ Ya ¬Yaa®, ®ac®¤?¬®Y ®!ec® F«®! «ie¬ ?YaY¬Ye¬ ? ?acY. (—a®!e § ?« a?ai ˜ c«a, ?a?a®¤?aai Fa !?ai ˜Yaa ). ?¤ ?® ia®a Y¤®aa a®? Y a ¬e© F« ce©. 2. ”a?ae?i Y ¬®¦Ya !®«YY ic«iaiai aYYaYa !Y«i®©. ˜a® ®§ c Ya, ca® Ya«? aea?ae?i ¤®«¦  ce§ec aiai aY?aaa?c® ?«?  a?aa®®, ? ?a? ia®¬ c ¦®, ca®!e ? ¦¤e© ce§®c aea?ae?? a - !®a « a® ac®Y© a®!aacY®© ?®??Y© ?YaY¬Y®©, a® a ? i ?YaY- ¬Y i Y ¬®¦Ya ic«iaiai aa a?cYa?®©. ˜a® aci§ ® a aY¬, ca® ?a? ? ¦¤®¬ ce§®cY aea?ae?? ¤  i ?YaY¬Y i !a¤Ya § ?¬ ai aa ¦Y a ¬ai ®!« aai ? ¬ia?, c¬Yaa® a®F®, ca®!e Y© a a?aY¤Y- «i« ai cai??© a § ®c i. ’ ?¦Y c®§?? Ya ?a®!«Y¬  a a §¤Y«Y- ?Y¬ ¤®aaa?  ? ?YaY¬Y®©, Ya«? aea?ae?i a®¤Ya¦?a ce§®c a ¬®© aY!i (aY?aaa?c®), «?!® ¤®«¦  ce?®«iaiai ®¤®caY¬Y® a ¬  a a®!®© ( a?aa®®). „«i !®«ie?aac  ?a®Fa ¬¬ DOS ia® Y ?a®!«Y¬ . …a«? ce Y ??eYaY aY?aaa?cea aea?ae?© ? Y a !®a - YaY c ¬a«ia?§ ¤ c®¬ aY¦?¬Y, a® c ¬ Y ® cY¬ !Ya?®?®?aiai. ‚ ?a®a?c®¬ a«ac Y ?a?cY¤YeY ceeY ®!eiaY?i ?®¬®Faa c ¬ a - §®!a aiai, ca® ? cY¬a. ‘®®!eY?i ®! ®e?!? a ?®¬??«ia®a  - 253 - ----------------------------------------------------------- „? F®aa?cYa??Y a®®!eY?i ?®¬??«ia®a  Turbo C++ ¤Y«iaai   aa? ? aYF®a??: ae a «ieY ®e?!??, ®e?!?? ? ?aY¤a?aY¦¤Y?i. ” a «ieY ®e?!?? caaaYc iaai aY¤?®. ˜Y?®a®aeY ?§ ?a ®!®§ c ia caaaYii ®e?!?a ?®¬??«ia®a . ‚ a«ac Y ae a «i®© ®e?!?? ?®¬??«iae?i Y¬Y¤«Y® ?aY?a e Yaai. „ «YY ce ¤®«¦e ?aY¤?a?iai a®®acYaaacaie?Y ¤Y©aac?i ? § aY¬ ?®ca®a?ai ?®¬- ??«iae?i. ?e?!?? ®!®§ c ia a?a ?a?cYa??Y ®e?!?? ?a®Fa ¬¬e, ®e?!?? ¤®aaa?  ? ¤?a?a ?«? ? ? ¬ia?,   a ?¦Y ®e?!?? ?®¬ ¤- ®© aaa®??. ?®¬??«ia®a § ?®c?a aY?aeai ae §a ?®¬??«iae?? ? ®aa ®c?aai. ˜  ? ¦¤®© ae §Y (?aY?a®aeYaa®a, «Y?a?cYa??©   - «?§, ®?a?¬?§ ae?i ? FYYa ae?i ?®¤ ) ?®¬??«ia®a ?ea Yaai  ©a? aa®«i?® ae ?a?cYa??a ®e?!®?, a?®«i?® c®§¬®¦®. ˜aY¤a?aY¦¤Y?i Y ?a?c®¤ia ? ®aa ®c?Y a !®ae ?®¬??«i- a®a . ?? «?ei a? §ec ia   a?aa ae??, ?®a®aeY ? ¦aaai ?®¬??- «ia®aa ?®¤®§a?aY«ie¬?, ® ic«iiaai ¤®?aaa?¬e¬? a a®c?? §aY- ?i i§e? . ?®¬??«ia®a a ?¦Y ce¤ Ya ?aY¤a?aY¦¤Y?i ®  «?c?? c ?aa®¤ea ae ©« a ¬ e?®-§ c?a?¬ea ?®aaaa?ae?©. ‚ a®®!eY?? ?®¬??«ia®a a c «  a? §ec Ya ?« aa ia®F® a®®!eY?i, § aY¬ ?¬i ?aa®¤®F® ae ©« , ¤ «YY ®¬Ya aaa®??, c ?®a®a®© ®! aa¦Y  ®e?!? , ?  ?®Yae, a®!aacY® aY?aa a®®!- eY?i ®! ®e?!?Y. ‚ ?a?c®¤?¬ea ?¦Y ?YaYcia a®®!eY?i ®! ®e?!? a ?aY¤a- a c«Ye ?® ?« aa ¬ c  «ae c?a®¬ ?®ai¤?Y. „«i ? ¦¤®F® a®®!eY- ?i ?a?c®¤?aai c®§¬®¦ i ?a?c?  YF® ?®ic«Y?i ? aY?®¬Y¤ ae?? ?® aaaa Y?i ®e?!??. ‚e ¤®«¦e § ai ® ®¬Ya a aaa®? c a®®!eY?ia a«Y¤aieYY: ?®¬??«ia®a FYYa?aaYa a®®!eY?i ®! ®e?!? a ?® ¬YaY ?a ®! - aa¦Y?i. ˜®a?®«i?a ‘ ?? ? Y aYF« ¬Ya?aaYa a §¬YeY?Y ®?Y- a a®a®c ?® aaa®? ¬ aY?aa , ?aa? i ?a?c?  ®e?!?? ¬®¦Ya  - a®¤?aiai Ya?®«i??¬? aaa®? ¬? ceeY, cY¬ a? §  i c a®®!eY?? aaa®? . ‚ a«Y¤aie?a ?YaYcia a®®!eY?© ¬e ®a¬Ya?«? aY ?§ ?a, ?®a®aeY c aa®   a ¬®¬ ¤Y«Y  a®¤iaai ceeY, Y¦Y- «? aaa®? , a? §  i ?®¬??«ia®a®¬. ” a «ieY ®e?!?? ----------------------------------------------------------- Bad call of inline function ˜Y?a c?«ie© ce§®c caaa®Y®© aea?ae?? ‚e ce§c «? caaa®Yai aea?ae?i ?§ ¬ ?a® ®?aY¤Y«Y?i, ® a¤Y« «? ia® Y?a c?«i®. ‚aaa®Y i aea?ae?i c ‘ ¤®«¦   c?-  aiai ¤ca¬i a?¬c®« ¬? ?®¤cYa??c ?i (__). Irreducible expression tree ˜Ya?a®e Y¬®Y ¤YaYc® cea ¦Y?i ˜a® a®®!eY?Y a? §ec Ya   Y?®a®aai ®e?!?a ?®¬??«ia®- a . ‚ea ¦Y?Y c a? § ®© aaa®?Y ?aa®¤®F® ae ©«  ce§c «® aa- «®c?Y, ?®F¤  FYYa a®a ?®¤  Y ¬®¦Ya ce?®«?ai ac®i a !®aa. ? ? !e ia® cea ¦Y?Y ? !e«® Y®!a®¤?¬e¬, YF® a«Y¤aYa ?YaY- ??a ai. ‚ a«ac Y, Ya«? ce ?®«ac?aY a ?®Y a®®!eY?Y, acY¤®¬i- aY ®! ia®¬ Borland. Out of memory ˜Y¤®aa a®c® ? ¬ia? ?acYa?   ®!e i a !®c i ? ¬iai. ˜®ca®a?aY ?®¬??«iae?i - 254 - ia®F® ae ©«    ¬ e?Y a !®«ieY© ¤®aaa?®© ? ¬iaii. …a«? a c a ? a ? ?¬YYaai 640?, a«Y¤aYa a?a®aa?ai ?aa®¤e© ae ©«. Register allocation error ?e?!?  a a?aY¤Y«Y?i aYF?aaa®c ˜a® a®®!eY?Y a? §ec Ya   Y?®a®aai ®e?!?a ?®¬??«ia®- a . ‚ea ¦Y?Y c a? § ®© aaa®?Y ?aa®¤®F® ae ©«  ®? § «®ai  aa®«i?® a«®¦e¬, ca® FYYa a®a ?®¤  Y a¬®F ce?®«?ai ac®i a !®aa. “?a®aa?aY ia® cea ¦Y?Y. …a«? ia® Y ?®¬®F«®, ?®aa - a ©aYai ®!®©a?ai !Y§ YF®. ‚ a«ac Y, Ya«? ce ?®«ac?aY a ?®Y a®®!eY?Y, acY¤®¬iaY ®! ia®¬ Borland. ?e?!?? ----------------------------------------------------------- ?®aaaa?a®a cannot return a value ?®aaaa?a®a Y ¬®¦Ya c®§ca e ai § cY?Y ?®aaaa?a®a ‘++ Y ¬®¦Ya ?¬Yai cea ¦Y?i c ®?Ya a®aY c®§ca a . ?®aaaa?a®a is not a base class of ?« aa ?®aaaa?a®a Y ®a®a?aai ? ! §®c®¬a ?« aaa ?« aa ?®aaaa?a®a ?« aa  ‘++ "?« aa" ?ea Yaai ce§c ai ?®a- aaa?a®a ! §®c®F® ?« aa  "?®aaaa?a®a", «?!® ce ?ea YaYai ?§- ¬Y?ai ?a c  ¤®aaa?  ?« aa::?®aaaa?a®a. ?®aaaa?a®a Y ®a- ®a?aai ? ! §®c®¬a ?« aaa "?« aa". ˜a®cYaiaY ®!eic«Y?i. aea?ae?i1 cannot be distingulshed from aea?ae?i2 aea?ae?i1 Y ®a«?c Yaai ®a aea?ae??2 ‘??a?? a??®c ? a ¬Yaa®c c ®!eic«Y?ia ia?a ¤caa aea?ae?© Y¤®aa a®c® ®a«?c iaai, ca®!e ia? aea?ae?? ®a«?c «?ai ¤aaF ®a ¤aaF . ˜®?ea ©aYai ?§¬Y?ai c ®!eic«Y?? ®¤®© ?§ ?a ?®a«Y¤®c aY«i®aai ?«? a?? ? a ¬Yaa®c. aea?ae?i is ambiguous aea?ae?i Y®¤®§ c  „ ®¬a ce§®ca "aea?ae??" a®®acYaaacaYa ?® a??a?a  aFa- ¬Ya®c !®«YY ®¤®© ?YaYFaa¦Y®© aea?ae?? (a acYa®¬ ?aY®!a - §®c ?i  aFa¬Ya®c ?® a¬®«c ?i). ?a?®«i§a©aY ic®Y ?a?cY¤Y- ?Y a??®c ®¤®F® ?«? !®«YY  aFa¬Ya®c ¤«i a §aYeY?i ia®© Y®¤®§ c®aa?. aea?ae?i must be declared with no arguments aea?ae?i ¤®«¦  !eai ®!eic«Y  !Y§  aFa¬Ya®c „  i aea?ae?i-®?Ya ae?i ‘++ !e«  Y?a c?«i® ®!eic«Y  a  aFa¬Ya ¬?. aea?ae?i must be declared with one argument aea?ae?i ¤®«¦  !eai ®!eic«Y  a ®¤?¬  aFa¬Ya®¬ „  i aea?ae?i-®?Ya ae?i ‘++ !e«  Y?a c?«i® ®!eic«Y  a !®«YY cY¬ ®¤?¬  aFa¬Ya®¬ aea?ae?i must be declared with two arguments aea?ae?i ¤®«¦  !eai ®!eic«Y  a ¤ca¬i  aFa¬Ya ¬? - 255 - „  i aea?ae?i-®?Ya ae?i ‘++ !e«  Y?a c?«i® ®!eic«Y  a c?a«®¬  aFa¬Ya®c, ®a«?ce¬ ®a ¤caa. aea?ae?i was previously declared without static aea?ae?i !e«  a YY ®!eic«Y  !Y§  aa?!aa  static ‡¤Yai aea?ae?i ®!eic«Y  ? ? static, a®F¤  ? ? ceeY ®  !e«  ®!eic«Y  ? ? extern (?«? global). ANSI C Y ?®§c®«iYa a¬Ye?c ai ia? ®!eic«Y?i. aea?ae?i was previously declared with the language i§e? aea?ae?i !e«  ceeY ®!eic«Y  a ¬®¤?ae?? a®a®¬ i§e?  "i§e?" ”a?ae?i ¬®¦Ya ?¬Yai a®«i?® ®¤? ¬®¤?ae?? a®a i§e?  (cdecl, pascal ?«? interrupt). „  i aea?ae?i c ¤caa ¬Yaa a !e«  ®!eic«Y  a ¤ca¬i a §e¬? ¬®¤?ae?? a®a ¬? i§e? . ?¤Ya?ae?? a®a cannot be declared in an anonymous union ?¤Ya?ae?? a®a Y ¬®¦Ya !eai ®!eic«Y c  ®?¬®¬ ®!eY¤?Y?? ?®¬??«ia®a ®! aa¦?« ®!eic«Y?Y aea?ae?? ?®¬?®Ya ?«? aa a?cYa?®F® ?®¬?®Ya  c  ®?¬®¬ ®!eY¤?Y??. ’ ??Y ®!e- Y¤?Y?i ¬®Faa a®¤Ya¦ ai a®«i?® ?®¬?®Yae ¤ eY. ?¤Ya?ae?? a®a cannot be used in a static member function ?¤Ya?ae?? a®a Y ¬®¦Ya ?a?®«i§®c aiai c aa a?cYa?®© aea?ae??- ?®¬?®YaY ‘a a?cYa? i aea?ae?i-?®¬?®Ya ¬®¦Ya ?a?®«i§®c ai a®«i?® aa a?cYa??Y ?®¬?®Yae ac®YF® ?« aa , a®ai ? ?¬YYa ?®«eY ?a c  ¤®aaa? . „  i ®e?!?  ic«iYaai aY§a«ia a®¬ ?®?ea?? ?a?®«i§®c ?i ?®¬?®Ya , ¤«i ?®a®a®F® aaY!aYaai a? § aY«i this. ?¤Ya?ae?? a®a is inaccessible because also in ?« aa ?¤Ya?ae?? a®a Y¤®aaa?Y ?®a?®«i?a a ?¦Y ?a?®«i§aYaai c ?« aaY ˜Y¤®?aaa?¬® ?a?®«i§®c ai ?« aa c ? cYaacY ? ?ai¬®F®, ? ?®acY®F® ! §®c®F® ?« aa , ?®a?®«i?a ?®«i YF®  ca®¬ a?cYa?? aa ®ciaai Y®¤®§ ce¬?. ˜®?ea ©aYai a¤Y« ai ! §®ce© ?« aa c?aaa «ie¬ c ®!®?a ¬Yaa a. ?¤Ya?ae?? a®a is not a data member and can't be initlallzed here ?¤Ya?ae?? a®a Y ic«iYaai ?®¬?®Ya®¬ ¤ ea ? Y ¬®¦Ya !eai §¤Yai ??ae? «?§?a®c  ‚ ??ae? «?§ a®a a ?®aaaa?a®a  ¤®?aa? Yaai ??ae? «?§ - ae?i a®«i?® ?®¬?®Ya®c ¤ ea. ˜a® a®®!eY?Y ®§ c Ya,ca® a??a®? c?«ic Ya c aY!i aa a?cYa??© ?®¬?®Ya ?«? aea?- ae?i-?®¬?®Ya. ?¤Ya?ae?? a®a is not a member of struct ?¤Ya?ae?? a®a Y ic«iYaai ?®¬?®Ya®¬ aaaa?aaae ‚e ?ea YaYai a®a« aiai  ?¤Ya?ae?? a®a, ? ?   ?®¬?®- Ya aaaa?aaae, c a® caY¬i ? ? ® Y ic«iYaai ?®¬?®Ya®¬ aaaa?aaae. - 256 - ˜a®cYaiaY ®!eic«Y?i. ?¤Ya?ae?? a®a is not a parameter ?¤Ya?ae?? a®a Y ic«iYaai ? a ¬Yaa®¬ ‚ a §¤Y«Y ®!eic«Y?i ? a ¬Yaa®c ®?aY¤Y«Y?i aea?ae?? ?® ®!a §aea aa aea cYaa?© ?¤Ya?ae?? a®a ®!eic«Y, ® Y ?YaYc?a- «Y c a??a?Y ? a ¬Yaa®c. ‹?!® a!Ya?aY ®!eic«Y?Y, «?!® ¤®- ! ciaY ?¤Ya?ae?? a®a c ? cYaacY ? a ¬Yaa . ?¤Ya?ae?? a®a is not legal here ?¤Ya?ae?? a®a §¤Yai Y¤®?aaa?¬ ‘?Yae?ae?? a®a a??  "?¤Ya?ae?? a®a" §¤Yai Y¤®?aaa?¬, ?®a?®«i?a ® ?a®a?c®aYc?a ?«? ¤a!«?aaYa ¤aaF®© a?Yae?ae?? a®a a??  c ¤ ®¬ ®!eic«Y??, «?!® ?®a®¬a, ca® "?¤Ya?ae?? a®a" ?a?®«i§aYaai c ? cYaacY ?¬Y? typedef, a®F¤  ? ? ?¬Y? typedef c ¤ ®¬ ?®aY?aaY !eai Y ¬®¦Ya. ?¤Ya?ae?? a®a is virtual and cannot be explicitly initialized ?¤Ya?ae?? a®a c?aaa «ie© ? Y ¬®¦Ya !eai ic® ??ae? - «?§?a®c  ?®aaaa?a®a ?« aa  ‘++ ?ea Yaai ce§c ai "?¤Ya?ae?? - a®a" ?®aaaa?a®a  ! §®c®F® ?« aa , ®¤ ?® ia®a ?¤Ya?ae?? a®a ®a®a?aai ? c?aaa «i®¬a ! §®c®¬a ?« aaa. ‚?aaa «ieY ! §®- ceY ?« aae Y ¬®Faa !eai ??ae? «?§?a®c e ic®. ?®¬??«ia®a Yic® ce§ec Ya ?®aaaa?a®a ! §®c®F® ?« aa  ?® a¬®«c ?i base::base(). ?¤Ya?ae?? a®a must be a member function ?¤Ya?ae?? a®a ¤®«¦Y !eai aea?ae?Y©-?®¬?®Ya®¬ ˜®«ie?aac® aea?ae?©-®?Ya ae?© ‘++ ¬®¦Ya ic«iaiai ?®¬?®- Ya ¬? ?« aa®c ?«? ®!ece¬? aea?ae?i¬?, Y ca®¤ie?¬? c ?« aa, ®¤ ?® Y?®a®aeY ?§ ?a ®!i§ aY«i® ¤®«¦e !eai ?®¬- ?®Ya ¬? ?« aa . ˜a® aea?ae?? operator =, operator ->,
operator() ? ?aY®!a §®c ?i a??®c. „  i aea?ae?i Y ic«iYa-
ai aea?ae?Y©-?®¬?®Ya®¬, ® ¤®«¦  ic«iaiai a ?®c®©.

?¤Ya?ae?? a®a must be a member function or have an argument
of class type
?¤Ya?ae?? a®a ¤®«¦Y !eai aea?ae?Y©-?®¬?®Ya®¬ ?«?
?¬Yai  aFa¬Ya a??  ?« aa 

˜®«ie?aac® aea?ae?©-®?Ya ae?© ‘++ ¤®«¦® ?¬Yai Yice©
?«? ice©  aFa¬Ya a??  ?« aa . „  i aea?ae?i-®?Ya ae?i !e« 
®!eic«Y  cY ?« aa  ? Y ?¬YYa ic®F®  aFa¬Ya  a??  ?« a-
a .

?¤Ya?ae?? a®a must be a previously defined class or struct
?¤Ya?ae?? a®a ¤®«¦Y !eai a YY ®!eic«Ye¬ ?« aa®¬ ?«?
aaaa?aaa®©

‚e ?ea YaYai ®!eic?ai ?¤Ya?ae?? a®a ? ? ! §®ce© ?« aa,
a®F¤  ? ? ® «?!® Y ic«iYaai ?« aa®¬, «?!® Y !e« YeY ?®«-
®aaii ®?aY¤Y«Y. ?a?a ciaY ?¬i ?«? aY®aF ?§a©aY ®!eic«Y-

– 257 –
?i.

?¤Ya?ae?? a®a must be a previoustly defined enumeration tag
?¤Ya?ae?? a®a ¤®«¦Y !eai a YY ®?aY¤Y«Ye¬ aYF®¬ ?Y-
aYc?a«?¬®F® a?? 

„ ®Y ®!eic«Y?Y ?ea Yaai ®!a a?aiai ? ?¤Ya?ae?? a®aa,
? ? ? aYFa a??  enum, a®F¤  ? ? ® Y !e« ®!eic«Y c ? cYaa-
cY a ?®c®F®. ?a?a ciaY ?¬i ?«? aY®aF ?§a©aY ®!eic«Y?i.

?¤Ya?ae?? a®a must be a previoustly defined structuretag
?¤Ya?ae?? a®a ¤®«¦Y !eai a YY ®?aY¤Y«Ye¬ aYF®¬ aaaa?aaae

„ ®Y ®!eic«Y?Y ?ea Yaai ®!a a?aiai ? ?¤Ya?ae?? a®aa,
? ? ? aYFa aaaa?aaae, a®F¤  ? ? ® Y !e« ®!eic«Y c ? cYaa-
cY a ?®c®F®.
?a?a ciaY ?¬i ?«? aY®aF ?§a©aY ®!eic«Y?i.

?¤Ya?ae?? a®a specifies multiple or duplicate access
?¤Ya?ae?? a®a § ¤ Ya ¬®F®?a ae© ?«? ¤a!«?aaie?©ai ¤®aaa?

˜ §®ce© ?« aa ¤®«¦Y !eai ®!eic«Y ? ? public ?«?
private, ® Y a® ? ¤aaF®Y ®¤®caY¬Y®. ‘?Yae?ae?? a®a ¤®aaa-
?  Y ¤®«¦Y § ¤ c aiai ¤«i ! §®c®F® ?« aa  !®«YY ®¤®F® a –
§ .

?®¬?®Ya is not accessible
?®¬?®Ya Y¤®aaa?Y

‚e ?ea YaYai a®a« aiai   “?®¬?®Ya” ?« aa  ‘++, ?®a®-
ae© ?¬YYa aa?!aa ¤®aaa?  private ?«?protected ? Y¤®aaa?Y
?§ ¤ ®© aea?ae??. ˜a® ?®F¤  a«ac Yaai ?a? ?®?ea?Y ce§®c 
¤®aaa?®© ?YaYFaa¦ Y¬®© aea?ae??-?®¬?®Ya  (?«? ?®aaaa?a®-
a ), ?®F¤  § ¤ eY ?a? ia®¬  aFa¬Yae a®c? ¤ iaa  aFa¬Ya –
¬?Y¤®aaa?®© aea?ae??. ˜YaY¤ ?a®cYa?®© ¤®aaa?®aa? caYF¤ 
ce?®«iYaai ?a®cYa?  a §aYeY?i ?YaYFaa§??. …a«? ?a®!«Y¬ 
?¬Y® c ia®¬, a® ¤«i ce!®a  ¦Y« Y¬®© ¤®aaa?®© aea?ae?? ?®-
?ea ©aYai ic® ce?®«?ai ?a?cY¤Y?Y a??  ¤«i ®¤®F® ?«? !®-
«YY ? a ¬Yaa®c.

a?Yae?ae?? a®a has already been included
a?Yae?ae?? a®a a¦Y !e« c?«icY

„ e© a?Yae?ae?? a®a a??  caaaYc Yaai c ®!eic«Y?? !®«YY
®¤®F® a § . “¤ «?aY ?«? ?§¬Y?aY ®¤? ?§ ?a

= expected
= ®¦?¤ Yaai

?¦?¤ « ai ®?Ya ae?i ?a?ac®Y?i ¤«i ??ae? «?§ ae?? ?YaY-
¬Y®©.

– 258 –

, expected
, ®¦?¤ Yaai

‚ a??a?Y ®!eic«Y?©, ??ae? «?§ ae?? ?«? ? a ¬Yaa®c ®¦?-
¤ Yaai § ?ia i.

(* epected
(* ®¦?¤ Yaai

‚ ? cYaacY  c «  !«®?  ?«? ??ae? «?§ ae?? ®¦?¤ Yaai «Y-
c i ae?Faa i a?®!? .

( expected
( ®¦?¤ Yaai

˜YaY¤ a??a?®¬ ? a ¬Yaa®c ®¦?¤ Yaai «Yc i ?aaF« i
a?®!? .

*) expected
*) ®¦?¤ Yaai

‚ ?®aeY !«®?  ?«? ??ae? «?§ ae?? ®¦?¤ Yaai ?a c i ae?Faa-
 i a?®!? .

) expected
) ®¦?¤ Yaai

‚ ?®aeY a??a?  ? a ¬Yaa®c ®¦?¤ Yaai ?a c i ?aaF« i
a?®!? .

: expected alter private/protected/publlc
: ®¦?¤ Yaai ?®a«Y private/protected/public

˜a? ?a?®«i§®c ?? aY§Yac?a®c ea a«®c
private/protected/public ¤«i a®F®, ca®!e  c ai a®®acYaaaca-
ie?© a §¤Y« ?« aa  ‘++, §  ?¬? ¤®«¦® a«Y¤®c ai ¤c®Ya®c?Y.

::requires a preceding identifier in this context
c ¤ ®¬ ?®aY?aaY ?YaY¤ :: aaY!aYaai ?¤Ya?ae?? a®a

‚ ‘++ c ®!eic«Y?? caaaYa?«®ai ¤c®©®Y ¤c®Ya®c?Y !Y§
?aY¤eYaacaieYF® ?c «?ae?ae?aaieYF® ?¬Y? ?« aa . ˜Y?c «?ae?ae?-
a®c ®Y ¤c®©®Y ¤c®Ya®c?Y ¬®¦Ya ?a?®«i§®c aiai a®«i?® c ce-
a ¦Y?ia ¤«i ®!®§ cY?i F«®! «i®F® ?®aY?aa ,   Y c ®!e-
ic«Y?ia.

.* operands do not match
®?Ya ¤e .* Y a®®acYaaacaia

‚e Y ®!eic?«? ®?Ya ¤ ?a c®© c aa? ®?Ya ae?? ‘++ (.*)
? ? a? § aY«i   ?®¬?®Ya ?« aa , § ¤ e© «Yce¬ ®?Ya ¤®¬.

– 259 –

# operator not followed by macro argument name
§  ®?Ya ae?Y© # Y a«Y¤aYa ?¬i  aFa¬Ya  ¬ ?a®a 

‚ ¬ ?a® ®?aY¤Y«Y?? a?¬c®« # ¬®¦Ya !eai ?a?®«i§®c  ¤«i
®!®§ cY?i ?aY®!a §®c ?i  aFa¬Ya  ¬ ?a®a  c aaa®?a. ‡  #
¤®«¦® a«Y¤®c ai ?¬i  aFa¬Ya  ¬ ?a®a .

Access can only be changed to public or procted
’?? ¤®aaa?  ¬®¦Ya !eai ?§¬YY a®«i?®   public ?«?
protected

˜a®?§c®¤e© ?« aa ‘++ ¬®¦Ya ¬®¤?ae?ae?a®c ai ?a c  ¤®aaa-
?  c«Y ! §®c®F® ?« aa , ® a®«i?®   public ?«? protected.
?®¬?®Ya ! §®c®F® ?« aa  Y«i§i a¤Y« ai private.

Access declarations cannot grant or reduce access
?!eic«Y?i ¤®aaa?  Y ¬®Faa ?®cea?ai ?«? ?®?§?ai ?a c 
¤®aaa? 

˜a®?§c®¤e© ?« aa ‘++ ¬®¦Ya ¬®¤?ae?ae?a®c ai ?a c  ¤®aaa-
?  c«Y  ! §®c®F® ?« aa , ® a®«i?® ?aaY¬ c®aaa ®c«Y?i
?a c ! §®c®F® ?« aa . ? Y ¬®¦Ya ?®cea?ai ?«? ?®?§?ai ?a –
c  ¤®aaa? .

Access specifier a?Yae?ae?? a®a found in a union
‘?Yae?ae?? a®a ¤®aaa?  caaaYa?«ai c ®!eY¤?Y??

‘?Yae?ae?? a®ae ¤®aaa?  ‘++ (public, private ?«?
protected) Y ¬®Faa  a®¤?aiai c ®!eY¤?Y?ia.

Ambiquity between aea?ae?i1 and aea?ae?i2
˜Y®¤®§ c®aai ¬Y¦¤a aea?ae?Y©1 ? aea?ae?Y©2

‘ ?YaY¤ e¬? ? a ¬Yaa ¬? ¬®Faa ?a?®«i§®c aiai ®!Y  §-
c eY ?YaYFaa¦YeY aea?ae??. ’ ? i Y®¤®§ c®aai Y¤®?aa-
a?¬ .

Ambiquous conversion functions: a??1 and a??2
˜Y®¤®§ c®aai aea?ae?© ?aY®!a §®c ?i: a??1 ? a??2

?®¬??«ia®a  eY« !®«YY ®¤®F® a?®a®!  ?aY®!a §®c ?i
¤ ®F® a??  c ¦Y« Y¬e©. ’ ? i Y®¤®§ c®aai Y¤®?aaa?¬ .

Array bounds missing ]
‚ § ¤ ?? Fa ?ae ¬ aa?c  ®aaaaaacaYa ]

‚ ?aa®¤®¬ ae ©«Y c ®!eic«Y?? Fa ?ae ¬ aa?c  ®aaaaaaca-
Ya § ?aec ie i ?c ¤a a i a?®!? .

Array must have at least one element
? aa?c ¤®«¦Y ?¬Yai a®ai !e ®¤? i«Y¬Ya

– 260 –

ANSI C ? ‘++ aaY!aia, ca®!e ¬ aa?c ®?aY¤Y«i«ai a®ai !e
a ®¤?¬ i«Y¬Ya®¬ (®!eY?ae a«Yc®F® a §¬Ya  Y¤®?aaa?¬e).
‘aeYaacaYa aa ae© ?a®Fa ¬¬?aaa??© ?a?Y¬, a®aa®ie?© c a®¬,
ca®!e ®!eic?ai i«Y¬Ya aaaa?aaae a??  ¬ aa?c  a«Yc®F® a §-
¬Ya ,   a¦Y § aY¬ ?a? ?®¬®e? malloc a a?aY¤Y«?ai ae ?a?cYa??
aaY!aY¬ai ? ¬iai. ˜a®a ?a?Y¬ ?®-?aY¦Y¬a ¬®¦® ?a?®«i§®c ai,
® aY?Yai ce ®!i§ e ®!eic«iai ¬ aa?c ? ? ?¬Yie?© (? ? ¬??-
¬a¬) ®¤? i«Y¬Ya. ˜ §a¬YYaai, ®!eic«Y?i (c ?a®a?c®?®«®¦-
®aai ®?aY¤Y«Y?i¬) ¬ aa?c®c Y?§cYaa®F® a §¬Ya  ¤®?aaa?¬e.

˜ ?a?¬Ya,

char ray[] /* ®?aY¤Y«Y?Y ¬ aa?c  Y?§cYaa®F® a §¬Ya 
Y¤®?aaa?¬® */
char ray[0] /* ®?aY¤Y«Y?Y ¬ aa?c  a«Yc®F® a §¬Ya  Y-
¤®?aaa?¬® */

Array of references is not allowed
? aa?c aae«®? Y¤®?aaa?¬

? aa?c aae«®? Y¤®?aaa?¬, ?®a?®«i?a a? § aY«?   aae«??
Y¤®?aaa?¬e,   ?¬Y  ¬ aa?c®c caaa ?c iaai c a? § aY«?.

Array size too lange
˜ §¬Ya ¬ aa?c  a«?e?®¬ cY«??

?!eic«Ye© ¬ aa?c ?aYcee Ya 64?.

Assembler statement too long
‘«?e?®¬ ¤«?e©  aaY¬!«Yae© ®?Ya a®a

??Ya a®ae caaa®Y®F®  aaY¬!«?a®c ?i Y ¬®Faa ?aYce-
e ai ?® ¤«?Y 480 ! ©a®c.

Attempting to return a reference to local name ?¤Ya?ae?? a®a
˜®?ea?  cYaaai aae«?a   «®? «i®Y ?¬i ?¤Ya?ae?? a®a

„  i aea?ae?i ‘++ c®§ca e Ya § cY?Y a??  aae«??, ?
ce ?ea YaYai cYaaai aae«?a   «®? «iai (¤? ¬?cYa?ai) ?Y-
aY¬Yai. ˜a® Y¤®?aaa?¬®, ?®a?®«i?a a ? i ?YaY¬Y i ?a?
cea®¤Y ?§ aea?ae?? a §aae Yaai. ‚e ¬®¦YaY cYaaai aae«?a  
«i!ai aa a?cYa?ai ?«? F«®! «iai ?YaY¬Yai, «?!® ?§¬Y?ai
aea?ae?i a ??¬ ®!a §®¬, ca®!e c®§ca e « ai Y aae«? ,   a ¬®
§ cY?Y.

Bad file name format in inciude directive
˜Y?a c?«ie© ae®a¬ a ?¬Y? ae ©«  c ¤?aY?a?cY c?«icY?i

?¬Y  c?«ic Y¬ea ae ©«®c ¤®«¦e § ?«ic aiai c ? cec??
(“?¬i_ae ©« .h”) ?«? c aF«®ceY a?®!?? (¬i_ae ©« .h>). ˜YaY¤
?¬YY¬ ae ©«  ®aaaaaac®c «  ®a?aec ie i ? cec?  ?«? aF«®c i
a?®!? . …a«? ?a?®«i§®c «ai ¬ ?a®a, a® aY§a«ia?aaie?© aY?aa
a ae?aY?i YcYaY; a.Y., ® Y c§ia c ? cec??.

– 261 –
Bad ifdef directive synfax
˜YcYae© a?a ?a?a ¤?aY?a?ce ifdef

„?aY?a?c  ifdef ¤®«¦  a®¤Ya¦ ai c ? cYaacY aY«  ¤?aY?-
a?ce Y¤?aacYe© ?¤Ya?ae?? a®a (? ?cYF® !®«YY).

Bad ifndef directive synfax
˜YcYae© a?a ?a?a ¤?aY?a?ce ifndef

„?aY?a?c  ifndef ¤®«¦  a®¤Ya¦ ai c ? cYaacY aY«  ¤?-
aY?a?ce Y¤?aacYe© ?¤Ya?ae?? a®a (? ?cYF® !®«YY).

Bad return type for a type conversion operator
˜YcYae© a?? c®§ca a  c ®?Ya ae?? ?aY®!a §®c ?i a?? 

„  i aea?ae?i-?®¬?®Ya ?aY®!a §®c ?i a??  ‘++§ ¤ Ya-
a?? c®§ca a , ®a«?ce© ®a a?? a ¬®© aea?ae??. ?!eic«Y?Y
aea?ae?? ?aY®!a §®c ?i operator T ¬®¦Ya Y § ¤ c ai a?? 
c®§ca a  c®®!eY.

Bad syntax for pure function definition
˜YcYae© a?a ?a?a ®?aY¤Y«Y?i “c?aa®©” aea?ae??

—?aaeY c?aaa «ieY aea?ae?? § ¤ iaai ¤®! c«Y?Y¬ c ®?aY-
¤Y«Y?Y a?¬c®«®c “=0”. ‚e  ??a «? ca®-«?!® ?®a®¦YY, ® Y
a®c? ¤ ieYY a aaY!aY¬e¬ c a®c®aa?.

Bad undef directive syntax
˜YcYae© a?a ?a?a ¤?aY?a?ce undef

„?aY?a?c  #undef ¤®«¦  a®¤Ya¦ ai c ? cYaacY aY«  ¤?-
aY?a?ce Y¤?aacYe© ?¤Ya?ae?? a®a (? ?cYF® !®«YY).

Base class ?« aa is included more than once
˜ §®ce© ?« aa c?«icY !®«YY ®¤®F® a § 

?« aa ‘++ ¬®¦Ya !eai ?a®?§c®¤e¬ ®a «i!®F® c?a«  ! §®-
cea ?« aa®c, ® Y?®aaY¤aacY® ®a ®¤®F® ? a®F® ¦Y ?« aa 
® ¬®¦Ya !eai ?a®?§c®¤e¬ a®«i?® ®¤? a §.

Base class ?« aa is initialized more than once
˜ §®ce© ?« aa ??ae? «?§?aaYaai !®«YY ®¤®F® a § 

‚ ?®aaaa?a®aY ?« aa  ‘++ a??a®? ??ae? «?§ ae??, a«Y¤ai-
e?© §  § F®«®c?®¬ ?®aaaa?a®a , c?«ic Ya a? § e© ! §®ce©
?« aa !®«YY ®¤®F® a § .

Base class cannot be declared protected
˜ §®ce© ?« aa Y ¬®¦Ya !eai ®!eic«Y ? ? protected

˜ §®ce© ?« aa ‘++ ¬®¦Ya !eai public ?«? private, ® Y
protected.

– 262 –
Bit field cannot be static
˜?a®c®Y ?®«Y Y ¬®¦Ya !eai static

’®«i?® ®!eceY ¤ eY-?®¬?®Yae ?« aa®c ‘++¬®Faa !eai
®!eic«Ye ? ? static, ® Y !?a®ceY ?®«i.

Bit fields must be signed or unsigned int
˜?a®ceY ?®«i ¤®«¦e !eai signed ?«? unsigned int

˜?a®c®Y ?®«Y ¤®«¦® !eai ®!eic«Y® a ?aYFa «ie¬ a??®¬
signed ?«? unsigned. ‚ ANSI C !?a®ceY ?®«i ¬®Faa !eai a®«i?®
signed ?«? unsigned int (® Y char ?«? long).

Bit fields must contain at least one bit
˜?a®ceY ?®«i ¤®«¦e a®¤Ya¦ ai ? ? ¬??¬a¬ ®¤? !?a

‚e Y ¬®¦YaY ®!eic?ai ?¬Y®c ®Y !?a®c®Y ?®«Y ¤«?®© 0
(?«? ¬YYY 0) !?a®c. ?®¦® ®!eic?ai !?a®c®Y ?®«Y a«Yc®©
¤«?e !Y§ ?¬Y?, ?® a®F« eY?i ?a?®«i§aY¬®Y ¤«i ?a?a¤?aY«i-
®© aaa ®c?? cea c?c ?i !?a®c®F® ?®«i ?® Fa ?aeY ! ©a 
(?«? ?® Fa ?aeY a«®c , Ya«? ce!a   ®?ae?i cea c?c ?i -a).

Bit field too large
˜?a®c®Y ?®«Y a«?e?®¬ cY«??®

„  i ®e?!?  c®§?? Ya ?a? ?®?ea?Y ®?aY¤Y«Y?i !?a®c®-
F® ?®«i ¤«?®© aceeY 16 !?a®c.

Body already defined for this function
’Y«® ia®© aea?ae?? a¦Y ®?aY¤Y«Y®

’Y«® aea?ae?? a ia?¬ ¦Y ?¬YY¬ ? a??®¬ a¦Y caaaYc «®ai
ceeY. ’Y«® aea?ae?? ¬®¦Ya ca®¤?ai c ?a®Fa ¬¬a a®«i?® ®¤?
a §.

Call of non-function
‚e§®c Y-aea?ae??

‚e§ec Y¬®Y ?¬i Y !e«® ®!eic«Y® ? ? aea?ae?i. ˜a  ®e?!-
?  ®!ec® c®§?? Ya ?a? Y?a c?«i®¬ ®!eic«Y?? ?«? ®?Yc a?Y
c ?¬Y? aea?ae??.

Cannot assign ?¤Ya?ae?? a®a1 to ?¤Ya?ae?? a®a2
˜a?ac®Y?Y ?¤Ya?ae?? a®a 1 ?¤Ya?ae?? a®aa2 Yc®§¬®¦®

?!Y aa®a®e ®?Ya ae?? ?a?ac®Y?i (=) (?«? a®aa c®© ®?Y-
a ae?? ?a?ac®Y?i a??  +=) ¤®«¦e !eai a®c¬Yaa?¬e¬? ? Y
¤®«¦e ic«iaiai ¬ aa?c ¬?. ˜a c i aa®a®  ¤ ®© ®?Ya ae??
?a?ac®Y?i ?¬YYa a?? ?¤Ya?ae?? a®a1 ? Y ¬®¦Ya !eai ?a?ac®Y-
  ®!eY?aa a«Yc , ?¬YieY¬a a?? ?¤Ya?ae?? a®a2.

Cannot call ‘main’ from within the program
‚e§c ai ‘main’ ?§ ?a®Fa ¬¬e Yc®§¬®¦®

‘++ Y ?®§c®«iYa aY?aaa?ceY ce§®ce ‘main’.

– 263 –

Cannot cast from ?¤Ya?ae?? a®a1 to ?¤Ya?ae?? a®a2
˜a?cY¤Y?Y ¬Y¦¤a ?¤Ya?ae?? a®a1 ? ?¤Ya?ae?? a®a2 Yc®§¬®¦®

˜a?cY¤Y?Y a??  ?¤Ya?ae?? a®a1 ? a??a ?¤Ya?ae?? a®a2
§¤Yai § ?aYeY®. ‚ ‘ a? § aY«i ¬®¦Ya !eai ?a?cY¤Y ? ?aYF-
a «i®¬a a??a ?«? ? ¤aaF®¬a a??a a? § aY«i. ?aYFa «ie© a??
¬®¦Ya !eai ?a?cY¤Y ? «i!®¬a ?aYFa «i®¬a a??a, a??a a ?« –
c ieY© a®c?®© ? a? § aY«i. ’?? a ?« c ieY© a®c?®© ¬®¦Ya !eai
?a?cY¤Y ? ?aYFa «i®¬a ?«? ¤aaF®¬a a??a a ?« c ieY© a®c-
?®©. ‘aaa?aaae ? ¬ aa?ce Y ?®§c®«iia ce?®«Y?Y ¤«i ?a
?a?cY¤Y?© a?? . ’ ?¦Y Yc®§¬®¦e ?a?cY¤Y?i ¤«i a??  void.

‚ ‘++ ?a®cYaiYaai  «?c?Y ?aY®!a §®c ?© ? ?®aaaa?a®-
a®c, ®?aY¤Y«iY¬ea ?®«i§®c aY«Y¬, ? c a«ac Y ?a ®aaaaaac?i?-
a?¬Yiiaai ?a c?«  ?a?®a?aYa  (§  ?a?«icY?Y¬ a? § aY«Y©  
?®¬?®Yae ?« aa ). ?§ ?aYFa «iea a??®c a®«i?® ¤«i ?®a-
a ae a® § cY?Y¬ ®«i ¤®?aa? Yaai ?a?cY¤Y?Y ? a??a a? § –
aY«i ?®¬?®Ya . “? § aY«i ?®¬?®Ya  ¤®?aa? Ya ?a?cY¤Y?Y ?
?aYFa «i®¬a a??a?«?   «®F?c®¬a a? § aY«i ?®¬?®Ya .
˜®a«Y¤?© !a¤Ya a? §ec ai   ?®¬?®Ya ¤ ea, Ya«?   YF®
!e« aaa ®c«Y ?aa®¤e© a? § aY«i, ?   ?®¬?®Ya-aea?ae?i,
Ya«?  YY !e« aaa ®c«Y ?aa®¤e©; ?c «?ae?ae?aaie?© ?« aa
a?? ,? ?®a®a®¬a ce?®«iYaai ?a?cY¤Y?Y, ¤®«¦Y !eai aY¬ ¦Y,
ca® ? ! §®ce© ?« aa ®a?F? « .

Cannot create a varlable for abstract class ?« aa
‘®§¤ ?Y ?YaY¬Y®© ¤«i  !aaa ?a®F® ?« aa  “?« aa” Y-
c®§¬®¦®

?!aaa ?aeY ?« aae – a c?aae¬? c?aaa «ie¬? aea?ae?i¬? –
Y ¬®Faa ?a?®«i§®c aiai Y?®aaY¤aacY®, ¤®?aa? Yaai «?ei
a®§¤ ?Y ?a®?§c®¤ea ®a ?a ?« aa®c.

Cannot define a pointer or reference to a reference
??aY¤Y«Y?Y a? § aY«i ?«? aae«??   aae«?a Yc®§¬®¦®

?¬Yai a? § aY«i   aae«?a ?«? aae«?a   aae«?a Y«i§i.

Cannot find ?« aa::?« aa (?« aa&) to copy a vector
˜Y  ©¤Y ?« aa::?« aa (?« aa&) ¤«i ?®??a®c ?i cY?a®a 

…a«? ?« aa ‘++ ?« aa1 a®¤Ya¦?a cY?a®a (¬ aa?c) ?« aa 
?« aa2 ? ce a®a?aY a?®aaaa?a®c ai ®!eY?a a??  ?« aa1 ?§
¤aaF®F® ®!eY?a  a??  ?« aa1, a® ¤®«¦Y !eai ?®aaaa?a®a
?« aa2::?« aa2(?« aa2&) a ?®©, ca®!e ¬®F«? !eai a?®aaaa?a®-
c e i«Y¬Yae cY?a®a . „ e© ?®aaaa?a®a ?a??¬ Ya a®«i?®
®¤? ? a ¬Yaa (ic«iie?©ai aae«?®©   YF® ?« aa) ?  §ec Yaai
?®aaaa?a®a®¬ aae«??.

?!ec® ?®¬??«ia®a a®§¤ Ya ?®aaaa?a®a aae«??  ca®¬ a?-
cYa??. ?¤ ?®, Ya«? ce ®?aY¤Y«?«? ?®aaaa?a®a ¤«i ?« aa 
?« aa2, ?¬YieYF® ? a ¬Yaa a??  ?« aa2. ? ¤®?®«?aY«ieY ? –
a ¬Yaae a® § cY?i¬? ?® a¬®«c ?i, a® ¤ e© ?®aaaa?a®a
aae«?? Y ¬®¦Ya aaeYaac®c ai ? Y ¬®¦Ya !eai a®§¤  ?®¬??«i-
a®a®¬. (‚a«Y¤aac?Y a®F®, ca® ?« aa2::?« aa2(?« aa2&) ?
?« aa2::?« aa2(?« aa2&, int = 1) Y a §«?c iaai ?®¬??«ia®-
a®¬). ‚e ®!i§ e ?YaY®?aY¤Y«?ai ¤ e© ?®aaaa?a®a a ??¬ ®!-
a §®¬, ca®!e Y caY ? a ¬Yaae ?¬Y«? § cY?i ?® a¬®«c ?i.
‡ aY¬ ce ¬®¦YaY ®?aY¤Y«?ai ?®aaaa?a®a aae«?? ?«? ?®§c®«?ai

– 264 –
?®¬??«ia®aa a®§¤ ai a®!aacYe©.

Cannot find ?¤Ya?ae?? a®a::?¤Ya?ae?? a®a() to
initialize a vector
˜Y  ©¤Y ?¤Ya?ae?? a®a::?¤Ya?ae?? a®a() ¤«i ??ae? «?-
§ ae?? cY?a®a 

…a«? ?« aa ‘++ ?« aa1 a®¤Ya¦?a cY?a®a (¬ aa?c) ?« aa 
?« aa2 ? ce ¦Y« YaY a?®aaaa?a®c ai ®!eY?a a??  ?« aa1, ®
?a? ia®¬ Y ?§ ¤aaF®F® ®!eY?a  a??  ?« aa1, a® ¤«i ?®aaaa?-
a®c ?i i«Y¬Ya®c cY?a®a  ¤®«¦Y !eai ?a?®«i§®c  ?®aaaa?-
a®a ?« aa2::?« aa2(). ’ ?®© ?®aaaa?a®a !Y§ ? a ¬Yaa®c  §e-
c Yaai ?®aaaa?a®a®¬ ?® a¬®«c ?i. …a«? ce Y ®?aY¤Y«?«? ¤«i
?« aa 2 ?? ?®F® ?®aaaa?a®a , ?®¬??«ia®a a®§¤ aa ?®aaaa?-
a®a ?® a¬®«c ?i  ca®¬ a?cYa??; c ?a®a?c®¬ a«ac Y !a¤Ya ?a-
?®«i§®c  c e ?®aaaa?a®a.

Cannot find ?« aa::?« aa() to initialize base class
˜Y  ©¤Y ?« aa::?« aa ¤«i ??ae? «?§ ae?? ! §®c®F® ?« aa 

˜a? ?®aaaa?a®c ?? ?a®?§c®¤®F® ?« aa  ‘++ ?« aa2 a –
c «  ¤®«¦Y !eai a?®aaaa?a®c  ? ¦¤e© ! §®ce© ?« aa ?« aa1.
…a«? ?®aaaa?a®a ¤«i ?« aa 2 Y § ¤ Ya ?®aaaa?a®a ¤«i ?« a-
a 1 (? ? c aai § F®«®c?  ?« aa 2), a® ¤«i ! §®c®F® ?« aa 
¤®«¦Y !eai § ¤  ?®aaaa?a®a ?« aa1::?« aa1(). ’ ?®© ?®a-
aaa?a®a !Y§ ? a ¬Yaa®c  §ec Yaai ?®aaaa?a®a®¬ ?® a¬®«c –
?i. …a«? ce Y ®?aY¤Y«?«? ¤«i ?« aa 1 ?? ?®F® ?®aaaa?a®-
a , ?®¬??«ia®a a®§¤ aa ?®aaaa?a®a ?® a¬®«c ?i
 ca®¬ a?cYa??; c ?a®a?c®¬ a«ac Y !a¤Ya ?a?®«i§®c  c e
?®aaaa?a®a.

Cannot find ?« aa::?« aa() to initialize field ?¤Ya?ae?? a®a
˜Y  ©¤Y ?« aa::?« aa() ¤«i ??ae? «?§ ae?? ?®«i ?¤Ya?-
ae?? a®a

…a«? ?« aa ‘++ ?« aa1 a®¤Ya¦?a ?®¬?®Ya ?« aa  ?« aa2
? ce ¦Y« YaY a?®aaaa?a®c ai ®!eY?a a??  ?« aa1, ® ?a? ia®¬
Y ?§ ¤aaF®F® ®!eY?a  a??  ?« aa1, a® ¤«i ?®aaaa?a®c ?i
ia®F® ?®¬?®Ya  ¤®«¦Y !eai ?a?®«i§®c  ?®aaaa?a®a
?« aa2::?« aa2(). ’ ?®©?®aaaa?a®a !Y§ ? a ¬Yaa®c  §ec Yaai
?®aaaa?a®a®¬ ?® a¬®«c ?i. …a«? ce Y ®?aY¤Y«?«? ¤«i ?« a-
a 2 ?? ?®F® ?®aaaa?a®a ,?®¬??«ia®a a®§¤ aa ?®aaaa?a®a ?®
a¬®«c ?i  ca®¬ a?cYa??; c ?a®a?c®¬ a«ac Y !a¤Ya ?a?®«i§®-
c c e ?®aaaa?a®a.

Cannot find ?« aa::operator=(?« aa&) toy2 y0copy a vector
˜Y  ©¤Y ?« aa::operator=(?« aa&) ¤«i ?®??a®c ?i cY?a®a 

…a«? ?« aa ‘++ ?« aa1 a®¤Ya¦?a cY?a®a (¬ aa?c) ?« aa 
?« aa2 ? ce ¦Y« YaY a?®??a®c ai ?« aa a??  ?« aa1, a® ¤®«¦ 
?a?®«i§®c aiai ®?Ya ae?i ?a?ac®Y?i
?« aa2::operator=(?« aa2&), ?®§c®«iie i ?®??a®c ?Y i«Y¬Y-
a®c cY?a®a . ?!ec® ?®¬??«ia®a caa c«iYa a ?ai ®?Ya ae?i  c-
a®¬ a?cYa??. ?¤ ?®, Ya«? ce ®?aY¤Y«?«? operator= ¤«i ?« a-
a 2, ® ia  ®?Ya ae?i Y ?a??¬ Ya ? a ¬Yaa ?« aa2&, a®
?®¬??«ia®a Y !a¤Ya FYYa?a®c ai ®?Ya ae?i  ca®¬ a?cYa?? – ce
¤®«¦e  ??a ai ac®i.

– 265 –

Cannot have a near membar in a far class
?®¬?®Ya near c ?« aaY far Y¤®?aaa?¬

‚aY ?®¬?®Yae ?« aa  ‘++ far ¤®«¦e !eai far. „ e©
?®¬?®Ya ¤®«¦Y ?a? ¤«Y¦ ai ?« aaa, ®!eic«Y®¬a (?«? ?¬Y-
ieY¬a ?® a¬®«c ?i)  aa?!aa near.

Cannot initialize a fieid
??ae? «?§ ae?i ?®«i Yc®§¬®¦ 

?a¤Y«ieY ?®«i aaaa?aaa, ®!eY¤?Y?© ? ?« aa®c ‘++ ¬®-
Faa Y ?¬Yai ??ae? «?§ a®a®c. ‘aaa?aaa  ?«? ®!eY¤?Y?Y ¬®-
Faa !eai ??ae? «?§?a®c e ? ? Y¤?®Y aeY«®Y ?a? ?®¬®e?
??ae? «?§ a®a®c c ae?Faaea a?®!? a. ?« aa ‘++ ¬®¦Ya !eai
??ae? «?§?a®c  a®«i?® ?a? ?®¬®e? ?®aaaa?a®a .

Cannot initialize a??1 with a??2
’??1 Y ¬®¦Ya !eai ??ae? «?§?a®c  a??®¬2

‚e ?ea YaYai ??ae? «?§?a®c ai ®!eY?a a??  a??1 § cY?-
Y¬ a??  a??2, ca® Y¤®?aaa?¬®. ˜a c?«  ??ae? «?§ ae?? aY ¦Y,
ca® ? ¤«i ?a?ac®Y?i.

Cannot modify a const object
?®¤?ae?? ae?i ®!eY?a  – ?®aa ae Yc®§¬®¦ 

˜Y¤®?aaa?¬ i ®?Ya ae?i a ®!eY?a®¬, ®!eic«Ye¬ ?®aa –
a®©,  ?a?¬Ya, ?®?ea?  ?a?ac®Y?i a ?®¬a ®!eY?aa.

Cannot overioad ‘main’
˜YaYFaa§?  ‘main’ Yc®§¬®¦ 

main – ia® Y¤?aacY i aea?ae?i, ?®a®a i Y ¬®¦Ya !eai
?YaYFaa¦Y .

Cannot specify base classes except when defining the class
‡ ¤ c ai ! §®ceY ?« aae ¤®?aaa?¬® a®«i?® ?a? ®?aY¤Y«Y-
?? ?« aa 

˜a? § ¤ ?? ?« aa  ‘++ ! §®ceY ?« aae, ?a®?§c®¤e¬ ®a
?®a®aea ic«iYaai ¤ e© ?« aa, ¬®Faa § ¤ c aiai a®«i?® c
a®c?Y ®?aY¤Y«Y?i ?« aa . ˜a? ®!eic«Y?? aYF  ?« aa ,  ?a?-
¬Ya class c; § ¤ c ai ! §®ceY ?« aae Y¤®?aaa?¬®.

Case outside of switch
??Ya a®a case cY ®?Ya a®a  switch

?®¬??«ia®a caaaYa?« ®?Ya a®a case cY ®?Ya a®a  switch.
˜a® c aa® a«ac Yaai ?a? Ya®®acYaaac?? c?a«  ?a cea ? «Ycea
ae?Faaea a?®!®?.

– 266 –

Case statement missing :
‚ ®?Ya a®aY case ®aaaaaacaYa :

??Ya a®a case ¤®«¦Y a®¤Ya¦ ai cea ¦Y?Y a??  ?®aa –
ae, §  ?®a®ae¬ a«Y¤aYa ¤c®Ya®c?Y. ‹?!® c cea ¦Y?? ®?Ya a®a 
case ®aaaaaacaYa ¤c®Ya®c?Y, «?!® ?YaY¤ ¤c®Ya®c?Y¬  a®¤?aai
«?eYY a?¬c®«?cYa?®Y ?¬i.

Character constant too long
‘«?e?®¬ ¤«? i a?¬c®«i i ?®aa a 

‘?¬c®«ieY ?®aa ae ¬®Faa ?¬Yai ¤«?a a®«i?® c ®¤?
?«? ¤c  a?¬c®« .

Class ?« aa has a constructor and cannot be hidden
?« aa ?¬YYa ?®aaaa?a®a ? Y ¬®¦Ya !eai a?aeae¬

‘ ?¬YYa a §eY ?a®aaa aac  ?¬Y ¤«i aYF®c aaaa?aaa ?
®!ecea ?¬Y, a ?¦Y ? ? ? ‘++. ˜a® a a?a®aaa iYaai ?  
?« aae a ?®aaaa?a®a ¬?, ?®a?®«i?a ®!eic«Y?i ?®aaaa?a®a®c
?®a®¦?   ®!eic«Y?i aea?ae?©, ? c®§¬®¦®aai ?a ?YaY?aa ai
¬®¦Ya ?a?cYaa? ?  c a?©®¬a § cYaeY?i.

Classes cannot be initialized with (**)
?« aae Y ¬®Faa !eai ??ae? «?§?a®c e ?a? ?®¬®e? (**)

?!eceY aaaa?aaae ‘ ¬®Faa ??ae? «?§?a®c aiai  !®a®¬
§ cY?© c ae?Faaea a?®!? a. ?« aae ‘++ ¬®Faa !eai ??ae? «?-
§?a®c e a®«i?® ?®aaaa?a®a ¬?, Ya«? ?« aa ?¬YYa ?®aaaa?a®-
ae, ?®¬?®Yae private, aea?ae?? ?«? ! §®ceY ?« aae, ic«iie?-
Yai c?aaa «ie¬?.

Class member ?®¬?®Ya declared outside its class
?®¬?®Ya ?« aa  ®!eic«Y cY ac®YF® ?« aa 

”a?ae?? ?®¬?®Yae ?« aa  ‘++¬®Faa !eai ®!eic«Ye
a®«i?® caaa? ®!eic«Y?i ?« aa . ‚ ®a«?c?Y ®a aea?ae?©, Y
ic«iie?aai ?®¬?®Ya ¬? ?« aa ,®? Y ¬®Faa ?¬Yai Ya?®«i?®
®!eic«Y?© ?«? !eai ®!eic«Ye c ¤aaF?a ¬Yaa a.

Compound statement missing *)
‚ a®aa c®¬ ®?Ya a®aY ®aaaaaacaYa *)

?®¬??«ia®a ¤®eY« ¤® ?®ae  ?aa®¤®F® ae ©« , ® Y ®! –
aa¦?« § ?aec ieY© ae?Faa®© a?®!??. ˜a® ®!ec® !ec Ya ?a? Y-
a®c? ¤ ieY¬ ?®«?cYaacY ?a cea ? «Ycea a?®!®?.

Conflicting type modifiers
˜a®a?c®aYc e?Y ¤aaF ¤aaFa ¬®¤?ae?? a®ae a?? 

˜a® a«ac Yaai, ?®F¤  c ®!eic«Y?? caaaYc Yaai,  ?a?-
¬Ya, ¤c  ?«icYcea a«®c  – far ? near, ®a®aie?aai ? ®¤®¬a ?
a®¬a ¦Y a? § aY«i. ?¤®¬a a? § aY«i ¬®¦Ya a®®acYaaac®c ai
a®«i?® ®¤? ¬®¤?ae?? a®a  ¤aYa ae??,   aea?ae?i ¬®¦Ya ?¬Yai
a®«i?® ®¤? ¬®¤?ae?? a®a i§e?  (cdecl, pascal ?«? interrupt).

– 267 –
Constant expression required
’aY!aYaai cea ¦Y?Y a??  ?®aa ae

? aa?ce ¤®«¦e ®!eic«iaiai a § ¤ e¬ ?®aa a®© cea –
¦Y?Y¬. „  i ®e?!?  ®!ec® !ec Ya ce§c   ®?Yc a?®© c
?®aa aY c #define.

Constructor cannot have a return type specification
?®aaaa?a®a Y ¬®¦Ya ?¬Yai a?Yae?ae?? ae?? a??  c®§ca a 

?®aaaa?a®ae ‘++ ?¬Yia Yice© a?? c®§ca a , ?a?®«i§aY-
¬e© ?®¬??«ia®a®¬, ® ce Y ¬®¦YaY ®!eic?ai ¤«i ?a a?? c®§c-
a a  ?«? c®§ca e Y¬®Y § cY?Y.

Conversion of near pointer not allowed
˜aY®!a §®c ?Y !«?¦YF® a? § aY«i Y¤®?aaa?¬®

˜«?¦?© a? § aY«i Y ¬®¦Ya !eai ?aY®!a §®c  c ¤ «i?©
?a? cec?a«Y?? cea ¦Y?i, Ya«? ?a®Fa ¬¬  c aY?ae?© ¬®¬Ya Y
ce?®«iYaai. ˜a?c?  ia®F® a®aa®?a c a®¬, ca® ¤«i ?aY®!a §®-
c ?i aaY!aYaai § ai aY?aeYY § cY?Y DS ?a®Fa ¬¬e ?®«i§®-
c aY«i, ?®a®a®Y c ¤ e© ¬®¬Ya ?a®aa® Y aaeYaacaYa.

Could not find a match for  aFa¬Ya(e)
˜Y  ©¤Y® a®®acYaaac?Y  aFa¬Yaa ( aFa¬Ya ¬)

˜Y  ©¤Y  aea?ae?i ‘++ a ? a ¬Yaa ¬?, a®®acYaaacaie?¬?
§ ¤ e¬  aFa¬Ya ¬.

Could not find file ?¬i_ae ©« 

?®¬??«ia®a Y ¬®¦Ya  ©a? ae ©«, § ¤ e© c ?®¬ ¤®©
aaa®?Y.

Declaration does not specify a tag or an identifier
‚ ®!eic«Y?? Y a? §  aYF ?«? ?¤Ya?ae?? a®a

„ ®Y ®!eic«Y?Y ?cYF® Y ®!eic«iYa. ˜a® ¬®¦Ya !eai
aaaa?aaa  ?«? ®!eY¤?Y?Y !Y§ aYF  ?«? ?YaY¬Y i c ®!eic«Y-
??. ‘++ aaY!aYa, ca®!e ca®-a® !e«® ®!eic«Y®.

Declaration is not allowed here
?!eic«Y?Y §¤Yai Y¤®?aaa?¬®

?!eic«Y?i Y ¬®Faa ?a?®«i§®c aiai c a?a c«iie?a ®?Ya –
a®a a ¤«i ®?Ya a®a®c while, for, do. if ?«? switch.

Declaration missing ;
‚ ®!eic«Y?? ®aaaaaacaYa ;

‚ ?aa®¤®¬ ae ©«Y a®¤Ya¦?aai ®!eic«Y?Y ?®«i aaaa?aaae
?«? ®!eY¤?Y?i, c ?®a®a®¬ ®aaaaaacaYa a®c?  a § ?ia®© (;).

– 268 –

Declaration syntax error
‘?a ?a?cYa? i ®e?!?  c ®!eic«Y??

?aa®¤e© ae ©« a®¤Ya¦?a ®!eic«Y?Y, c ?®a®a®¬ ®aaaaaaca-
Ya Y?®a®ae© a?¬c®« ?¬i ?«?  ®!®a®a ?¬Yiaai «?e?Y.

Declaration terminated incorrectiy
˜Y?a c?«i®Y ®?®c ?Y ®!eic«Y?i

?!eic«Y?Y a®¤Ya¦?a «?e?© ?«?YcYae© ?®Yce© a?¬c®«,
 ?a?¬Ya, a®c?  a § ?ia®©,?®¬YeY i ?®a«Y aY«  aea?ae??. ˜aa
®e?!?a a ?¦Y ¤ Ya aea?ae?i-?®¬?®Ya ‘++, ®!eic«Y i c ?« a-
aY a a®c?®© a § ?ia®© ¬Y¦¤a § F®«®c?®¬ ? ®a?aec ieY© «Yc®©
ae?Faa®© a?®!?®©.

Declaration was expected
?¦?¤ Yaai ®!eic«Y?Y

?¦?¤ «®ai, ® Y  ©¤Y® ®!eic«Y?Y. ˜a® ®!ec® !ec Ya
?a? ®aaaaaac?? a §¤Y«?aY«i,  ?a?¬Ya, § ?ia®©, a®c?? a § ?i-
a®©, ?a c®© ?aaF«®© a?®!?? ?«? ?a c®© ?c ¤a a®© a?®!??.

Declare operator delete (void*) or (void*,size_t)
??Ya ae?i delete ®!eic«iYaai (void*) ?«? (void*,size_t)

??Ya ae?i delete ®!eic«iYaai a ®¤?¬ ? a ¬Yaa®¬ void*,
«?!® a ¤ca¬i, F¤Y ca®ae¬ ic«iYaai size_t. ˜a? ?a?®«i§®c ??
ca®a®© cYaa?? ®  !a¤Ya ?a?®«i§®c   a !®«ie?¬ ?a?®a?aYa®¬,
Y¦Y«? ?Yac i. ?«®! «i i ®?Ya ae?i delete caYF¤  ®!eic«iYaai
a ¤ca¬i ? a ¬Yaa ¬?, ?®ia®¬a !a¤iaY ®aa®a®¦e ?a? ?YaY®?aY-
¤Y«Y?? ia®F® ®!eic«Y?i.

Default outside of swich
??Ya a®a default cY ®?Ya a®a  switch

?®¬??«ia®a caaaYa?« ®?Ya a®a default cY ®?Ya a®a 
switch. ˜a® c eY caYF® !ec Ya ?a? Ya®c? ¤Y?? c?a«  ?a cea
? «Ycea ae?Faaea a?®!®?.

Default value missing
?aaaaaacaYa § cY?Y ?® a¬®«c ?i

…a«? c aea?ae?? ‘++ ®!eic«iYaai ? a ¬Yaa a® § cY?Y¬ ?®
a¬®«c ?i, caY ?®a«Y¤aie?Y ? a ¬Yaae a ?¦Y ¤®«¦e ?¬Yai
a¬®«c ?i. ‚ ¤ ®¬ ®!eic«Y?? §  ? a ¬Yaa®¬ a® § cY?Y¬ ?®
a¬®«c ?i a«Y¤aYa ? a ¬Yaa !Y§ a¬®«c ?i.

Define directive needs an identifier
¤?aY?a?cY define Y®!a®¤?¬ ?¤Ya?ae?? a®a

˜Yace© Y-?a®!Y«ie© a?¬c®« ?®a«Y #define ¤®«¦Y ic-
«iaiai ?¤Ya?ae?? a®a®¬. ?®¬??«ia®a caaaYa?«   ia®¬ ¬YaaY
? ??Y-«?!® ¤aaF?Y a?¬c®«e.

– 269 –

Destructor cannot have a return type specification
„Yaaaa?a®a Y ¬®¦Ya ?¬Yai a?Yae?ae?? ae?? a??  c®§ca a 

„Yaaaa?a®ae ‘++ Y ?¬Yia a??  c®§ca a , ? ce Y ¬®¦YaY
®!eic?ai a?? ?«? § cY?Y c®§ca a .

Destructor for ?« aa is not accessibie
„Yaaaa?a®a ¤«i ?« aa  Y¤®aaa?Y

„Yaaaa?a®a ¤«i ¤ ®F® ?« aa  ic«iYaai protected ?«?
private ? Y¤®aaa?Y ?§ ¤ ®© a®c?? ¤«i a §aaeY?i ?« aa .
…a«? ¤Yaaaa?a®a ?« aa  ic«iYaai private, ?« aa Y ¬®¦Ya !eai
a §aaeY ? ?®a®¬a Y ¬®¦Ya ??®F¤  !eai ?a?®«i§®c . ˜a®  –
cYai?  ®e?!? . „Yaaaa?a®a protected ?®§c®«iYa ¤®aaa? a®«i?®
?§ ?a®?§c®¤ea ?« aa®c. ˜a® ?®«Y§® ¤«i a®F®, ca®!e ?aY¤®ac-
a a?ai a®§¤ ?Y ! §®cea ?« aa®c, ®!Ya?Yc?c a®§¤ ?Y ?§ ?a
?a®?§c®¤ea ?« aa®c.

Destructor name must match the class name
?¬i ¤Yaaaa?a®a  ¤®«¦® a®®acYaaac®c ai ?¬Y? ?« aa 

‚ ?« aa a ‘++ ®!eic«Y?Y ¤Yaaaa?a®a  ?« aa  cc®¤?aai
a?¬c®«®¬ a?«i¤ . ?¬i ¤Yaaaa?a®a  ¤®«¦® a®c? ¤ ai a ?¬YY¬
?« aa . ‚ c eY¬ ?aa®¤®¬ ae ©«Y a?«i¤  ?aY¤eYaacaYa ? ?®¬a-a®
¤aaF®¬a ?¬Y?.

Division by zero
„Y«Y?Y   ®«i

‚ ?aa®¤®¬ ae ©«Y caaaYa?«®ai cea ¦Y?Y a??  ?®aa ae,
?aY¤aa c«iieYY a®!®© a«Yc®© ¤Y«?aY«i.

do statement must have while
®?Ya a®a do ¤®«¦Y ?¬Yai while

‚ ?aa®¤®¬ ae ©«Y caaaYa?«ai ®?Ya a®a do !Y§ a®®acYaa-
acaieYF® ®Fa ?c?c ieYF® ?«icYc®F® a«®c  while.

do-whlle statement missing (
‚ ®?Ya a®aY do-while ®aaaaaacaYa (

‚ ®?Ya a®aY do ?®¬??«ia®a Y  eY« «Yc®© ?aaF«®© a?®!??
?®a«Y ?«icYc®F® a«®c  while.

do-whlle statement missing )
‚ ®?Ya a®aY do-while ®aaaaaacaYa )

‚ ®?Ya a®aY do ?®¬??«ia®a Y  eY« ?a c®© ?aaF«®© a?®!-
?? ?®a«Y aa«®c®F® cea ¦Y?i.

do-whlle statement missing ;
‚ ®?Ya a®aY do-while ®aaaaaacaYa ;

‚ aa«®c®¬ cea ¦Y?? ®?Ya a®a  do ?®¬??«ia®a Y  eY«
a®c?? a § ?ia®© ?®a«Y ?a c®© ?aaF«®© a?®!??.

– 270 –

Dulicate case
˜®ca®aY?Y case

? ¦¤®Y ?«icYc®Y a«®c® case ®?Ya a®a  switch ¤®«¦®
?¬Yai a?? «i®Y § cY?Y cea ¦Y?i a??  ?®aa ae.

Enum syntax error
‘?a ?a?cYa? i ®e?!?  c enum

?!eic«Y?Y enum Y a®¤Ya¦?a ?a c?«i® ®ae®a¬«Y®F®
a??a?  ?¤Ya?ae?? a®a®c.

Error directive: a®®!eY?Y
„?aY?a?c  error: a®®!eY?Y

„ ®Y a®®!eY?Y ?®ic«iYaai ?a? ®!a !®a?Y ¤?aY?a?ce
#error ?§ ?aa®¤®F® ae ©« . ’Y?aa ia®© ¤?aY?a?ce cec®¤?aai c
“a®®!eY??”.

Error writing output file
?e?!?  ?a? § ??a? cea®¤®F® ae ©« 

?e?!?  DOS ?a? ?®?ea?Y Turbo C++ cecYaa? .OBJ, .EXE ?«?
caY¬Ye© ae ©«. ˜a®cYaiaY ®?ae?i ?®¬ ¤®© aaa®?? -n ?«? aa-
a ®c?a ¬Yi Options \! Directiries \! Output directory ?-
aYFa?a®c ®© aaY¤e, ?a c?«i® «? § ¤   ¤?aY?a®a?i ¤«i ce-
c®¤ . ’ ?¦Y a!Y¤?aYai, ca®   ¤?a?Y ¤®aa a®c® ¬Yaa .

Expression expected
?¦?¤ Yaai cea ¦Y?Y

‡¤Yai ®¦?¤ «®ai cea ¦Y?Y,   aY?ae?© a?¬c®« Y ¬®¦Ya
 c? ai cea ¦Y?Y. ˜a® a®®!eY?Y ¬®¦Ya ce¤ c aiai, ?®F¤ 
®¦?¤ Yaai a?a c«iieYY cea ¦Y?Y c ?aY¤«®¦Y?? if ?«? while,
«?!® ?a? ??ae? «?§ ae?? ?YaY¬Y®©. ‘®®!eY?Y c aa® ?®ic«iYa-
ai c aY§a«ia aY a«ac ©® caa c«Y®F® ?«? a¤ «Y®F® ?§ ?a-
a®¤®F® ae ©«  a?¬c®« .

Expression is too complicated
‘«?e?®¬ a«®¦®Y cea ¦Y?Y

?®¬??«ia®a ¬®¦Ya ®!a ! aec ai ®cYi a«®¦eY cea ¦Y?i,
®¤ ?® Y?®a®aeY cea ¦Y?i a a®ai¬? ?®¬?®Ya®c ¬®Faa ®? –
§ aiai a«?e?®¬ a«®¦e¬?. ’ ??Y cea ¦Y?i a«Y¤aYa a §!?c ai
  ¤cY ?«? !®«YY c aaY©.

Expression of arithmetic type expected
?¦?¤ Yaai cea ¦Y?Y  a?ae¬Ya?cYa?®F® a?? 

“ aeY ®?Ya ae?? ?«ia (+) ? ¬?aa (-) aaY!aia cea ¦Y?©
 a?ae¬Ya?cYa?®F® a??  – ¤®?aaa?¬e¬? ic«iiaai a®«i?® a??e
char, short, int long, enum, float, double ? long double.

– 271 –

Expression of integral type expected
?¦?¤ Yaai cea ¦Y?Y ?aYFa «i®F® a?? 

??Ya ae?i ¤®?®«Y?i (a?«i¤  ) aaY!aYa cea ¦Y?i ?aYF-
a «i®F® a??  – ¤®?aaa?¬e¬? ic«iiaai a®«i?® a??e char,
short, int, long ?«? enum.

Expression of scalar type expected
?¦?¤ Yaai cea ¦Y?Y a? «ia®F® a?? 

??Ya ae?? “Y” (!), ??aY¬Ya  (++) ? ¤Y?aY¬Ya  (–)
aaY!aia cea ¦Y?© a? «ia®F® a??  – ¤®?aaa?¬e¬? ic«iiaai
a®«i?® a??e char, short, int, long, enum, float, double,
long double ? a??e a? § aY«Y©.

Expression syntax
‘?a ?a?a cea ¦Y?i

˜a® ®!®!eY®Y a®®!eY?Y ®! ®e?!?Y, ce¤ c Y¬®Y, ?®F¤ 
?®¬??«ia®a ?a? «Y?a?cYa?®¬   «?§Y cea ¦Y?i caaaYc Ya ? ?ai
-«?!® aYaiY§ai ®e?!?a. ˜ ?!®«YY c aa® ®  caaaYc Yaai, Ya«?
?®¤ai¤ caaaYc Yaai ¤cY ®?Ya ae??, «?!® ?a? ®aaaaaac?? ?«? Y-
a®®acYaaac?? c?a«  ?aaF«ea a?®!®?, «?!® ?a? ®aaaaaac?? a®c??
a § ?ia®© c ?aY¤e¤aeY¬ cea ¦Y??.

Expression type does not match the return type
’?? cea ¦Y?i Y a®®acYaaacaYa a??a c®§ca a 

’?? cea ¦Y?i return Y ¬®¦Ya !eai ?aY®!a §®c  ? a??a
c®§ca a  aea?ae??.

extern variable cannot be initialized
˜YaY¬Y i extern Y ¬®¦Ya !eai ??ae? «?§?a®c  

?« aa ? ¬ia? extern ?a?¬Y?aY«i® ? ?YaY¬Y®© ®§ c –
Ya, ca® ?YaY¬Y i §¤Yai ®!eic«iYaai, ® Y ®?aY¤Y«iYaai –
a a?aY¤Y«Y?Y ? ¬ia? ¤«i YY Y ?a®?aa®¤?a. ‘«Y¤®c aY«i®,
??ae? «?§ ae?i ?YaY¬Y®© c ®!eic«Y?? Yc®§¬®¦®.

Extra parameter in call
‹?e?Y ? a ¬Yaae c ce§®cY

‚e§®c aea?ae?? cYaY§ a? § aY«i, ®?aY¤Y«Ye© c ?a®a®a?-
?Y, a®¤Ya¦?a a«?e?®¬ ¬®F®  aFa¬Ya®c.

Extra parameter in call to aea?ae?i
‹?e?Y ? a ¬Yaae c ce§®cY aea?ae??

‚e§®c  §c ®© aea?ae?? (?®a®a i !e«  ®?aY¤Y«Y  a ?a®-
a®a??®¬) a®¤Ya¦?a a«?e?®¬ ¬®F®  aFa¬Ya®c.

Field ?®«Y cannot be used without an object
˜®«Y Y ¬®¦Ya !eai ?a?®«i§®c ® !Y§ ®!eY?a 

– 272 –

˜a® ®§ c Ya, ca® ?®«i§®c aY«i  ??a « ?« aa::?®«Y, F¤Y
?®«Y ic«iYaai ®!ece¬ (Y-aa a?cYa??¬) ?®¬?®Ya®¬, ?ca®
?« aa, aci§ e© a ia?¬ ?®«Y¬, ®aaaaaacaYa. ˜ ?a?¬Ya, ¬®¦®
 ??a ai ®!eY?a.?« aa::?®«Y, ® Y«i§i: ?« aa::?®«Y.

Field ?®«Y is ambiguous in class
˜Y®¤®§ c® § ¤  ?« aa ?®«i

‚e ¤®«¦e ?c «?ae?ae?a®c ai aae«?a   ?®«Y a®®acYaaacai-
e?¬ ?¬YY¬ ! §®c®F® ?« aa . ‚ ?« aaY ‘++ “?« aa” ?®«Y “?®-
«Y” ¬®F«® ?¬Yaiai c Ya?®«i??a ! §®cea ?« aa a ? Y !e«®
?c «?ae?ae?a®c ® ?®?aYae¬ ?« aa®¬. ˜a® ¬®F«® ?a®?§®©a?
a®«i?® ?a? ¬®¦YaacY®¬  a«Y¤®c ??, ?®F¤  ?¬i ?®«i c ? ¦-
¤®¬ ! §®c®¬ ?« aaY Y a?aea® aY¬ ¦Y ?¬YY¬ ?®«i c ?a®?§c®¤-
®¬ ?« aaY ?® a®¬a ¦Y ?aa?. ˜a c?«  i§e?  ‘++ aaY!aia ce?®«-
Y?Y ¤ ®© ?a®cYa?? Y®¤®§ c®aa? ¤® ?a®cYa?? ?a c
¤®aaa?  (private, protected, public). ‘«Y¤®c aY«i®, c®§¬®¦-
® ?®«acY?Y ¤ ®F® a®®!eY?i ¤ ¦Y ?a? a®¬, ca® ¤®aaa? c®§-
¬®¦Y a®«i?® ? ®¤®¬a ?®«i (?«? c®®!eY ? ? ®¤®¬a Y c®§¬®-
¦Y).

Field identifier expected
?¦?¤ Yaai ?¤Ya?ae?? a®a ?®«i

?¦?¤ «®ai, ® Y  ©¤Y® ?¬i ?®«i aaaa?aaae ?«? ?« aa 
‘++. ‘?a c  ®a ®?Ya ae?? (.) ?«? (->) ¤®«¦®  a®¤?aiai ?¬i
?®«i aaaa?aaae ?«? ?« aa , a? § ea a«Yc  ®a ®?Ya ae??.

File must contaln at least one external declaration
” ©« ¤®«¦Y a®¤Ya¦ ai a®ai !e ®¤® ®!eic«Y?Y external

„  i Y¤??ae  ?®¬??«iae?? !e«® «®F?cYa?? ?aaa®© ? Y
a®¤Ya¦ «  ?? ??a ®!eic«Y?©. ANSI C ? ‘++ aaY!aia, ca®!e c
Y¤??aeY ?®¬??«iae??  a®¤?«?ai ? ??Y-?!a¤i ?YaY¬YeY.

File name too long
‘«?e?®¬ ¤«?®Y ?¬i ae ©« 

?¬i ae ©«  c ¤?aY?a?cY #include !e«® a«?e?®¬ ¤«?e¬ ¤«i
®!a !®a?? YF® ?®¬??«ia®a®¬. ?¬Y  ae ©«®c c DOS Y ¬®Faa !eai
¤«?YY cY¬ 79 a?¬c®«®c.

For statement missing (
‚ ®?Ya a®aY for ®aaaaaacaYa (

‚ ®?Ya a®aY for ?®¬??«ia®a Y  eY« «Yc®© ?aaF«®© a?®!-
?? ?®a«Y ?«icYc®F® a«®c  for.

For statement missing )
‚ ®?Ya a®aY for ®aaaaaacaYa )

‚ ®?Ya a®aY for ?®¬??«ia®a Y  eY« ?a c®© ?aaF«®©
a?®!?? ?®a«Y a?a c«iieYF® cea ¦Y?i.

– 273 –

For statement missing ;
‚ ®?Ya a®aY for ®aaaaaacaYa ;

‚ ®?Ya a®aY for ?®¬??«ia®a Y  eY« a®c?? a § ?ia®©
?®a«Y ®¤®F® ?§ cea ¦Y?©.

Found : instead of ::
: c¬Yaa® ::

‚e ?a?®«i§®c «? ¤c®Ya®c?Y (:) c¬Yaa® ¤c®©®F® ¤c®Ya®c?i
(::) c ? cYaacY a §¤Y«?aY«i ?c «?ae?? a®a  ?« aa  ‘++ ? ?®«i
c ®!eic«Y?? ?«? c cea ¦Y??.

Friend declarations need a function signature
?!eic«Y?i friend aaY!aia a®c®F® a? § ?i aea?ae??

˜a? ®!eic«Y?? aea?ae?? friend ce ¤®«¦e § ¤ ai a??e ? –
a ¬Yaa®c a ??¬ ®!a §®¬, ca®!e ?§ caYa ?YaYFaa¦Yea aea?ae?©
¬®F«  !eai ce!a   cYa i.

Friends must be functions or classes, not fields
„aa§ii ¤®«¦e !eai aea?ae?i¬? ?«? ?« aa ¬?, ® Y ?®«i¬?

„aaF (friend) ?« aa  ‘++ ¤®«¦Y !eai aea?ae?Y© ?«? ¤aa-
F?¬ ?« aa®¬; ?®«Y Y ¬®¦Ya !eai ¤aaF®¬.

Function call missing )
‚ ce§®cY aea?ae?? ®aaaaaacaYa )

‘??a®?  aFa¬Ya®c ?a? ce§®cY aea?ae?? a®¤Ya¦?a ? ?ai-a®
a?a ?a?cYa?ai ®e?!?a,  ?a?¬Ya, ®aaaaaacaYa § ?aec ie i
?a c i a?®!? .

Function calls not supported
‚e§®ce aea?ae?? Y ?®¤¤Ya¦?c iaai

˜a? cec?a«Y?? cea ¦Y?i ?aYFa?a®c e¬ ®a« ¤c??®¬ ce-
§®ce aea?ae?© (c?«ic i aea?ae?? Yic®F® ?aY®!a §®c ?i, ?®a-
aaa?a®ae, ¤Yaaaa?a®ae, ?YaYFaa¦YeY ®?Ya ae?? ? caaa ?c Y¬eY
aea?ae??) Y ?®¤¤Ya¦?c Yaai.

Function defined inline after use as extern
”a?ae?i ®?aY¤Y«Y  ? ? caaa ?c Y¬ i ?®a«Y ®!eic«Y?i extern

”a?ae?i Y«i§i ®?aY¤Y«?ai ? ? caaa ?c Y¬ai (inline)
?®a«Y a®F®, ? ? ®  !e«  a¦Y !e«  ?a?®«i§®c  . ?«? ?YaYa-
a ciaY ®?aY¤Y«Y?Y inline ceeY c aY?aaY, ?«? a¤ «?aY YF®
a®caY¬.

Function definition cannot be a typedef’ed declaration
??aY¤Y«Y?Y aea?ae?? Y ¬®¦Ya !eai ®!eic«Y?Y¬ typedef

?!eic«Y?i a? § aY«Y© aa ®ciaai !®«YY c?a Y¬e¬? ?a?
?a?®«i§®c ?? typedef. ?¤ ?®, c ‘++ a ??Y typedef Y ¬®Faa
!eai ?a?®«i§®c e ¤«i ®?aY¤Y«Y?i aea?ae?©.

– 274 –

˜ ?a?¬Ya, a?? F – ia® aea?ae?i !Y§ ? a ¬Yaa®c, c®§ca e –
ie i int:

typedef int F(void);

??aY¤Y«Y?Y g c ? cYaacY a ?®© aea?ae?? Y¤®?aaa?¬®:

F g (* /* … */ *)

?¤ ?® ¬®¦® ®?aY¤Y«?ai g ? ? aea?ae?i, c®§ca e ieai
a? § aY«i   a?? F.

F *g(…) (* /* … */ *)

Function aea?ae?i cannot be static
”a?ae?i Y ¬®¦Ya !eai aa a?cYa?®©

’®«i?® ®!eceY aea?ae??-?®¬?®Yae ? ®?Ya ae?? new ?
delete ¬®Faa !eai ®!eic«Ye static. ?®aaaa?a®ae, ¤Yaaaa?a®-
ae ? ?a®c?Y ®?Ya ae?? Y ¬®Faa !eai aa a?cYa??¬?.

Function cannot return arrays or functions
”a?ae?? Y ¬®Faa c®§ca e ai ¬ aa?ce ?«? aea?ae??

”a?ae?i ®!eic«Y  ? ? c®§ca e ie i aea?ae?i ?«? ¬ aa?c,
c¬Yaa® a? § aY«i aea?ae?? ?«? i«Y¬Ya  ¬ aa?c .

Function should return a value
”a?ae?i ¤®«¦  c®§ca e ai § cY?Y

„  i aea?ae?i !e«  ®!eic«Y  (c®§¬®¦®, Yic®) ? ?
c®§ca e ie i § cY?Y. ??Ya a®a return Y a®¤Ya¦?a § cY?i
c®§ca a  ?«?  ©¤Y ?®Yae aea?ae??,   ®?Ya a®a c®§ca a  Y
caaaYa?«ai. ‹?!® a? ¦?aY § cY?Y c®§ca a , «?!® ?§¬Y?aY
®!eic«Y?Y aea?ae??   void.

Functions may not be part of a struct or union
”a?ae?? Y ¬®Faa !eai c aaii aaaa?aaae ?«? ®!eY¤?Y?i

„ ®Y ?®«Y aaaa?aaae ?«? ®!eY¤?Y?i ‘ !e«® ®!eic«Y® a a?-
?®¬ aea?ae??,   Y a? § aY«i aea?ae??. ”a?ae?? c ? cYaacY ?®-
«Y© a §aYeYe a®«i?® c ‘++.

Global anonimous union not static
?«®! «i®Y  ®?¬®Y ®!eY¤?Y?Y Y static

‚ ‘++ F«®! «i®Y  ®?¬®Y ®!eY¤?Y?Y   aa®cY ae ©«  ¤®«¦-
® !eai static.

Goto statement missing label
?aaaaaacaYa ¬Ya?  c ®?Ya a®aY goto

‡  ?«icYce¬ a«®c®¬ goto ¤®«¦Y a«Y¤®c ai ?¤Ya?ae?? a®a.

Group overflowed maximum size: ?¬i
?aa??  ?aYcea?«  ¬ ?a?¬ «ie© a §¬Ya: ?¬i

?!e?© a §¬Ya aYF¬Ya®c c Faa??Y ( ?a?¬Ya, c DGROUP)

– 275 –
?aYcea?« 64?.

Identifier ?¤Ya?ae?? a®a cannot have a type qualifier
?¤Ya?ae?? a®a ?¤Ya?ae?? a®a Y ¬®¦Ya ?¬Yai ?c «?ae?? a®a a?? 

?c «?ae?? a®a ‘++ ?« aa::?¤Ya?ae?? a®a §¤YaiY?a?¬Y?¬.
?c «?ae?? a®a Y a §aYeY ¤«i ?¬Y typedef, ®!eic«Y?© aea?-
ae?©(§  ?a?«icY?Y¬ ®?aY¤Y«Y?i   aa®cY ae ©« ) ?«? «®? «i-
ea ?YaY¬Yea ? ? a ¬Yaa®c aea?ae?©, «?!® ¤«i ?®¬?®Ya®c
?« aa , § ?a?«icY?Y¬ ?a?®«i§®c ?i ? ? ?c «?ae?? a®a  a®!a-
acY®F® ?¬Y? ?« aa  (?§!ea®c®, ® ¤®?aaa?¬®).

Identifier expected
?¦?¤ Yaai ?¤Ya?ae?? a®a

‡¤Yai ®¦?¤ «ai ?¤Ya?ae?? a®a, ® Y !e«  ©¤Y. ‚ ‘ ia®
¬®¦Ya a«ac?aiai c a??a?Y ? a ¬Yaa®c aa a®F® § F®«®c?  aea?-
ae??, ?®a«Y aY§Yac?aaY¬ea a«®c struct ?«? union ?a? ®aaaaa-
ac?? ae?Faaea a?®!®?,   a ?¦Y ?a? ®aaaaaac?? ?¬Y? ?®«i
aaaa?aaae ?«? ®!eY¤?Y?i (§  ?a?«icY?Y¬ !?a®cea ?®«Y© a-
«Yc®© ¤«?e). ‚ ‘++ ?¤Ya?ae?? a®a a ?¦Y ®¦?¤ Yaai c a??a?Y
! §®cea ?« aa®c, ?a®?§c®¤e¬ ®a ?®a®aea ic«iYaai ¤ e©,
?®a«Y ¤c®©®F® ¤c®Ya®c?i (::) ? ?®a«Y aY§Yac?aaY¬®F® a«®c 
operator ?a? ®aaaaaac?? a?¬c®«  ®?Ya ae??.

If statement missing (
‚ ®?Ya a®aY if ®aaaaaacaYa (

‚ ®?Ya a®aY if ?®¬??«ia®a Y  eY« «Yc®© ?aaF«®© a?®!??
?®a«Y ?«icYc®F® a«®c  if.

If statement missing )
‚ ®?Ya a®aY if ®aaaaaacaYa )

‚ ®?Ya a®aY if ?®¬??«ia®a Y  eY« ?a c®© ?aaF«®© a?®!-
?? ?®a«Y cea ¦Y?i ?a®cYa??.

Illegal character a?¬c®« (0x§ cY?Y)
˜Y¤®?aaa?¬e© a?¬c®« a?¬c®« (0a§ cY?Y)

?®¬??«ia®a caaaYa?« c ?aa®¤®¬ ae ©«Y Y¤®?aaa?¬e© a?¬-
c®«. ‚ec®¤?aai a ?¦Y eYaa ¤ae a?a?c®Y § cY?Y ia®F® a?¬c®-
« . ˜a® a®®!eY?Y ¬®¦Ya ce¤ c aiai ca«Y¤aac?Y «?e?a
? a ¬Yaa®c, ?YaY¤ ea ¬ ?a®aa aea?ae??.

Illegal initialization
˜Y¤®?aaa?¬ i ??ae? «?§ ae?i

??ae? «?§ ae?i ¬®¦Ya ce?®«iaiai «?!® cea ¦Y?Y¬ a?? 
?®aa ae, «?!®  ¤aYa®¬ F«®! «i®© extern ?«? static ?YaY-
¬Y®© ?«ia ?«? ¬?aa ?®aa a .

Illegal octal digit
˜Y¤®?aaa?¬ i c®ai¬Ya?c i ae?aea 

?®¬??«ia®a caaaYa?« c®ai¬Ya?cai ?®aa aa a Y¤®?aaa?-
¬®© c c®ai¬Ya?cea c?a« a ae?aea®© (8 ?«? 9).

– 276 –

Illegal parameter to __emit__
˜Y¤®?aaa?¬e© ? a ¬Yaa __emit__

‘aeYaacaia Y?®a®aeY ®Fa ?cY?i   ?®¬YeY?Y «?aYa «i-
ea § cY?© Y?®aaY¤aacY® c ?®¤. ˜ ?a?¬Ya, ce Y ¬®¦YaY
?YaY¤ ai «®? «iai ?YaY¬Yai ? ? ? a ¬Yaa c __emit__. ?!e-
iaY?i a¬. c ®??a ?? aea?ae?? __emit__.

Illegal pointer substraction
˜Y¤®?aaa?¬®Y cec?a ?Y a? § aY«i

‚e¤ Yaai ?a? ?®?ea?Y cec?a ?i a? § aY«i ?§ Y-a? § aY-
«i.

Illegal structure operation
˜Y¤®?aaa?¬ i ®?Ya ae?i a® aaaa?aaa®©

‘aaa?aaae ¬®Faa ?a?®«i§®c aiai a®«i?® c ®?Ya ae?ia a®c??
(.),  ¤aYa  (&) ?«? ?a?ac®Y?i (=), «?!® ?YaY¤ c aiai c
aea?ae?? ? ?§ aea?ae?© c ? cYaacY ? a ¬Yaa®c. ?®¬??«ia®a
caaaYa?« aaaa?aaaa, ?a?®«i§aY¬ai a ? ?®©-«?!® ¤aaF®© ®?Ya –
ae?Y©.

Illegal to take address of bit field
˜Y¤®?aaa?¬® !a ai  ¤aYa !?a®c®F® ?®«i

˜Y¤®?aaa?¬® !a ai  ¤aYa !?a®c®F® ?®«i, a®ai !a ai  ¤aYa
«i!ea ¤aaF?a ?®«Y© ¬®¦®.

Illegal use of floating point
˜Y¤®?aaa?¬®Y ?a?®«i§®c ?Y ?« c ieY© a®c??

??Ya ¤e a ?« c ieY© a®c?®© Y¤®?aaa?¬e c ®?Ya ae?ia
a¤c?F , ?®a §ai¤ea !a«Ycea ®?Ya ae?ia, aa«®cea ®?Ya ae?ia (?
:), ®!a eY?i ?® aae«?Y (*) ? Y?®a®aea ¤aaF?a ®?Ya ae?ia.
?®¬??«ia®a ®! aa¦?a c?a«® a ?« c ieY© a®c?®© c ? cYaacY
®?Ya ¤  ®¤®© ?§ ia?a ®?Ya ae?©.

Illegal use of pointer
˜Y¤®?aaa?¬®Y ?a?®«i§®c ?Y a? § aY«i

“? § aY«? ¬®Faa ?a?®«i§®c aiai ®?Ya ae?i¬? a«®¦Y?i, ce-
c?a ?i, ?a?ac®Y?i, ®!a eY?i ?® aae«?Y (*) ? aaaY«?? (->).
‚ ?aa®¤®¬ ae ©«Y ®! aa¦Y a? § aY«i a ? ?®©-«?!® ¤aaF®©
®?Ya ae?Y©.

Improper use of a typedef ?¤Ya?ae?? a®a
˜Y?a c?«i®Y ?a?®«i§®c ?i typedef ?¤Ya?ae?? a®a

‚ ?aa®¤®¬ ae ©«Y a?¬c®«?cYa?®Y ?¬i typedef caaaYa?«®ai
c cea ¦Y??   ¬YaaY ?YaY¬Y®©. ˜a®cYaiaY ®!eic«Y?Y ia®F®
?¬Y? ? c®§¬®¦eY ®?Yc a??.

Improper use of a typedef symbol
˜Y?a c?«i®Y ?a?®«i§®c ?i a?¬c®«?cYa?®F® ?¬Y? typedef

‚ ?aa®¤®¬ ae ©«Y a?¬c®«?cYa?®Y ?¬i typedef caaaYa?«®ai
c cea ¦Y??   ¬YaaY ?YaY¬Y®©. ˜a®cYaiaY ®!eic«Y?Y ia®F®

– 277 –
?¬Y? ? c®§¬®¦eY ®?Yc a??.

Incompatible type conversion
˜Ya®c¬Yaa?¬®Y ?aY®!a §®c ?Y a?? 

’aY!aY¬®Y ?a?cY¤Y?Y a??  Yc®§¬®¦®.

Incorrect command-line option: ®?ae?i
˜Y?a c?«i i ®?ae?i ?®¬ ¤®© aaa®??: ®?ae?i

?®¬??«ia®a Y a a?®§ Ya ? a ¬Yaa ?®¬ ¤®© aaa®?? ? ?
¤®?aaa?¬ai ®?ae?i.

Incorrect configuration file option: ®?ae?i
˜Y?a c?«i i ®?ae?i ae ©«  ?®ae?Faa ae??: ®?ae?i

?®¬??«ia®a Y a a?®§ Ya ? a ¬Yaa ae ©«  ?®ae?Faa ae??
? ? ¤®?aaa?¬ai ®?ae?i; ?a®cYaiaY  «?c?Y cY¤aeYF® ¤Yae?a  (-).

Incorrect number format
˜Y?a c?«ie© ae®a¬ a c?a« 

?®¬??«ia®a caaaYa?« c eYaa ¤ae a?a?c®¬ c?a«Y ¤Yaia?c-
ai a®c?a.

Incorrect use of default
˜Y?a c?«i®Y ?a?®«i§®c ?Y a«®c  default

?®¬??«ia®a Y  eY« ?®a«Y ?«icYc®F® a«®c  default ¤c®Y-
a®c?i.

Inline assembly not allowed in an inline function
‚aaa®Y®Y  aaY¬!«?a®c ?Y c® caaa ?c Y¬®© aea?ae?? § ?aYeY®

?®¬??«ia®a Y ¬®¦Ya ®!a ! aec ai ®?Ya a®ae caaa®Y®F®
 aaY¬!«?a®c ?i caaa? caaa ?c Y¬ea (inline) aea?ae?© ‘++.
?aaY¬!«YaeY ®?Ya a®ae ¬®Faa !eai ®ae®a¬«Ye c ¬ ?a®a, «?!®
ce ¬®¦YaY a!a ai ?« aa ? ¬ia? inline, ?«? ¬®¦® a!a ai
caaa®YeY  aaY¬!«YaeY ?®¤e.

Invalid indirection
˜Y¤®?aaa?¬®Y ®!a eY?Y ?® aae«?Y

??Ya ae?i ®!a eY?i ?® aae«?Y (*) aaY!aYa c ? cYaacY
®?Ya ¤  Y-?aaa®F® (Y void) a? § aY«i.

Invalid macro argument separator
˜Y¤®?aaa?¬e© a §¤Y«?aY«i  aFa¬Ya®c ¬ ?a®a 

‚ ®?aY¤Y«Y?? ¬ ?a®a   aFa¬Yae ¤®«¦e a §¤Y«iaiai § –
?iae¬?. ?®¬??«ia®a caaaYa?« ?®a«Y ?®a«Y¤YF® ?¬Y?  aFa¬Ya 
¤aaF®© a?¬c®« a §¤Y«?aY«i.

Invalid point addition
˜Y¤®?aaa?¬®Y a«®¦Y?Y a? § aY«i

– 278 –
‚ ?aa®¤®¬ ae ©«Y caaaYa?« ai ?®?ea?  a«®¦Y?i ¤caa a? –
§ aY«Y©.

Invalid use of dot
˜Y¤®?aaa?¬® ?a?®«i§®c ?Y a®c??

‡  ®?Ya ae?Y© “a®c? ” (.) ¤®«¦Y Y?®aaY¤aacY® a«Y¤®-
c ai ®?Ya ¤.

Items of type a?? need constructors and can’t be passed
with … ˜«Y¬Yae a??  a?? aaY!aia ?®aaaa?a®a®c ? Y ¬®Faa
!eai ?YaY¤ e a …

˜Y¤®?aaa?¬® ?YaY¤ c ai ®!eY?a a a??®¬, ¤«i ?®a®a®F® Y-
®!a®¤?¬ ?®aaaa?a®a, c ?YaY¬Y®¬ a??a?Y  aFa¬Ya®c (§ ¤ c –
Y¬®¬ a …)

Left side must be a structure
‹Yc i c aai ¤®«¦  !eai aaaa?aaa®©

‹Yc i c aai ®?Ya ae?? “a®c? ” (.) (?«? ®?Ya ae?? ‘++
“a®c?  a® §cY§¤®c?®©”) ¤®«¦  ?¬Yai a?? aaaa?aaae. ‚ ¤ ®¬
a«ac Y ia® Y a ?.

Linkage specification not allowed
‘?Yae?ae?? ae?i ?®¬?®®c?? Y a §aYe Yaai

‘?Yae?ae?? ae?? a??  ?®¬?®®c??,  ?a?¬Ya extern “C”, ¤®-
?aaa?¬e a®«i?®   aa®cY ae ©« . ˜YaYYa?aY ¤ ®Y ®!eic«Y?Y
aea?ae??   aa®cYi ae ©« .

Lvalue required
’aY!aYaai ?¬YaieYY § cY?Y

‹Yc i c aai ®?Ya ae?? ?a?ac®Y?i ¤®«¦  ic«iaiai  ¤aYaa-
Y¬e¬ cea ¦Y?Y¬. ‘i¤  ca®¤ia c?a«®ceY ?YaY¬YeY ?«? a? § –
aY«?-?YaY¬YeY, aae«??   ?®«i aaaa?aaa, «?!® ®!a eY?Y ?®
aae«?Y cYaY§ a? § aY«i, «?!® i«Y¬Ya ¬ aa?c , § ¤ e© ?-
¤Y?a®¬.

Macro argument syntax error
‘?a ?a?cYa? i ®e?!?  c  aFa¬YaY ¬ ?a®a 

?aFa¬Ya c ®?aY¤Y«Y?? ¬ ?a®a  ¤®«¦Y ic«iaiai ?¤Ya?-
ae?? a®a®¬. ?®¬??«ia®a caaaYa?« Y?®a®ae© a?¬c®«, ?®a®ae© Y
¬®¦Ya ic«iaiai c aaii ?¤Ya?ae?? a®a , a ¬, F¤Y ®¦?¤ «ai  a-
Fa¬Ya.

Macro expansion too long
‘«?e?®¬ ¤«?®Y ¬ ?a®a ae?aY?Y

˜ §¬Ya ¬ ?a®a ae?aY?i Y ¬®¦Ya ?aYcee ai 4,096 a?¬c®-
«®c.

– 279 –
main must have a return type of int
main ¤®«¦  ?¬Yai a?? c®§ca a  int

? aea?ae?? main ?aY¤eic«iiaai a?Yae? «ieY aaY!®c ?i;
®¤® ?§ ?a a®aa®?a c a®¬, ca® ®  Y ¬®¦Ya ?¬Yai a?? c®§c-
a a  ?®©, Y¦Y«? int.

May compile only one file when an output file name is given
˜a? § ¤ ®¬ ?¬Y? cea®¤®F® ae ©«  c®§¬®¦  ?®¬??«iae?i
a®«i?® ®¤®F® ae ©« 

‚e § ¤ «? ®?ae?i ?®¬ ¤®© aaa®?? -®, ?®a®a i ?®§c®«iYa
a®«i?® ®¤® ?¬i cea®¤®F® ae ©« . ˜Yace© ae ©« ?®¬??«?aaYaai,
  ®aa «ieY ae ©«e ?F®a?aaiaai.

Member ?®¬?®Ya initialized more than once
?®¬?®Ya ??ae? «?§?aaYaai !®«YY ®¤®F® a § 

‚ ?®aaaa?a®aY ?« aa  ‘++ a??a®? ??ae? «?§ ae??, a«Y¤ai-
e?© §  § F®«®c?®¬ ?®aaaa?a®a , c?«ic Ya ®¤® ? a® ¦Y ?®«Y
!®«YY ®¤®F® a § .

Member functions can only have static storage class
”a?ae??-?®¬?®Yae ¬®Faa ?¬Yai a®«i?® ?« aa ? ¬ia? static

…¤?aacYe¬ ?« aa®¬ ? ¬ia?, ¤®?aaa?¬e¬ ¤«i aea?-
ae??-?®¬?®Ya , ic«iYaai static.

Misplaced break
˜Y?a c?«i® a a?®«®¦Ye© break

?®¬??«ia®a ®! aa¦?« ®?Ya a®a break cY ?®aaaa?ae??
®?Ya a®a  switch ?«? ae??« .

Misplaced continue
˜Y?a c?«i® a a?®«®¦Ye© continue

?®¬??«ia®a ®! aa¦?« ®?Ya a®a continue cY ?®aaaa?ae??
ae??« .

Misplaced decimal point
˜Y?a c?«i® a a?®«®¦Y i ¤Yaia?c i a®c? 

?®¬??«ia®a ®! aa¦?« ¤Yaia?cai a®c?a c i?a?®YaY
?®aa ae a ?« c ieY© a®c?®©.

Misplaced elif directive
˜Y?a c?«i® a a?®«®¦Y i ¤?aY?a?c  elif

?®¬??«ia®a ®! aa¦?« ¤?aY?a?ca #elif !Y§ a®®acYaaacai-
eY© Y© ¤?aY?a?ce #if, #ifdef ?«? #ifndef.

Misplaced else
˜Y?a c?«i® a a?®«®¦Ye© else

?®¬??«ia®a ®! aa¦?« ®?Ya a®a else !Y§ a®®acYaaacaieYF®
Y¬a ®?Ya a®a  if. ˜a® a®®!eY?Y ¬®¦Ya !eai ce§c ® ? ? «?e-
?¬ ®?Ya a®a®¬ else, a ? ? «?eY© a®c?®© a § ?ia®©, ®aaaaa-

– 280 –
ac?Y¬ ae?Faa®© a?®!?®©, «?!® Y?®a®a®© a?a ?a?cYa?®© ®e?!-
?®© c ?aY¤e¤aeY¬ ®?Ya a®aY if.

Misplaced else directive
˜Y?a c?«i® a a?®«®¦Y i ¤?aY?a?c  else

?®¬??«ia®a caaaYa?« ¤?aY?a?ca #else !Y§ a®®acYaaacaieY©
Y© ¤?aY?a?ce #if, #ifdef ?«? #ifndef.

Misplaced endif directive
˜Y?a c?«i® a a?®«®¦Y i ¤?aY?a?c  endif

?®¬??«ia®a caaaYa?« ¤?aY?a?ca #endif !Y§ a®®acYaaacai-
eY© Y© ¤?aY?a?ce #if, #ifdef ?«? #ifndef.

Multiple base classes require explicit class names
?®¦YaacYeY ! §®ceY ?« aae aaY!aia icea ?¬Y ?« aa®c

‚ ?®aaaa?a®aY ?« aa  ‘++ ? ¦¤e© ce§®c ?®aaaa?a®a  ! –
§®c®F® ?« aa  c § F®«®c?Y ?®aaaa?a®a  ¤®«¦Y c a«ac Y, Ya«?
?¬YYaai !®«YY ®¤®F® Y?®aaY¤aacY®F® ! §®c®F® ?« aa ,
c?«ic ai ?¬i ! §®c®F® ?« aa .

Multiple declaration for ?¤Ya?ae?? a®a
?®¦YaacY®Y ®!eic«Y?Y ?¤Ya?ae?? a®a 

?¤Ya?ae?? a®a Y¤®?aaa?¬® ®!eic«Y !®«YY ®¤®F® a § .
˜a® ¬®¦Ya ?a®?§®©a? c a«ac Y ?a®a?c®aYc?cea ®!eic«Y?©,  ?-
a?¬Ya int a; double a;, c a«ac Y, ?®F¤  aea?ae?i ®!eic«Y 
¤ca¬i a §e¬? a?®a®! ¬?, «?!® ?a? ?®ca®aY?? Y?®a®a®F® ®!e-
ic«Y?i, Y ic«iieYF®ai aea?ae?Y© extern ?«? ?a®aa®© ?YaY¬Y-
®©.

Multiple scope qualifiers
?®¦YaacYeY ?c «?ae?? a®ae ?®aY?aa 

„ e© ?¤Ya?ae?? a®a ‘++ !e« ?c «?ae?ae?a®c  !®«YY cY¬
®¤?¬ ?¬YY¬ ?« aa ; ?¤Ya?ae?? a®a ¬®¦Ya !eai ?c «?ae?ae?a®c 
¬ ?a?¬a¬ ®¤?¬ ?« aa®¬.

Must take address of a memory location
„®«¦Y aaeYaac®c ai  ¤aYa ? ¬ia?

‚ e ?aa®¤e© ae ©« ?a?®«i§®c « ®?Ya ae?i  ¤aYa ae?? (&) c
cea ¦Y??, ?®a®a®Y Y ¬®¦Ya ce?®«iai  ¤aYa ae?i ? ¬ia?,  ?-
a?¬Ya, c a«ac Y aYF?aaa®c®© ?YaY¬Y®©.

Need an identifier to declare
„«i ®!eic«Y?i aaY!aYaai ?¤Ya?ae?? a®a

‚ ¤ ®¬ ?®aY?aaY ¤«i § cYaeY?i ®!eic«Y?i aaY!®c «ai
?¤Ya?ae?? a®a. ˜a?c?®© ia®F® a®®!eY?i ¬®F aa ai typedef
!Y§ ?¬Y? ?«? «?eii a®c?  a § ?ia®©   aa®cY ae ©« . ‚ ‘++
ia® ¬®F«® !eai ?¬i ?« aa , Y?a c?«i® ?a?®«i§®c ®Y c ? –
cYaacY ¤aaF®F® a®¤  ?¤Ya?ae?? a®a .

‘new’ and ‘delete’ not supported
`new’ ? ‘delete’ Y ?®¤¤Ya¦?c iaai

– 281 –
˜a? cec?a«Y?? cea ¦Y?i ?aYFa?a®c e¬ ®a« ¤c??®¬
®?Ya ae?? new ? delete Y ?®¤¤Ya¦?c iaai.

No : following ?
˜Ya : ?®a«Y ?

??Ya ae?? c®?a®a?aY«ie© § ? (?) ? ¤c®Ya®c?Y (:) Y a®-
®acYaaacaia ¤aaF ¤aaFa c ¤ ®¬ cea ¦Y??. ‚®§¬®¦®, ®aaaaa-
acaYa ¤c®Ya®c?Y, «?!® Y?a c?«i® c«®¦Y  ?«? ®aaaaaacaYa
?aaF« i a?®!? .

No base class to initialize
?aaaaaacaYa ! §®ce© ?« aa ¤«i ??ae? «?§ ae??

?®aaaa?a®a ?« aa  ‘++ ?ea Yaai Yic® ce§c ai ?®a-
aaa?a®a ! §®c®F® ?« aa , a®F¤  ? ? ia®a ?« aa !e« ®!eic«Y
!Y§ ! §®cea ?« aa®c. ˜a®cYaiaY ®!eic«Y?i.

No body defined for this inline function
˜Y ®?aY¤Y«Y® aY«® ¤ ®© caaa ?c Y¬®© aea?ae??

„  i aea?ae?i ‘++ ®?aY¤Y«Y  ? ? inline, ® aY«® ia®©
aea?ae?? Y  ©¤Y®. ’Y«® caaa ?c Y¬®© aea?ae?? ®!ec® ?®¬Ye –
Yaai c a®¬ ¦Y ae ©«Y § F®«®c? , ca® ? ®!eic«Y?Y aea?ae??, ? ?
¤«i aea?ae?©-c«Y®c, a ? ? ¤«i ®!ecea caaa ?c Y¬ea aea?ae?©.

No constructor parameters allowed for array of class
˜ a ¬Yaae ?®aaaa?a®a  ¤«i ¬ aa?c  ?« aa  § ?aYeYe

˜a? ®!eic«Y?? ¬ aa?c  ?« aa®c ‘++ ?®aaaa?a®aa ?« aa 
? a ¬Yaae Y ?YaY¤ iaai. „«i ?®aaaa?a®c ?i ? ¦¤®F® i«Y¬Y-
a  a ?®F® ¬ aa?c  ¤®«¦Y ?a?®«i§®c aiai ?®aaaa?a®a, Y ?a?-
?¬ ie?© ? a ¬Yaa®c (?®aaaa?a®a ?® a¬®«c ?i).

No file name ending
˜Y?a c?«i®Y ®?®c ?Y c ?¬Y? ae ©« 

‚ ?¬Y? ae ©«  ®?Ya a®a  #include ®aaaaaacaYa Y®!a®¤?-
¬ i § cYae ie i ?¬i ? cec?  ?«? aF«®c i a?®!? .

No file names given
˜Y § ¤ e ?¬Y  ae ©«®c

?®¬ ¤ i aaa®?  ?®¬??«ia®a  Turbo C++ ?®¬ ¤®© aaa®??
(TCC) Y a®¤Ya¦?a ?¬Y ae ©«®c. ‚e ®!i§ e § ¤ ai ?¬i ?aa®¤-
®F® ae ©« .

No matching )
˜Ya a®®acYaaacaieY© )

?aaaaaacaYa «Yc i ?aaF« i a?®!? , ?®a®a i a®®acYaaac®-
c «  !e ?¬YieY©ai ?a c®© ?aaF«®© a?®!?Y. ˜a®cYaiaY ¤ ®Y
cea ¦Y?Y   a! « a?a®c ®aai ?a cea ? «Ycea ?aaF«ea a?®-
!®?.

Nonportable pointer conversion
˜Y¬®!?«i®Y ?aY®!a §®c ?Y a? § aY«i

’aY!aYaai ce?®«Y?Y Yic®F® ?aY®!a §®c ?i ¬Y¦¤a a? –

– 282 –
§ aY«Y¬ ? ?aYFa «ie¬ a??®¬, ® ia? a??e ?¬Yia a §e© a §-
¬Ya. ’ ?®Y ?aY®!a §®c ?Y Y ¬®¦Ya !eai ce?®«Y® !Y§ ic®F®
?a?cY¤Y?i a??®c. ’ ?®Y ?aY®!a §®c ?Y ¬®¦Ya ? Y ?¬Yai
a¬ea« , ?®ia®¬a ?a®cYaiaY, ¤Y©aac?aY«i® «? ®® c ¬ Y®!a®-
¤?¬®.

Non-virtual function aea?ae?i declared pure
˜Y-c?aaa «i i aea?ae?i ®!eic«Y  c?aa®©

—?aae¬? (pure) ¬®Faa !eai ®!eic«Ye a®«i?® c?aaa «ieY
aea?ae??, ?®a?®«i?a ?a®?§c®¤eY ?« aae ¤®«¦e ?¬Yai c®§¬®¦-
®aai ?a ?YaY®?aY¤Y«Y?i.

Not an allowed type
˜Ya §aYeYe© a??

‚ c eY¬ ?aa®¤®¬ ae ©«Y a®¤Ya¦?aai ®!eic«Y?Y Y?®a®a®F®
Ya §aYeY®F® a?? ;  ?a?¬Ya, aea?ae??, c®§ca e ieai aea?ae?i
?«? ¬ aa?c.

Not a valid expression format type
˜Y¤®?aaa?¬e© a?? ae®a¬ a  cea ¦Y?i

˜Y¤®?aaa?¬e© a?Yae?ae?? a®a ae®a¬ a  ?®a«Y cea ¦Y?i c ®?-
Y cec?a«Y?© ?«?  !«i¤Y?i. „®?aaa?¬e¬ a?Yae?ae?? a®a®¬ ae®a-
¬ a  ic«iYaai ®?ae?® «i®Y c?a«® ?®ca®aY?©, §  ?®a®ae¬ a«Y-
¤aYa a?¬c®« ae®a¬ a  (c, d, f[n], h, x, m, p, r ?«? s).

No type information
˜Ya ?ae®a¬ ae?? ® a??Y

?a« ¤c?? Y ?¬YYa ?ae®a¬ ae?? ® a??Y ¤ ®© ?YaY¬Y®©.
?®¤a«i !e« a?®¬??«?a®c  ?a? ce?«icY®¬ ®a« ¤c??Y, «?!®
¤aaF?¬ ?®¬??«ia®a®¬ ?«?  aaY¬!«Ya®¬.

Numeric constant too large
—?a«®c i ?®aa a  a«?e?®¬ cY«?? 

‘aa®?®ceY ? a?¬c®«ieY a?a c«iie?Y ?®a«Y¤®c aY«i®aa?
!®«ieY eYaa ¤ae a?a?c®F® \xFF ?«? c®ai¬Ya?c®F® \377 aFYY-
a?a®c e !eai Y ¬®Faa. „caa! ©a®ceY a?¬c®«ieY ?®aa ae
¬®Faa !eai § ¤ e ?a? ?®¬®e? ca®a®© ®!a a®©  ?«®®© cYa-
ae. ˜ ?a?¬Ya, \x0D\x0A ?aY¤aa c«iYa a®!®© ¤caa! ©a®cai ?®a-
a aa. —?a«®c®© «?aYa « ?®a«Y a?a c«iieY© ?®a«Y¤®c aY«i®aa?
a«Y¤aYa a §!?a:

printf(“\x0D” “12345”);

’Y¬ a ¬e¬ !a¤Ya cecY¤Y c®§ca a ? aYa?? ? § aY¬ 12345.

Object must be initialized
?!eY?a ¤®«¦Y !eai ??ae? «?§?a®c 

„ e© ®!eY?a ‘++ ®!eic«Y ? ? const, ® Y ??ae? «?§?-
a®c . ˜®a?®«i?a § cY?i Y¬a ?a?ac ?c aiai Y ¬®Faa, a®
??ae? «?§ ae?i ¤®«¦  !eai ce?®«Y  c a®c?Y ®!eic«Y?i.

Only one of a set of overloaded functions can be aea?ae?i
’®«i?® ®¤? ?§  !®a  ?YaYFaa¦Yea aea?ae?© ¬®¦Ya !eai

– 283 –
aea?ae?i

”a?ae?? ‘++ ?® a¬®«c ?i ic«iiaai ?YaYFaa¦Ye¬?, ?
?®¬??«ia®a ?a?ac ?c Ya ? ¦¤®© ?§ ?a ®c®Y ?¬i. …a«? ce a®-
a?aY ?YaY®?aY¤Y«?ai ?a?ac®Y?Y ?®¬??«ia®a®¬ ®c®F® ?¬Y?,
®!eic?c aea?ae?i “aea?ae?i”, ce ¬®¦YaY a¤Y« ai ia® a®«i?® ¤«i
®¤®F® ?§  !®a  aea?ae?© a aY¬ ¦Y ?¬YY¬. (c ?a®a?c®¬ a«a-
c Y ?®¬?®®ce?? ®! aa¦?a !®«YY ®¤®© F«®! «i®© aea?ae?? a
aY¬ ¦Y ?¬YY¬).

Operand expected
?¦?¤ «ai ®?Ya ¤

˜a? ®aeY?Y aY?aeYF® cea ¦Y?i ?®¬??«ia®a ?a?®«i§®c «
caY ®?Ya ¤e a ieY, cY¬ ?®c?«?ai caY ®?Ya ae??. ˜a®cYaiaY
c®§¬®¦eY «?e?Y a?¬c®«e ®?Ya ae?© (+, *, /, ? a.¤.) ?«? ®a-
aaaaacaie?Y ?¬Y  ?YaY¬Yea).

Operands are of different or incompatible type
??Ya ¤e ?¬Yia a §eY ?«? Ya®c¬Yaa?¬eY a??e

‹Yc i ? ?a c i c aa? !? a®© ®?Ya ae?? (+, /, == ?
a.¤.) Y ¬®Faa !eai ®!eY¤?Ye c ?®¤®!®¬ cea ¦Y??.

Operator [] missing ]
‚ operator[] ®aaaaaacaYa ]

‚ ‘++ operator[] !e«  ®!eic«Y  ? ? operator[. ‚e ¤®«¦-
e ¤®! c?ai Y¤®aa ieai ?c ¤a aai a?®!?a ?«? YeY ? ?-«?!®
?a?a c?ai ®!eic«Y?Y.

operator -> must return a pointer or a class
operator -> ¤®«¦  c®§ca e ai a? § aY«i ?«? ?« aa

”a?ae?i ‘++ operator-> ¤®«¦  !eai ®!eic«Y  ? ? c®§c-
a e ie i ?« aa ?«? a? § aY«i   ?« aa (?«? aaaa?aaaa ?«?
®!eY¤?Y?Y). ‚ «i!®¬ a«ac Y ia® ¤®«¦® !eai Yca® a ?®Y, ?
cY¬a ?a?¬Y?¬  ®?Ya ae?i ->.

Operator cannot be applied to these operand types
??Ya ae?i Y ?a?¬Y?¬  ? ia?¬ a?? ¬ ®?Ya ¤®c

‹Yc i ?«? ?a c i aa®a®  !? a®© ®?Ya ae?? (+,-,== ? a.
¤.) Y ?¬YYa a?? , ¤®?aaa?¬®F® ¤«i ¤ ®© ®?Ya ae??;  ?a?-
¬Ya, ce ?ea «?ai a«®¦?ai ¤c  ¬ aa?c .

Operator delete must have a single parameter of type void
??Ya ae?i delete ¤®«¦  ?¬Yai ®¤? ? a ¬Yaa a??  void

˜YaYFaa¦Y i ®?Ya ae?i ‘++ delete !e«  ®!eic«Y  ? cY.

Operator delete must return void
??Ya ae?i delete ¤®«¦  c®§ca e ai a?? void

˜YaYFaa¦Y i ®?Ya ae?i ‘++ delete !e«  ®!eic«Y  ? cY.

Operator new must have an initial parameter of type size_t
??Ya ae?i new ¤®«¦  ?¬Yai ? a ¬Yaa ??ae? «?§ ae?? a??  size_t

– 284 –

??Ya ae?i new ¬®¦Ya !eai ®!eic«Y  a ?a®?§c®«ie¬ c?a«®¬
? a ¬Yaa®c, ® ®!i§ aY«i® ¤®«¦  ?¬Yai a®ai !e ®¤? ? a –
¬Yaa, c ?®a®a®¬ !a¤Ya  a®¤?aiai a §¬Ya a a?aY¤Y«iY¬®© ? ¬i-
a?.

Operator new must have an single parameter of type size_t
??Ya ae?i new ¤®«¦  ?¬Yai ®¤? ? a ¬Yaa a??  size_t

˜YaYFaa¦Y i ®?Ya ae?i ‘++ new !e«  ®!eic«Y  ? cY.

Operator new must return an object of type void
??Ya ae?i new ¤®«¦  c®§ca e ai ®!eY?a a??  void

˜YaYFaa¦Y i ®?Ya ae?i ‘++ new !e«  ®!eic«Y  ? cY.

Other objects cannot be declared in a function definition
„aaF?Y ®!eY?ae Y ¬®Faa !eai ®!eic«Ye c ®?aY¤Y«Y?? aea?ae??

‡  aY«®¬ aea?ae?? Y ¬®¦Ya aa®iai § ?ia i ? a«Y¤®c ai
¤aaF?Y ®!eic«Y?i.

˜ ?a?¬Ya,

int f(), j /* ®!eic«Y?Y f, § ?ia i ¤®?aaa?¬ ,
j a ?¦Y ®!eic«iYaai ? ? int */
int f() (*return 0;*), j; /* §¤Yai f ®?aY¤Y«iYaai. ?®i-
a®¬a § ?ia i Y¤®?aaa?¬  */

Overlays only supported in medium, large and huge
memory models
?cYa«Y? ¤®?aaa?¬e a®«i?® ¤«i ¬®¤Y«Y© ? ¬ia? medium,
large ? huge

? ? ®!eiai«®ai c ?« cY 4, ?cYa«Y? ¤®?aaa?¬e a®«i?® c
?a®Fa ¬¬ a a ¬®¤Y«i¬? ? ¬ia? medium, large ? huge.

Overloadable operator expected
?¦?¤ Yaai ?YaYFaa¦ Y¬ i ®?Ya ae?i

˜®ca? caY ®?Ya ae?? ‘++ ¬®Faa !eai ?YaYFaa¦Ye. …¤?a-
acYe¬? ?a?«icY?i¬? ic«iiaai ®?Ya ae?? ce!®a  ?®«i (.),
a®c?  a® §cY§¤®c?®© (.*), ¤c®©®Y ¤c®Ya®c?Y (::) ? aa«®c®Y
cea ¦Y?Y (?:). ??Ya ae?? ?aY?a®aeYaa®a  # ? ## Y ic«iiaai
®?Ya ae?i¬? i§e?  ‘ ?«? ‘++ ? ?®a®¬a ?YaYFaa¦Ye !eai Y ¬®-
Faa. ˜a®c?Y § ?? ?a?aa ae??, Y ca®¤ie?Y c c?a«® ®?Ya ae?©,
 ?a?¬Ya, a®c?  a § ?ia®©, a §a¬YYaai, a ?¦Y Y ¬®Faa !eai
?YaYFaa¦Ye.

Overloaded function is not allowed here
˜YaYFaa¦Y i aea?ae?i §¤Yai Y a §aYeY 

˜a? ?§¬YY?? § e?ae ¤®aaa?  ?®¬?®Ya  ! §®c®F® ?« aa 
‘++ c ?a®?§c®¤®¬ ?« aaY ia®a ?®¬?®Ya Y ¬®¦Ya ic«iaiai
?YaYFaa¦Y®© aea?ae?Y©.

Overloaded function resolution not supported

– 285 –
˜ §aYeY?Y ?YaYFaa¦Y®© aea?ae?? Y ?®¤¤Ya¦?c Yaai

˜a? cec?a«Y?? cea ¦Y?i ?aYFa?a®c e¬ ®a« ¤c??®¬
a §aYeY?Y ?YaYFaa¦Yea aea?ae?© ?«? ®?Ya ae?© Y ?®¤¤Ya¦?c –
Yaai, ¤ ¦Y ¤«i ?a?Y¬   ¤aYa .

Parameter ? a ¬Yaa missing name
?aaaaaacaYa ?¬i ? a ¬Yaa 

‚ § F®«®c?Y ®?aY¤Y«Y?i aea?ae?? ia®a ? a ¬Yaa a®aa®?a
a®«i?® ?§ a?Yae?ae?? a®a  a?? , !Y§ ?¬Y? ? a ¬Yaa . ‚ ‘ ia®
Y¤®?aaa?¬®. (‚ ‘++ ia® a §aYeY®, ® a®F¤  Yc®§¬®¦® a®a-
« aiai   ? a ¬Yaa aea?ae??.)

Parameter names are used only with a function body
?¬Y  ? a ¬Yaa®c ?a?®«i§aiaai a®«i?® c aY«Y aea?ae??

˜a? ®!eic«Y?? aea?ae?? (!Y§ ®?aY¤Y«Y?i aY«  aea?ae??)
ce ¤®«¦e ?a?®«i§®c ai «?!® ?aaaeY ?aaF«eY a?®!??, «?!® ?a®-
a®a?? aea?ae??. ‘??a®? ?¬Y ? a ¬Yaa®c Y a §aYeY.

˜a?¬Yae ®!eic«Y?©:

int func(); /* ®!eic«Y?Y !Y§ ?a®a®a??  ¤®?aaa?¬® */
int func(int, int); /* ®!eic«Y?Y a ?a®a®a??®¬ ¤®?aaa?¬® */
int func(int i, int j); /* ?¬Y  ? a ¬Yaa®c c ?a®a®a??Y ¤®?aa
a?¬e */
int func(i, j); /* a®«i?® ?¬Y  ? a ¬Yaa®c Y¤®?aaa?¬e*/

Pointer required on left side of ->
‚ «Yc®© c aa? -> aaY!aYaai a? § aY«i

‚ «Yc®© c aa? ®?Ya ae?? (->) Y ¤®?aaa?¬® ?cYF®, ?a®¬Y
a? § aY«i.

Pointer to a static member cannot be created
“? § aY«i   aa a?cYa??© ?®¬?®Ya Y ¬®¦Ya !eai a®§¤ 

“? § aY«?   ?®¬?®Yae ?« aa  ‘++ ¬®Faa !eai a®§¤ e
a®«i?® ¤«i ®!ecea ?®¬?®Ya®c ¤ ea ? aea?ae?©-?®¬?®Ya®c.
‘®§¤ ?Y a? § aY«i aa a?cYa?®F® ?®¬?®Ya  Yc®§¬®¦®.

Previously specified default argument value cannot be
changed
˜ YY § ¤ ®Y § cY?Y a¬®«c ?i  aFa¬Ya  Y ¬®¦Ya
?§¬Yiaiai

…a«? ? a ¬Yaa aea?ae?? ‘++ ®!eic«iYaai a® § cY?Y¬ ?®
a¬®«c ?i, a® ¤ ®Y § cY?Y Y ¬®¦Ya !eai ?§¬YY® ?«?
®?aeY® c «i!®¬ ¤aaF®¬ ®!eic«Y?? a®© ¦Y a ¬®© aea?ae??.

Pure function aea?ae?i not overriden in ?« aa
—?aa i aea?ae?i Y ?YaY®?aY¤Y«Y  c ?« aaY

—?aa i c?aaa «i i aea?ae?i ¤®«¦  !eai «?!® ?YaY®?aY¤Y-
«Y  (®ce¬ ®!eic«Y?Y¬) «?!® ?YaY-®!eic«Y  ? ? c?aa i c
?a®?§c®¤®¬ ?« aaY.

Reference member ?®¬?®Ya is not initialized
?®¬?®Ya – aae«?  Y ??ae? «?§?a®c 

– 286 –

‘ae«?? caYF¤  ¤®«¦e !eai ??ae? «?§?a®c e¬?. ?®¬?®-
Ya ?« aa  a?? aae«?? ¤®«¦Y ?¬Yai ??ae? «?§ a®a c® caYa
?®aaaa?a®a a¤«i ¤ ®F® ?« aa . ˜a® ®§ c Ya, ca® ce Y ¬®-
¦YaY § c?aYai ®a ?®¬??«ia®a  c c®?a®aY FYYa ae?? ?®aaaa?a®-
a®c¤«i a ?®F® ?« aa , ?®a?®«i?a Y?§cYaa®, ? ? ??ae? «?§?-
a®c ai aae«??.

Reference member ?®¬?®Ya needs a temporary for
initialization
?®¬?®Ya – aae«?  aaY!aYa caY¬Yai ? ¬iai ¤«i ??ae? –
«?§ ae??

˜®«i§®c aY«i § ¤ « ?aa®¤®Y § cY?Y aae«??, ?®a®a®Y Y
ic«i«®ai ?¬Yaie?¬ § cY?Y¬ a?? ,   ?®a®ae© aaa ®c«Y 
aae«? . ˜a® aaY!aYa, ca®!e ?®¬??«ia®a ?®«ac?« caY¬Yai ? –
¬iai ¤«i ??ae? «?§ ae??. ˜®a?®«i?a ia  caY¬Y i ? ¬iai ®a-
aaaaacaYa, ??ae? «?§ ae?i Y¤Y©aac?aY«i .

register is the only storage class allowed
Y¤?aacYe¬ a §aYeYe¬ ?« aa®¬ ? ¬ia? ic«iYaai register

…¤?aacYe¬ a §aYeYe¬ ?« aa®¬ ? ¬ia? ¤«i ? a ¬Yaa®c
aea?ae?? ic«iYaai register.

Repeat count neads an lvalue
„«i acYac??  ae??«®c aaY!aYaai ?¬YaieYY § cY?Y

‚ea ¦Y?Y ?YaY¤ § ?ia®© (,) c ®?Y Watch ?«? Evaluate
¤®«¦® ic«iaiai ¤®?aa? ie?¬ ¬ ??a«iae?? a ?¬ ac aa?®¬ ? ¬i-
a?. ˜ ?a?¬Ya, a«Y¤aie?Y cea ¦Y?i Y¤®?aaa?¬e:

i++,10d
x = y, 10m

Right side of .* is not a member pointer
˜a c i c aai .* Y ic«iYaai a? § aY«Y¬ ?®¬?®Ya 

˜a c i c aai ®?Ya ae?? ‘++ “a®c?  a® §cY§¤®c?®©” (.*)
¤®«¦  !eai ®!eic«Y  ? ? a? § aY«i   ?®¬?®Ya ?« aa , § –
¤ ®F® «Yc®© c aaii ®?Ya ae??. ‚ ¤ ®¬ a«ac Y ?a c i c aai
Y ic«iYaai a? § aY«Y¬ ?®¬?®Ya .

Side effects are not allowed
˜®!®ceY iaeaeY?ae Y a §aYeYe

‚ ®?Y  !«i¤Y?i (Watch) ?®!®ceY iaeaeY?ae, a ??Y ? ?
?a?ac®Y?i, ++ ?«? –, Y a §aYeYe. ?!e i ®e?!?  a®aa®?a c
?a?®«i§®c ?? x=y (Y¤®?aaa?¬®) c¬Yaa® x==y ?a? ?a®cYa?Y a –
cYaac  x ? y.

Size of ?¤Ya?ae?? a®a unknown or zero
˜ §¬Ya ?¤Ya?ae?? a®a  Y?§cYaaY ?«? a«Yc®©

„ e© ?¤Ya?ae?? a®a !e« ?a?®«i§®c  c ?®aY?aaY, F¤Y
a¦Y a §¬Ya. ˜Y§ a §¬Ya  ¬®Faa !eai ®!eic«Ye a®«i?® aYF
aaaa?aaae (aaaa?aaa  YeY Y ®?aY¤Y«Y ) , «?!® extern ¬ a-
a?c. ‘ae«?? ? a ??¬ i«Y¬Ya ¬ ( ?a?¬Ya, ®?Ya ae?Y© sizeof)
?«? ®!a eY?Y ? ?¬ cYaY§ a? § aY«i ? ia®¬a a??a § ?aYeYe.
˜Y®aF ?§a©aY ®!eic«Y?Y a ??¬ ®!a §®¬, ca®!e a §¬Ya ¤ ®F®
?¤Ya?ae?? a®a  !e« ?§cYaaY.

– 287 –

sizeof may not be applied to a bit field
??Ya ae?i sizeof Y?a?¬Y?¬  ? !?a®c®¬a ?®«i

sizeof c®§ca e Ya a §¬Ya ®!eY?a  ¤ ea c ! ©a a ? Y?-
a?¬Y?¬ ? !?a®ce¬ ?®«i¬.

sizeof may not be applied to a function
??Ya ae?i sizeof Y?a?¬Y?¬  ? aea?ae??

??Ya ae?i sizeof ?a?¬Y?¬  a®«i?® ? ®!eY?a ¬ ¤ ea,  
Y ? aea?ae?i¬. ?®¦® § ?a®a?ai a §¬Ya a? § aY«i aea?ae??.

Size of the type is unknown or zero
˜ §¬Ya a??  Y?§cYaaY ?«? a«Yc®©

„ e© a?? ?a?®«i§®c «ai c ?®aY?aaY, F¤Y Y®!a®¤?¬
a §¬Ya. ˜ ?a?¬Ya, aYF aaaa?aaae ¬®¦Ya !eai a®«i?® ®!eic«Y
(  aaaa?aaa  YeY Y ®?aY¤Y«Y ). ’®F¤  Y?®a®aeY aae«?? ?
Y© ( ?a?¬Ya, ®?Ya ae?Y© sizeof) ?«? ®!a eY?Y ? Y© cYaY§
a? § aY«i Y¤®?aaa?¬e. ˜Y®aF ?§a©aY ®!eic«Y?i ¤ ®F® a?? 
a ??¬ ®!a §®¬, ca®!e a §¬Ya ia®F® a??  !e« ¤®aaa?Y.

Size of this expression is unknown or zero
˜ §¬Ya ia®F® cea ¦Y?i Y?§cYaaY ?«? a«Yc®©

‚ cea ¦Y?? ac aacaYa a?? ?«? ?YaY¬Y i Y?§cYaa®F®
a §¬Ya  c ?®aY?aaY, F¤Y Y®!a®¤?¬ a §¬Ya. ˜ ?a?¬Ya, aYF
aaaa?aaae ¬®¦Ya !eai a®«i?® ®!eic«Y (  aaaa?aaa  YeY Y ®?-
aY¤Y«Y ). ’®F¤  Y?®a®aeY aae«?? ? Y© ( ?a?¬Ya, ®?Ya ae?Y©
sizeof) ?«? ®!a eY?Y ? Y© cYaY§ a? § aY«i Y¤®?aaa?¬e. ˜Y-
®aF ?§a©aY ®!eic«Y?i a ??¬ ®!a §®¬, ca®!e a §¬Ya !e« ¤®a-
aa?Y.

Statement is required here
‡¤Yai aaY!aYaai ®?Ya a®a

˜Y?®a®aeY c aa? ?a®Fa ¬¬ ‘ ? ‘++ ®!i§ aY«i® aaY!aia
 «?c?Y ®?Ya a®a  (ia® ¬®¦Ya !eai ?a®aa® a®c?  a § ?ia®©);
® ?®¬Ye Yaai ¬Y¦¤a ¬Ya?®© ? ?®ae®¬ !«®? , c ?®a®a®¬  a®-
¤?aai ¬Ya? ,   a ?¦Y ?®a«Y if, do, while ?«? for.

Statement missing ;
‚ ®?Ya a®aY ®aaaaaacaYa ;

?®¬??«ia®a caaaYa?« cea ¦Y?Y a ®?Ya a®a®¬ !Y§ § cYae –
ieY© a®c?? a § ?ia®©.

Static and union members cannot require initialization
‘a a?cYa??Y ?®¬?®Yae ? ?®¬?®Yae ®!eY¤?Y?© Y ¬®-
Faa aaY!®c ai ??ae? «?§ ae??

?« aa ‘++, ?¬Yie?© ?®aaaa?a®a ?«? «i!eY c?aaa «ieY
aea?ae??, ?«? ?a®?§c®¤e© ?« aa ®a?¬YieYF® ?a ?« aa , ¤®«¦Y
!eai ??ae? «?§?a®c . ‘a a?cYa??© ?®¬?®Ya ¤ ea ia®F®
?« aa  Y ¬®¦Ya!eai ??ae? «?§?a®c ,? a ?¦Y Y ¬®¦Ya ?¬Yai
a??, ¤«i ?®a®a®F® aaY!aYaai ??ae? «?§ ae?i.

– 288 –

Storage class ?« aa ? ¬ia? not allowed for a field
?« aa ? ¬ia? Y a §aYeY ¤«i aea?ae??

‚ ‘ ? ‘++ aea?ae?i ¬®¦Ya !eai extern ?«? static. ‚ ‘++
aea?ae?i ¬®¦Ya a ?¦Y ?¬Yai ?« aa ? ¬ia? inline. ˜?? ??Y ¤aa-
F?Y ?« aae ? ¬ia? Y¤®?aaa?¬e, ? ?a®¬Y a®F®, ?« aa ? ¬ia?
¬®¦Ya !eai § ¤  a®«i?® ®¤?.

Storage class ?« aa ? ¬ia? is not allowed here
?« aa ? ¬ia? §¤Yai Y a §aYeY

“? § e© ?« aa ? ¬ia? §¤Yai Y a §aYeY. ‚®§¬®¦®, !e-
«® § ¤ ® ¤c  ?« aa  ? ¬ia?, a®F¤  ? ? a §aYeY a®«i?® ®¤?.

Structure size too large
‘«?e?®¬ !®«ie®© a §¬Ya aaaa?aaae

‚ ?aa®¤®¬ ae ©«Y ®!eic«Y  aaaa?aaa  a §¬Ya®¬ !®«YY 64?.

Subscripting missing ]
‚ ?¤Y?aY ®aaaaaacaYa ]

?®¬??«ia®a caaaYa?« cea ¦Y?Y a ?¤Y?a®¬, c ?®a®a®¬ ®a-
aaaaacaYa § ?aec ie i ?c ¤a a i a?®!? . ˜a® ¬®¦Ya ic«iaiai
a«Y¤aac?Y¬ ®aaaaaac?i Y®!a®¤?¬®© ®?Ya ae?? ?«?  «?c?i «?e-
Y©, «?!® Ya®®acYaaac?i c?a«  ®a?aec ie?a c?a«a § ?aec ie?a
?aaF«ea a?®!®?.

Switch selection expression must be of integral type
‚ea ¦Y?Y ce!®a  c ®?Ya a®aY switch ¤®«¦® !eai ?aYF-
a «i®F® a?? 

‡ ¤ c Y¬®Y c ?aaF«ea a?®!? a cea ¦Y?Y ce!®a  ®?Ya a®a 
switch ¤®«¦® ¤ c ai § cY?Y ?aYFa «i®F® a??  (char,
short, int, long, enum). „«i a®F®, ca®!e ce?®«?ai ¤ ®Y
aaY!®c ?Y, ¬®¦® c®a?®«i§®c aiai ice¬ ?a?cY¤Y?Y¬ a??®c.

Switch statement missing (
‚ ®?Ya a®aY switch ®aaaaaacaYa (

‚ ®?Ya a®aY switch ?®¬??«ia®a Y a¬®F ®! aa¦?ai «Yc®©
?aaF«®© a?®!?? ?®a«Y ?«icYc®F® a«®c  switch.

Switch statement missing )
‚ ®?Ya a®aY switch ®aaaaaacaYa )

‚ ®?Ya a®aY switch ?®¬??«ia®a Y a¬®F ®! aa¦?ai «Yc®©
?aaF«®© a?®!?? ?®a«Y cea ¦Y?i ?a®cYa??.

‘this’ can only be used within a member function
‘this’ ¬®¦® ?a?®«i§®c ai a®«i?® c aea?ae??-?®¬?®YaY

‚ ‘++ this – ia® aY§Yac?a®c ®Y a«®c®, ?®a®a®Y ¬®¦®
?a?®«i§®c ai a®«i?® c ?aY¤Y« a aea?ae?©-?®¬?®Ya®c ?« aa .

– 289 –

Too few parameters in call
‘«?e?®¬ ¬ «® ? a ¬Yaa®c c ce§®cY

‚e§®c aea?ae?? a ?a®a®a??®¬ (cYaY§ a? § aY«i) ?¬YYa
a«?e?®¬ ¬ «®  aFa¬Ya®c. ˜a®a®a??e aaY!aia a®c®F® § ¤ ?i
caYa ? a ¬Yaa®c.

Too few parameters in call to aea?ae?i
‘«?e?®¬ ¬ «® ? a ¬Yaa®c c ce§®cY aea?ae??

‚e§®c  §c ®© aea?ae?? (®!eic«Y®© a ?a?®«i§®c ?Y¬
?a®a®a?? ) ?¬YYa a«?e?®¬ ¬ «®  aFa¬Ya®c.

Too many decimal points
‘«?e?®¬ ¬®F® ¤Yaia?cea a®cY?

?®¬??«ia®a caaaYa?« ?®aa aa a ?« c ieY© a®c?®©, c ?®-
a®a®©  a®¤?aai !®«YY ®¤®© ¤Yaia?c®© a®c??.

Too many default cases
‘«?e?®¬ ¬®F® ®?Ya a®a®c a«®c default

?®¬??«ia®a caaaYa?« !®«YY ®¤®F® ®?Ya a®a  default c
®¤®© ?®aaaa?ae?? switch.

Too many error or warning messages
‘«?e?®¬ ¬®F® a®®!eY?© ®! ®e?!?Y ?«? ?aY¤a?aY¦¤Y?©

?®¬??«ia®a ¬®¦Ya § aYF?aaa?a®c ai ¤® 255 ®e?!®? ?«?
?aY¤a?aY¦¤Y?©,   ?®a®¬ ®aa ®c?a ac®i a !®aa.

Too many exponents
‘«?e?®¬ ¬®F® i?a?®Ya

?®¬??«ia®a caaaYa?« c ?®aa aY a ?« c ieY© a®c?®© !®-
«YY ®¤®© i?a?®Yae.

Too many initializers
‘«?e?®¬ ¬®F® ??ae? «?§ a®a®c

?®¬??«ia®a caaaYa?« !®«ieY ??ae? «?§ a®a®c, cY¬ ia® ¤®-
?aa? Yaai ??ae? «?§?aaY¬e¬ ®!eic«Y?Y¬.

Too many storage classes in declaration
‚ ®!eic«Y?? a«?e?®¬ ¬®F® ?« aa®c ? ¬ia?

‚ ®!eic«Y?? ¤®«¦® !eai a? § ® Y !®«ieY ®¤®F® ?« a-
a  ? ¬ia?.

Too many types in declaration
‚ ®!eic«Y?? a«?e?®¬ ¬®F® a??®c

?!eic«Y?Y ¬®¦Ya a®¤Ya¦ ai Y !®«YY ®¤®F® ?§ a«Y¤aie?a
! §®cea a??®c: char, int, float, double, struct, union, enum
?«? typedef-?¬i.

– 290 –
Too much global data defined in file
‚ ae ©«Y ®!eic«Y® a«?e?®¬ ¬®F® F«®! «iea ¤ ea

‘a¬¬  ®!eic«Yea F«®! «iea ¤ ea ?aYcea?«  ?® a §¬Y-
aa 64?. ˜a®cYaiaY ®!eic«Y?i ¬ aa?c®c, ?®a®aeY ¬®Faa !eai
?a?c?®© cea®¤  §  ?aY¤Y«e ? ¬ia?. ‹?!® aY®aF ?§a©aY ?a®F-
a ¬¬a, «?!®, Ya«? caY ®!eic«Y?i c ¬ a¦e, ?a?®«i§a©aY ?Y-
aY¬YeY far.

Trying to derive a far class from a near base
˜®?ea?  ®!eic?ai ?a®?§c®¤e© ?« aa far ®a ! §®c®F®
?« aa  near

…a«? ?« aa ®!eic«Y (?«? ?¬YYa a¬®«c ?Y) near, a® caY
?« aae, ?a®?§c®¤eY ®a YF®, a ?¦Y ¤®«¦e !eai near.

Trying to derive a near class from a far base
˜®?ea?  ®!eic?ai ?a®?§c®¤e© ?« aa near ®a ! §®c®F®
?« aa  far

…a«? ?« aa ®!eic«Y (?«? ?¬YYa a¬®«c ?Y) far, a® caY
?« aae, ?a®?§c®¤eY ®a YF®, a ?¦Y ¤®«¦e !eai far.

Two consecutive dots
„cY ?®a«Y¤®c aY«i® a a?®«®¦YeY a®c??

˜®a?®«i?a ¬®F®a®c?Y a®aa®?a ?§ aaYa a®cY? (…),   ¤Y-
aia?c i a®c?  ? ®?Ya ae?i ce!®a  ?®¬?®Ya  ?a?®«i§aia a®«i-
?® ®¤a a®c?a (.), a® ¤cY ?®a«Y¤®c aY«ieY a®c?? Y¤®?aaa?¬e
c ?a®Fa ¬¬Y ‘.

Two operands must evaluate to the same type
„c  ®?Ya ¤  ¤®«¦e ¤ c ai ®¤? ? a®a ¦Y a??

’??e cea ¦Y?© ?® ®!Y?¬ aa®a® ¬ ¤c®Ya®c?i c aa«®c®©
®?Ya ae?? (?:) ¤®«¦e !eai ®¤? ?®ce¬?, §  ?a?«icY?Y¬ aYa,
ca® ?®§c®«iia c§ ?¬eY ?aY®!a §®c ?i a??  – char c int,
float c double ?«? void* c ?®?aYae© a? § aY«i. ‚ ¤ ®¬
cea ¦Y?? ?® ®!Y?¬ aa®a® ¬ ®?Ya ae?? ?¬Y«? a §«?ceY, Y
?aY®!a §aY¬eY  ca®¬ a?cYa?? a??e. ˜a® ¬®¦Ya !eai «?!® ®e?!-
?®©, «?!® c ¬ a¦® ?a®aa® ce?®«?ai ?a?cY¤Y?Y a??®c ac aa-
caie?a c cea ¦Y?? ®?Ya ¤®c.

Type mismatch in parameter ®¬Ya
˜Ya®®acYaaac?Y a??  ? a ¬Yaa  ®¬Ya

‚e§c  i cYaY§ a? § aY«i aea?ae?i !e«  ®!eic«Y  a ?a®-
a®a??®¬; ¤ e© ¦Y ? a ¬Yaa a a? § e¬ “®¬Ya®¬”
(®aac?aec i a«Yc – ?a c® ®a 1) Y ¬®¦Ya !eai ?aY®!a §®c  ?
®!eic«Y®¬a a??a ? a ¬Yaa .

Type mismatch in parameter ®¬Ya in call to aea?ae?i
˜Ya®®acYaaac?Y a??  ? a ¬Yaa  ®¬Ya c ce§®cY aea?ae??

‚ c eY¬ ?aa®¤®¬ ae ©«Y ®!eic«Y  a? §  i aea?ae?i a
?a®a®a??®¬,   ¤ e© ? a ¬Yaa a a? § e¬ ®¬Ya®¬ (®aac?ae-
c i a«Yc – ?a c® ®a 1) Y ¬®¦Ya !eai ?aY®!a §®c  ? ®!eic-
«Y®¬a a??a ? a ¬Yaa .

– 291 –
Type mismatch in parameter ? a ¬Yaa
˜Ya®®acYaaac?Y a??  ? a ¬Yaa 

‚e§c  i cYaY§ a? § aY«i aea?ae?i !e«  ®!eic«Y  a ?a®-
a®a??®¬; a? § e© ¦Y ? a ¬Yaa Y ¬®¦Ya !eai ?aY®!a §®c  ?
®!eic«Y®¬a a??a ? a ¬Yaa .

Type mismatch in parameter ? a ¬Yaa in call to aea?ae?i
˜Ya®®acYaaac?Y a??  ? a ¬Yaa  c ce§®cY aea?ae??

‚ c eY¬ ?aa®¤®¬ ae ©«Y ®!eic«Y  a? §  i aea?ae?i a
?a®a®a??®¬,   a? § e© ? a ¬Yaa Y ¬®¦Ya !eai ?aY®!a §®c 
? ®!eic«Y®¬a a??a ? a ¬Yaa .

Type mismatch in redeclaration of ?¤Ya?ae?? a®a
˜Ya®®acYaaac?Y a??  c ?YaY®!eic«Y?? ?¤Ya?ae?? a®a 

‚ c eY¬ ?aa®¤®¬ ae ©«Y ?YaY¬Y i ?YaY®!eic«iYaai a
¤aaF?¬ a??®¬, Y¦Y«? a®a, a ?®a®ae¬ ®  !e«  ®!eic«Y  ?Ya-
c® c «i®. ˜a® ¬®¦Ya ?a®?§®©a?, Ya«? aea?ae?i ce§ec Yaai ?
§ aY¬ ®!eic«iYaai a a??®¬ c®§ca a , ®a«?ce¬ ®a aeY«®c?a«Y-
®F®. ‚ ia®¬ a«ac Y ce ¤®«¦e ®!eic?ai aea?ae?i ¤® ?Yac®F® ?
Y© ®!a eY?i.

Type name expected
?¦?¤ Yaai ?¬i a?? 

˜a®?§®e«  ®¤  ?§ a«Y¤aie?a ®e?!®?:

– ‚ ®!eic«Y??   aa®cY ae ©«  ?YaY¬Y®© ?«? ?®«i
aaaa?aaae Y § ¤ ® ? ?¬Y? a?? , ? ?« aa ? ¬ia?.

– ‚ ®!eic«Y?? typedef Y § ¤ ® ?¬i a?? .

– ‚ ®!eic«Y?? ¤Yaaaa?a®a  ?« aa  ‘++ ?¬i ¤Yaaaa?a®a 
Y a c® ?¬Y? a??  (?¬i ¤Yaaaa?a®a  ?« aa  ¤®«¦® a®c? ¤ ai
a ?¬YY¬ ?« aa ).

– ‚ § ¤ ?? ?¬Y? ! §®c®F® ?« aa  ‘++ ?¬i Y ic«iYaai
?¬YY¬ ?« aa .

Type qualifier ?¤Ya?ae?? a®a must be a struct or class name
?c «?ae?? a®a a??  ?¤Ya?ae?? a®a ¤®«¦Y !eai ?¬YY¬
aaaa?aaae ?«? ?« aa 

?c «?ae?? a®a ‘++ c ?®aaaa?ae?? ?c «?ae?? a®a::?¤Ya?ae?-
? a®a Y ic«iYaai ?¬YY¬ aaaa?aaae ?«? ?« aa .

Unable to create output file ?¬i_ae ©« 
˜Yc®§¬®¦® a®§¤ ai cea®¤®© ae ©« ?¬i_ae ©« 

˜a  ®e?!?  ¬®¦Ya caaaYa?aiai, ?®F¤  a !®c?© ¤?a? «?!®
§ ?®«Y, «?!® § e?eY ®a § ??a?. …a«? ¤?a? § ?®«Y, ?®?a®-
!a©aY a¤ «?ai Ya¦eY ae ©«e ? ?YaY§ ?aaa?ai ?®¬??«iae?i. …a-
«? ¤?a? § e?eY ®a § ??a?, ?YaYYa?aY ?aa®¤eY ae ©«e  
¤?a?, F¤Y § ??ai a §aYeY , ? ?®ca®a?aY ?®¬??«iae?i. „  i
®e?!?  c aa® a«ac Yaai, ?®F¤  ¤?aY?a®a?i, c ?®a®aai  § cY
cec®¤ ae ©« , Y aaeYaacaYa.

– 292 –
Unable to create turboc.$ln
˜Yc®§¬®¦® a®§¤ ai turboc.$ln

?®¬??«ia®a Y ¬®¦Ya a®§¤ ai caY¬Ye© ae ©« TURBOC.$LN,
?®a?®«i?a ®aaaaaacaYa ¤®aaa? ? ¤?a?a ?«? ¤?a? ?®«®.

Unable to execute command ?®¬ ¤ 
˜Yc®§¬®¦® ce?®«?ai ?®¬ ¤a

˜Y  ©¤Y TLINK ?«? TASM, «?!® ?®caY¦¤Y ¤?a?.

Unable to open include file ?¬i_ae ©« 
˜Yc®§¬®¦® ®a?aeai c?«ic Y¬e© ae ©« ?¬i_ae ©« 

?®¬??«ia®a Y ¬®¦Ya  ©a? a? § e© ae ©«. ˜a® ¬®¦Ya
!eai a ?¦Y c a®¬ a«ac Y, ?®F¤  c?«ic Y¬e© ¤?aY?a?c®©
#include ae ©« c?«ic Ya a ¬ aY!i, «?!® Ya«? Y § ¤  ? a ¬Yaa
FILES c ae ©«Y CONFIG.SYS c ?®aYc®© ¤?aY?a®a?? (?®?a®!a©aY
aaa ®c?ai FILES=20). ˜a®cYaiaY, aaeYaacaYa «? ¤Y©aac?aY«i®
Y  ©¤Ye© ae ©«.

Unable to open input file ?¬i_ae ©« 
˜Yc®§¬®¦® ®a?aeai ca®¤®© ae ©« ?¬i_ae ©« 

„  i ®e?!?  ?a®?aa®¤?a, Ya«? Y  ©¤Y ?aa®¤e© ae ©«.
˜a®cYaiaY ?a c?«i®aai  ??a ?i ?¬Y?,   a ?¦Y,  a®¤?aai
«? a? § e© ae ©« c a¦®© ¤?aY?a®a??   a¦®¬ ¤?a?Y.

Undefined label ?¤Ya?ae?? a®a
˜Y®?aY¤Y«Y i ¬Ya?  ?¤Ya?ae?? a®a

“? §  i ¬Ya?  § ¤   c aea?ae?? c ®?Ya a®aY goto, ®
®?aY¤Y«Y?Y ¬Ya?? ®aaaaaacaYa.

Undefined structure aaaa?aaa 
˜Y®?aY¤Y«Y i aaaa?aaa 

‚ c eY¬ ?aa®¤®¬ ae ©«Y a? §  i aaaa?aaa  ?a?®«i§aYaai
c aaa®?Y, ?®a®a i  a®¤?aai Ya?®«i?® ceeY aaa®??, F¤Y ®! –
aa¦Y  ®e?!?  (c®§¬®¦®, § ¤  a? § aY«i ia®© aaaa?aaae),  
®?aY¤Y«Y?Y aaaa?aaae ®aaaaaacaYa. ˜a® ®!ec® ?a®?aa®¤?a ?a?
®?Yc a?Y c ?¬Y? aaaa?aaae, «?!® ?a? ®aaaaaac?? YY ®?aY¤Y«Y-
?i.

Undefined symbol ?¤Ya?ae?? a®a
˜Y®?aY¤Y«Y®Y a?¬c®«?cYa?®Y ?¬i ?¤Ya?ae?? a®a

“? § e© ?¤Ya?ae?? a®a Y ®!eic«Y. ˜a® ¬®¦Ya ?a®?§®©-
a? ?a? ®?Yc a?Y «?!® c ¤ ®© a®c?Y ?a®Fa ¬¬e, «?!® c ®!eic-
«Y??. ’ ? i ®e?!?  aYF?aaa?aaYaai a ?¦Y ?a? ®e?!?Y c
®!eic«Y?? ?¤Ya?ae?? a®a .

Unexpected *)
˜Y®¦?¤ ®Y ?®ic«Y?Y *)

‹?eii ae?Faa i ?a c i a?®!?  caaaYcY  a ¬, F¤Y ®  Y
®¦?¤ « ai. ˜a®cYaiaY ®aaaaaac?Y (*.

– 293 –
Unexpected ) – check for matching parenthesis
˜Y®¦?¤ ®Y ?®ic«Y?Y ) – ?a®cYaiaY  «?c?Y ®a?aec ieY©
a?®!??

‹?eii ?aaF« i ?a c i a?®!?  caaaYcY  a ¬, F¤Y ®  Y
®¦?¤ « ai. ˜a®cYaiaY ®aaaaaac?Y (.

Unexpected : found
˜Y®¦?¤ ®Y ?®ic«Y?Y :

‹?eYY ¤c®Ya®c?Y caaaYcY® a ¬, F¤Y ®® Y ®¦?¤ «®ai.
˜a®cYaiaY ®aaaaaacaie?© ?«? YcYa®  !?ae© § ? ?.

Unexpected end of file in comment started on ®¬Ya aaa®??
˜Y®¦?¤ ® caaaYcY ?®Yae ae ©«  c ?®¬¬Ya a??®¬Ya aaa®??

?aa®¤e© ae ©« ?®c?«ai c aYaY¤?Y ?®¬¬Ya a?i. ˜a®
®!ec® ?a®?aa®¤?a ?a? ®aaaaaac?? ?a?§ ?  ?®ae  ?®¬¬Ya a?i
(*/).

Unexpected end of file in conditional started on ®¬Ya
aaa®??
˜Y®¦?¤ ® caaaYcY ?®Yae ae ©«  c aa«®c®© ¤?aY?a?cY
®¬Ya aaa®??

?aa®¤e© ae ©« ?®c?«ai a ieY, cY¬ ?®¬??«ia®a caaaYa?«
#endif. ‹?!® ia® ®aaaaaac?Y, «?!® ®?Yc a?  c #endif.

Union cannot have a base type
?!eY¤?Y?Y Y ¬®¦Ya ?¬Yai ! §®ce© a??

‚ aeY«®¬, ?« aa ‘++ ¬®¦Ya ?¬Yai a?? union, ® a ?®©
?« aa Y ¬®¦Ya ic«iaiai ?a®?§c®¤e¬ ®a ¤aaF®F® ?« aa .

Union members cannot require initialization
?®¬?®Yae ®!eY¤?Y?i Y ¬®Faa aaY!®c ai ??ae? «?§ ae??

˜®a?®«i?a ?a®¤®«¦?aY«i®aai ¦?§? ?®¬?®Ya  ®!eY¤?Y-
?i Y ®?aY¤Y«Y , Y¤®?aaa?¬® ®!eic«iai ®!eY¤?Y?Y, aaY!a-
ieYY «i!®F® a®¤  ??ae? «?§ ae??.

Unknown language, must be C or C++
˜Y?§cYaae© i§e?, §¤Yai ¤®«¦Y !eai ‘ ?«? ‘++

‚ ?®aaaa?ae?? ‘++

extern ?¬i a?? func( /*…*/);

?¬i c ? cec? a ¤®«¦® !eai ‘ ?«? ‘++; ¤aaF?Y ?¬Y  Y
a a?®§ iaai. ‚e ¬®¦YaY ®!eic?ai cYeii aea?ae?i a a??®¬
Pascal !Y§ ?YaY?¬Y®c ?i ?®¬??«ia®a®¬:

extern “C” int pascal func( /*…*/ );

”a?ae?i ‘++ (c®§¬®¦®, ?YaYFaa¦Y i) ¬®¦Ya !eai ®!eic-
«Y  a a??®¬ Pascal ? ?®§c®«iai ®!eceY ?YaY?¬Y®c ?i ?®¬-
??«ia®a®¬ (ca®!e !e«  c®§¬®¦®© ?YaYFaa§? ) a«Y¤aie?¬ ®!a –
§®¬:

extern int pascal func( /*…*/ );

– 294 –

Unknown preprocessor directive: ?¤Ya?ae?? a®a
˜Y?§cYaa i ¤?aY?a?c  ?aY?a®aeYaa®a : ?¤Ya?ae?? a®a

?®¬??«ia®a caaaYa?« c  c «Y aaa®?? a?¬c®« #,  
a«Y¤aieYY §  ?¬ ?¬i ¤?aY?a?ce Y ic«i«®ai ¤®?aaa?¬e¬ ?¬YY¬
¤?aY?a?ce: define, undef, line, if, ifdef, ifndef, include,
else ?«? endif.

Unterminated string or character constant
˜Y§ cYaeY i aaa®?  ?«? a?¬c®«i i ?®aa a 

?®¬??«ia®a Y  eY« § cYae ieY© ? cec?? c ?®aeY aaa®??
?«? a?¬c®«i®© ?®aa ae.

Use . or -> to call aea?ae?i
?a?®«i§a©aY ¤«i ce§®c  aea?ae?? . ?«? ->

˜®?ea?  ce§c ai aea?ae?i-?®¬?®Ya, Y § ¤ c ®!eY?a.

Use :: to take the address of a member function
?a?®«i§a©aY :: ¤«i ®!a eY?i ?  ¤aYaa aea?ae??-?®¬?®Ya 

…a«? f Yaai aea?ae?i-?®¬?®Ya ?« aa  c, ce ¬®¦YaY ®!a –
a?aiai ? YY ¤aYaa?a? ?®¬®e? &c::f. ?a¬Ya?¬ ?a?®«i§®c ?Y
?¬Y? a??  ?« aa  c¬Yaa® ?¬Y? ®!eY?a  ? a®, ca®?¬i ?« aa 
®a¤Y«iYaai ®a ?¬Y?aea?ae?? ?a? ?®¬®e? ::. (“? § aY«? aea?ae?©
-?®¬?®Ya®c Y ic«iiaai ?aa?e¬? a? § aY«i¬? a??  ? Y ®a-
®aiaai ??®?aYa®¬a ca®¦¤Y?i ¤ ®F® ?« aa ).

Use ; to terminate declarations
‚ ?®aeY ®!eic«Y?© ¤®«¦   a®¤?aiai ;

„ ®Y ®!eic«Y?Y Y § ? c?c Yaai § ?ia®© ?«? a®c?®© a
§ ?ia®©.

User break
˜aYaec ?Y ?®«i§®c aY«i

‚e ccY«? c® caY¬i ?®¬??«iae?? ?«? ?®¬?®®c?? c ?aYFa?-
a®c ®© aaY¤Y Ctrl-Break. (˜a® Y ®e?!? ,   ?a®aa® ?®¤a-
cYa¦¤Y?Y ?a?Y¬  c eY© ?®¬ ¤e ?aYaec ?i ce?®«Y?i).

Value of type void is not allowed
‡ cY?Y a??  void Y a §aYeY®

‡ cY?Y a??  void ?a ?a?cYa?? Y ic«iYaai § cY?Y¬
c®®!eY ? Y ¬®¦Ya ?®ic«iaiai c ?®aY?aaY, aaY!aieY¬ ae ?a?-
cYa?? aaeYaacaieYF® § cY?i. ’ ??¬ ?®aY?aa®¬ ¬®¦Ya ic«iai-
ai ?a c i c aai ®?Ya ae?? ?a?ac®Y?i,  aFa¬Ya aea?ae?? ?«?
a?a c«iieYY cea ¦Y?Y aa«®cea ®?Ya a®a®c if, for ?«? while.

Variable ?¤Ya?ae?? a®a is initialized twice
˜YaY¬Y i ?¤Ya?ae?? a®a ??ae? «?§?a®c   ¤c ¦¤e

„  i ?YaY¬Y i ??ae? «?§?aaYaai !®«YY ®¤®F® a § .
„®?aa? Yaai ¬®F®?a a®Y ®!eic«Y?Y ?YaY¬Y®©   aa®cY
ae ©« , ® ??ae? «?§ ae?i ¤®«¦  ce?®«iaiai a®«i?® ®¤? a §
(¤ ¦Y Ya«? ®¤  ??ae? «?§ ae?i ?®ca®aiYa ¤aaFai).

– 295 –

Variable name expected
?¦?¤ Yaai ?¬i ?YaY¬Y®©

˜a? ?a?®«i§®c ?? ®?Ya ae??  ¤aYa ae?? (&), «?!® ?®F¤  c
‘++ c®§ca e Yaai aae«?    ®!eY?a, ¤®«¦Y !eai a? §  ®!e-
Y?a. ?!ec® ia® ?¬i ?YaY¬Y®©. ‚ ¤ ®¬ a«ac Y ?®¬??«ia®aa
!e«® § ¤ ® c§iai  ¤aYa cYF®-«?!® Y?®¤a®¤ieYF®.

Vectors of classes must use the default constructor
‚Y?a®ae ?« aa®c ¤®«¦e ?a?®«i§®c ai ?®aaaa?a®a ?®
a¬®«c ?i

˜a? ??ae? «?§ ae?? cY?a®a  (¬ aa?c ) ?« aa®c ce ¤®«¦e
?a?®«i§®c ai ?®aaaa?a®a !Y§  aFa¬Ya®c. ’ ?®© ?®aaaa?a®a
 §ec Yaai ?®aaaa?a®a®¬ ?® a¬®«c ?i, ca® ®§ c Ya, ca® ?a?
??ae? «?§ ae?? a ?®F® cY?a®a  ce Y ¬®¦YaY § ¤ ai ?®aaaa?a®-
aa  aFa¬Yae.

Virtual function aea?ae?i1 conflicts with aea?ae?i2
‚?aaa «i i aea?ae?i1?a®a?c®aYc?a aea?ae??2

‚?aaa «i i aea?ae?i ?¬YYa aY ¦Y a??e  aFa¬Ya®c, ca® ?
aea?ae?i c ! §®c®¬ ?« aaY, ® ?¬YYa ¤aaF®© a?? c®§ca a . ˜a®
Y¤®?aaa?¬®.

virtual specified more than once
virtual § ¤ ® !®«YY ®¤®F® a § 

˜Y§Yac?a®c ®Y a«®c® ‘++ virtual ¬®¦Ya ?®ic?aiai c ®?-
aY¤Y«Y?? aea?ae??-?®¬?®Ya  a®«i?® ®¤? a §.

void & is not a valid type
void & Y ic«iYaai ¤®?aaa?¬e¬ a??®¬

?cYc?¤®Y a®®!eY?Y ®! ®cYc?¤ea ®Fa ?cY?ia. ˜a 
®e?!?  ®§ c Ya, ca® ce ?ea «?ai ??ae? «?§?a®c ai ?«? ?a-
?®«i§®c ai Y¤®?aaa?¬e¬ ®!a §®¬ a?? aae«??, ? ¤«i YY a ?¦Y
ce¤ Yaai ? ¤aaF®Y a®®!eY?Y. ˜® a ? ?®iaYY.

While statement missing (
‚ ®?Ya a®aY while ®aaaaaacaYa (

‚ ®?Ya a®aY while ?®¬??«ia®a Y ®! aa¦?« «Yc®© ?aaF«®©
a?®!?? ?®a«Y ?«icYc®F® a«®c  while.

While statement missing )
‚ ®?Ya a®aY while ®aaaaaacaYa )

‚ ®?Ya a®aY while ?®¬??«ia®a Y ®! aa¦?« ?a c®© ?aaF-
«®© a?®!?? ?®a«Y cea ¦Y?i ?a®cYa??.

Wrong number of arguments in call of ¬ ?a®a
˜YcYa®Y c?a«® ? a ¬Yaa®c ?a? ce§®cY ¬ ?a®a 

‚ ?aa®¤®¬ ae ©«Y a? § e© ¬ ?a®a ce§ec Yaai a YcYae¬
c?a «®¬ ? a ¬Yaa®c.

– 296 –

˜aY¤a?aY¦¤Y?i
———————————————————–

aea?ae?i1 hides virtual function aea?ae?i2
aea?ae?i1 a?aec Ya c?aaa «iai aea?ae?i2

‚?aaa «i i aea?ae?i ! §®c®F® ?« aa  ®!ec® ?YaY®?aY¤Y-
«iYaai ®!eic«Y?Y¬ c ?a®?§c®¤®¬ ?« aaY. ‚ ¤ ®¬ a«ac Y
®!eic«Y?Y a®F® ¦Y ?¬Y? a ¤aaF?¬? a?? ¬?  aFa¬Ya®c ¤Y« Ya
aea?ae?i Y¤®aaa?®© ?®a«Y¤aie?¬ ?a®?§c®¤e¬ ?« aa ¬.

?¤Ya?ae?? a®a is declared as both external and static
?¤Ya?ae?? a®a ®!eic«Y aa §a ? ? external ? static

„ e© ?¤Ya?ae?? a®a ?®ic?«ai c ®!eic«Y??, Yic® ?«?
ic® ®!®§ c ieY¬ YF® ? ? global ?«? external, ? ?a®¬Y a®F®,
c ®!eic«Y??, ®!®§ c ieY¬ YF® ? ? static. ?¤Ya?ae?? a®a c
a ?®¬ a«ac Y ac?a Yaai static. ˜a®cYaiaY caY ®!eic«Y?i ¤ –
®F® ?¤Ya?ae?? a®a .

?¤Ya?ae?? a®a declared but never used
?¤Ya?ae?? a®a ®!eic«Y, ® ?F¤Y Y ?a?®«i§®c 

‚ ?aa®¤®¬ ae ©«Y a? § ®Y ?¬i ?YaY¬Y®© ®!eic«Y® ? ?
c aai a®«i?® ca® § ?®c?ceYF®ai !«®? , ® ?YaY¬Y i ?F¤Y
Y ?a?®«i§aYaai. „ ®Y ?aY¤a?aY¦¤Y?Y ce¤ Yaai, ?®F¤  ?®¬-
??«ia®a caaaYc Ya § ?aec ieai ae?Faaai a?®!?a a®aa c®F®
®?Ya a®a  ?«? aea?ae??. ?!eic«Y?Y ?YaY¬Y®©  a®¤?«®ai c
 c «Y ia®F® a®aa c®F® ®?Ya a®a  ?«? aea?ae??.

?¤Ya?ae?? a®a is assigned a value that is never used
?¤Ya?ae?? a®aa ?a?ac®Y® § cY?Y, ?F¤Y Y ?a?®«i§aY¬®Y

˜YaY¬Y i ac aacaYa c ®?Ya ae?? ?a?ac®Y?i, ® ?F¤Y c
§ ? c?c ieY©ai aea?ae?? Y ?a?®«i§aYaai. ˜aY¤a?aY¦¤Y?Y ce-
¤ Yaai, ?®F¤  caaaYc Yaai § ?aec ie i ae?Faa i a?®!?  ¤ ®©
aea?ae??.

?¤Ya?ae?? a®a is both a structure tag and a name, now
obsolete
?¤Ya?ae?? a®a ®¤®caY¬Y® ic«iYaai aYF®¬ aaaa?aaae ? ?¬i,
aaa aYce i c®§¬®¦®aai

‚ ‘ ¤®?aaa?¬® ?a?®«i§®c ai ?¤Ya?ae?? a®a aa §a ? ? aYF
aaaa?aaae ? ?¬i ?YaY¬Y®© ?«? typedef, ? ? c a«Y¤aieY¬ ?a?-
¬YaY:

struct s (* int i, j; *) s;

?«?

typedef struct s (* int i, j; *) s;

‚ ‘++ ia® Y¤®?aaa?¬®.

Ambiguous operators need parentheses
˜Y®¤®§ ceY ®?Ya ae?? aaY!aia ?aaF«ea a?®!®?

„ ®Y ?aY¤a?aY¦¤Y?Y ce¤ Yaai, ¤cY ®?Ya ae?? a¤c?F ,
®a®eY?i ?«? ?®a §ai¤eY «®F?cYa??Y ®?Ya ae?? ?a?®«i§aiaai

– 297 –
c¬YaaY !Y§ ?aaF«ea a?®!®?. ’ ?¦Y ia® ?aY¤a?aY¦¤Y?Y ?®ic?a-
ai, Ya«? ®?Ya ae?i cec?a ?i ?a?®«i§aYaai !Y§ a?®!®? c¬YaaY a
®?Ya ae?Y© a¤c?F . ˜a®Fa ¬¬?aae c aa® ?aa ia ?a?®a?aYae ia?a
®?Ya ae?©, ?®a?®«i?a ?a?ac®YeY ?¬ ?a?®a?aYae Y ?aa?a?ce.

Assigning a?? to ?YaYc?a«?¬e© a??
˜a?ac®Y?Y a??  ?YaYc?a«?¬®¬a a??a

˜a?ac®Y?Y aeY«®c?a«Y®F® § cY?i ?YaYc?a«?¬®¬a a??a.
˜a® ic«iYaai ®e?!?®©, ® ce¤ c Y¬®Y a®®!eY?Y ?¬YYa aa®cYi
?aY¤a?aY¦¤Y?i, ? ?a®Fa ¬¬  ¬®¦Ya § a !®a ai.

Assignment to this is obsolete, use X::operator new instead
’ ?®Y ?a?ac®Y?Y aaa aY«®, ?a?®«i§a©aY c¬Yaa® YF®
X::operator new

‚ aa aea cYaa?ia ‘++ Y¤?aacYe© a?®a®! a?a c«Y?i
a a?aY¤Y«Y?Y¬ ?« aa  ®!eY?a®c § ?«ic «ai c ?a?ac®Y?? ? a –
¬Yaaa this caaa? ?®aaaa?a®a . ’Y?Yai ia® ®a¬YY®, ?®a-
?®«i?a aaeYaacaYa !®«YY iaeaeY?a?ce©, !Y§®? ae© ? !®«YY ®!-
e?© a?®a®!, a®aa®ie?© c ®?aY¤Y«Y?? aea?ae??-?®¬?®Ya 
operator new.

Base initialization without a class name is now obsolete
??ae? «?§ ae?i ! §®c®F® ?« aa  !Y§ ?¬Y? aaa aY« 

‚ aa aea cYaa?ia ‘++ ??ae? «?§ ae?i ! §®c®F® ?« aa  ce-
?®«i« ai §  acYa ?®¬YeY?i ?®a«Y § F®«®c?  ?®aaaa?a®a 
a??a?  ? a ¬Yaa®c ?®aaaa?a®a  ! §®c®F® ?« aa . ‚  aa®ieYY
caY¬i aY?®¬Y¤aYaai c?«ic ai ?¬i ! §®c®F® ?« aa .

˜a® ¤Y« Ya a®§¤ c Y¬e© ?®¤ !®«YY ?®iae¬ ? Y®!a®¤?¬®
c a«ac Y ¬®¦YaacYea ! §®cea ?« aa®c.

‘a ae© a?®a®!:

derived::derived(int i) : (i, 10) (* … *)

˜®ce© a?®a®!:

derived::derived(int i) : base(i, 10) (* … *)

Bit fields must be signed or unsigned int
˜?a®ceY ?®«i ¤®«¦e ?¬Yai a?? signed ?«? unsigned int

˜?a®c®Y ?®«Y ¤®«¦® !eai ®!eic«Y® ?¬YieYY ?aYFa «ie©
a?? a® § ?®¬ ?«? !Y§. ‚ ANSI C !?a®c®Y ?®«Y ¬®¦Ya !eai
a®«i?® signed ?«? unsigned int (  Y char ?«? long,  ?a?-
¬Ya).

Both return and return with a value
?¤®caY¬Y® ?a?aaaaacaia ®?Ya a®ae return ? return a
§ ¤ e¬ § cY?Y¬

’Y?ae i aea?ae?i ?¬YYa ®?Ya a®ae return a § ¤ e¬ § –
cY?Y¬ c®§ca a  ? !Y§ § cY?i c®§ca a  ®¤®caY¬Y®. ‚ ‘
ia® ¤®?aaa?¬®, ® ?a ?a?cYa?? caYF¤  ic«iYaai ®e?!?®©. ‚Ya®-
ia®, ®?Ya a®a return ?a®aa® !e« ®?aeY c ?®aeY aea?ae??.

Call to function with no prototype
‚e§®c aea?ae?? !Y§ ?a®a®a?? 

– 298 –

˜a® a®®!eY?Y ce¤ Yaai c aYa a«ac ia, ?®F¤  a §aYeY®
a®®!eY?Y “Prototype required” ? ce ce§ec YaY aea?ae?i !Y§
?Yac® c «i®F® § ¤ ?i ?a®a®a??  ia®© aea?ae??.

Call to function aea?ae?i with no prototype
‚e§®c aea?ae??aea?ae?i !Y§ ?a®a®a?? 

˜a® a®®!eY?Y ce¤ Yaai c aYa a«ac ia, ?®F¤  a §aYeY®
a®®!eY?Y “Prototype required” ? ce ce§ec YaY aea?ae?i “aea?-
ae?i” !Y§ ?Yac® c «i®F® § ¤ ?i ?a®a®a??  ia®© aea?ae??.

Code has no effect
?®¤ Y ce§ec Ya ?? ??a ¤Y©aac?©

„ ®Y ?aY¤a?aY¦¤Y?Y ce¤ Yaai, ?®F¤  ?®¬??«ia®a caaaY-
c Ya ®?Ya a®a a ®?Ya ae?i¬?, Y ce?®«iie?¬? ?? ??a ¤Y©a-
ac?©. ˜ ?a?¬Ya, ®?Ya a®a

a + b;

Y ®? §ec Ya c®§¤Y©aac?i ?   ? ?ai ?YaY¬Yai.
??Ya ae?i Y a¦  ?  cYai?  § ??a   ?® ®e?!?Y.

Constant is long
„«? i ?®aa a 

?®¬??«ia®a caaaYa?« «?!® ¤Yaia?cai ?®aa aa, ?aYcee –
ieai § cY?Y 32767, «?!® c®ai¬Ya?cai (?«? eYaa ¤ae a?a?c-
ai) ?®aa aa, ?aYcee ieai § cY?Y 65535 !Y§ a«Y¤aieY© § 
Y© !a?ce l ?«? L. ’ ? i ?®aa a  !a¤Ya a aa¬ aa?c aiai ? ?
?¬Yie i a?? long.

Constant member ?®¬?®Ya is not initialized
?®aa a -?®¬?®Ya Y ??ae? «?§?a®c  

?« aa ‘++ ?¬YYa ?®aa aa-?®¬?®Ya, ?®a®a i Y !e« 
??ae? «?§?a®c  . ?a¬Ya?¬, ca® ¤®?aaa?¬e¬ ic«iYaai ??ae? «?-
§?a®c ai ?®aa aa-?®¬?®Ya,   Y ?a?ac ?c ai Y© § cY?Y.

Constant out of range in comparison
“c aacaie i c aa cY?? ?®aa a  cY ¤®?aaa?¬®F® ¤? ? §® 

‚ ?aa®¤®¬ ae ©«Y ?¬YYaai aa cY?Y, c ?®a®a®¬ ac aacaYa
?®¤-cea ¦Y?Y, «Y¦ eYY cY ¤? ? §® , ¤®?aaa?¬®F® ¤«i ?a®c?a
a??®c ?®¤-cea ¦Y?©. ˜ ?a?¬Ya, aa cY?Y c?a«  unsigned a -1
Y ?¬YYa a¬ea« . „«i a®F®, ca®!e ?®«ac?ai ?®aa aa unsigned
!®«ieY 32767 (¤Yaia?c®Y), aaY!aYaai «?!® ic® § ¤ ai ?a?cY-
¤Y?Y a??  ? unsigned [ ?a?¬Ya, (unsigned)65535], «?!® ¤®-
! c?ai ? ?®aa aY !a?ce u ?«? U ( ?a?¬Ya, 65535u).

˜a? ce¤ cY ¤ ®F® a®®!eY?i ?®¬??«ia®a aY¬ Y ¬YYY
aFYYa?aaYa ?®¤ ¤«i aa cY?i. …a«? ¤ ¦Y ¤ e© ?®¤ !a¤Ya
caYF¤  ¤ c ai ®¤? ?®ce© aY§a«ia a,  ?a?¬Ya ?a? aa cY??
cea ¦Y?i a??  char a 4000, ?®¤ caY a c® !a¤Ya ce?®«iai
aa cY?Y.

Conversion may lose significant bits
˜a? ?aY®!a §®c ?? ¬®Faa !eai ?®aYaie § c e?Y !?ae

– 299 –
‚ ®?Ya ae?? ?a?ac®Y?i, ?«? c ¤aaF?a ®!aa®iaY«iaac a,
aaY!aYaai ?aY®!a §®c ?Y long ?«? unsigned long c int ?«?
unsigned int. ˜®a?®«i?a ?YaY¬YeY a??®c int ? long ?¬Yia
a §e© a §¬Ya, a ?®Y ?aY®!a §®c ?Y ¬®¦Ya ?a?cYaa? ? ?§¬YY-
?i a !®ae ?a®Fa ¬¬e.

Declaration does not specify a tag or an identifier
?!eic«Y?Y Y § ¤ Ya aYF ?«? ?¤Ya?ae?? a®a

„ ®Y ®!eic«Y?Y ?cYF® Y ®!eic«iYa. ?!ec® ia®
aaaa?aaa  ?«? ®!eY¤?Y?Y !Y§ aYF  ?«? ?YaY¬Y i c ®!eic«Y-
??.

˜Y?®a®aeY a ?Y ?®¬??«ia®ae ‘ ?®§c®«i«? ®!eic«Y?i c?-
¤ 

struct (* int a; int b; *);

a ?®a«Y¤aie?¬ ?a?®«i§®c ?Y¬ a ? b c ? cYaacY a®¤®cea
?®«Y© ¤«i «i!®© ?YaY¬Y®©. cea ¦Y?Y a??  x.b a §aYe «®ai
¤ ¦Y x Y ?¬Y« a?? aaaa?aaae. ’Y?Yai ia® Y ?a ?a??aYaai, ?
¤ ®Y a®®!eY?Y ?®¬®¦Ya c ¬ ceic?ai caY a ??Y ¬Yaa  c ?a®F-
a ¬¬Y.

Declare aea?ae?i prior to use in prototype
”a?ae?i ¤®«¦  !eai ®!eic«Y  ¤® ?a?®«i§®c ?i c ?a®a®a??Y

?®F¤  ?a®a®a?? aea?ae?? aae« Yaai ? a??a aaaa?aaae, ?®-
a®ae© Y !e« a YY ®!eic«Y, ®!eic«Y?Y caaa? ?a®a®a??  –
ia® Y a® ¦Y a ¬®Y, ca® ®!eic«Y?Y cY ?a®a®a?? . ˜ ?a?¬Ya,

int func(struct s *ps);
struct s (* /* … */ *)

˜®a?®«i?a aaaa?aaae s c ?®aY?aaY ?a®a®a??  ¤«i func Y
aaeYaacaYa, a® a??®¬ ? a ¬Yaa  ps ic«iYaai a? § aY«i   Y-
®?aY¤Y«Yai aaaa?aaaa s; ia® Y a® ¦Y a ¬®Y, ca® ¤«i ®!eic-
«iY¬®© ?®a«Y aaaa?aaae s. ‚aY ia® ?a?cY¤Ya ? ¤ «iY©e?¬ ?aY-
¤a?aY¦¤Y?i¬ ? a®®!eY?i¬ ®! ®e?!?Y, F®c®aie?a ®
Ya®c¬Yaa?¬ea a?? a, ?®a®aeY !a¤aa c ¬ Y?®iae !Y§ ¤ ®F®
?aY¤a?aY¦¤Y?i. „«i aYeY?i ia®© ?a®!«Y¬e ce ¬®¦Ya ?YaYYaa?
®!eic«Y?Y aaaa?aaae s ¤® «i!®F® aae« ieYF®ai   YY ?a®a®-
a?? , «?!® ¤®! c?ai Y?®«®Y ®!eic«Y?Y a??  struct s; ?YaY¤
? ¦¤e¬ aae« ie?¬ai   iaa aaaa?aaaa ?a®a®a??®¬. …a«? ? a –
¬Yaa®¬ aea?ae?? ic«iYaai aaaa?aaa ,   Y a? § aY«i aaaa?aaae,
a® Y?®«®F® ®!eic«Y?i Y¤®aa a®c®; ce ¤®«¦e ?®¬Yaa?ai
?®«®Y ®!eic«Y?Y aaaa?aaae ?YaY¤ ?a®a®a??®¬.

Division by zero
„Y«Y?Y   ®«i

‚ea ¦Y?Y a ¤Y«Y?Y¬ ?«? ?®«acY?Y¬ ®aa a?  ?¬YYa c ? –
cYaacY ¤Y«?aY«i «?aYa «ie© ®«i.

Functions containing aY§Yac?aaY¬®Y a«®c® are not
expanded inline
”a?ae?? a®¤Ya¦ e?Y aY§Yac?aaY¬®Y a«®c® Y ¬®Faa !eai
caaa ?c Y¬e¬?

”a?ae??, a®¤Ya¦ e?Y aY§Yac?aaY¬eY a«®c  do, for, while,
goto, switch, break, continue ? case, Y ¬®Faa !eai caaa ?-
c Y¬e¬?, ¤ ¦Y ?a?  «?c?? § ¤ ?i ?a ? ? inline. ”a?ae?i ¬®-
¦Ya ?a?®«i§®c aiai, ® !a¤Ya a aa¬ aa?c aiai ? ? ®!ec i

– 300 –
aa a?cYa? i (Y F«®! «i i) aea?ae?i. ?®??i ia®© aea?ae?? !a-
¤Ya  a®¤?aiai c «i!®© Y¤??aeY ?®¬??«iae??, F¤Y ®  ce§ec Ya-
ai.

Function should return a value
”a?ae?i ¤®«¦  c®§ca e ai § cY?Y

‚ ?aa®¤®¬ ae ©«Y aY?ae i aea?ae?i ®?aY¤Y«Y  a a??®¬
c®§ca a  ?e¬, Y¦Y«? int ?«? void, ® ?®¬??«ia®a caaaYa?«
®?Ya a®a return !Y§ § cY?i c®§ca a . ?!ec® ia® ? ? i-a®
®e?!? . ?a?«icY?Y a®aa c«iia aea?ae?? int, ?®a?®«i?a c aa –
aea cYaa?ia ‘ a??  void ¤«i ®!®§ cY?i aea?ae?© !Y§ § cY?i
c®§ca a  Y aaeYaac®c «®.

Hexadecimal value contains more than 3 digits
?Yaa ¤ae a?a?c®Y § cY?Y a®¤Ya¦?a !®«YY 3 ae?aea

‚ aa aea cYaa?ia ‘ eYaa ¤ae a?a?c i a?a c«iie i ?®a«Y-
¤®c aY«i®aai ¬®F«  ?¬Yai Y !®«YY aaYa ae?aea. ˜®ce© aa ¤ aa
ANSI ?®§c®«iYa «i!®Y c?a«® ae?aea, «?ei !e § cY?Y ?®¬Ye «®ai
c ! ©a. ˜a® a®®!eY?Y ce¤ Yaai, ?®F¤  eYaa ¤ae a?a?c i a?-
a c«iie i ?®a«Y¤®c aY«i®aai ?¬YYa ¬®F® cY¤ae?a a«Y© ( ?-
a?¬Ya, “\x00045”). ‘a aeY cYaa?? ‘ ?aYa?aYa?a®c «? !e ¤ –
ai aaa®?a ? cY.

Ill-formed pragma
˜Y?a c?«i® ®ae®a¬«Y i ¤?aY?a?c  pragma

„?aY?a?c  pragma Y a®®acYaaacaYa ? ®¤®© ?§ ®¦?¤ Y¬ea
?®¬??«ia®a®¬ ¤?aY?a?c ia®F® a®¤ .

Initialization is only partially bracketed
??ae? «?§ ae?i a®«i?® c aa?c® § ?«icY  c ?c ¤a aeY a?®!??

˜a? ??ae? «?§ ae?? aaaa?aaae ?c ¤a aeY a?®!?? ¬®Faa ®a-
¬Yc ai ??ae? «?§ ae?i? ¦¤®F® ?®¬?®Ya  aaaa?aaae. …a«? a ?®©
?®¬?®Ya a ¬ ic«iYaai¬ aa?c®¬ ?«? aaaa?aaa®©, ¬®Faa ?a?®«i-
§®c aiai c«®¦YeY ? ae ?c ¤a aea a?®!®?. ˜a® F a a?aaYa
a®c? ¤Y?Y c e?a  ¬YaY?© ? ?aY¤aa c«Y?i ?®¬??«ia®a  ®
a®¬, ? ??Y § cY?i ? ? ??¬ ?®¬?®Ya ¬ ®a®aiaai. …a«? ? –
??Y-a® ?§ ia?a Y®!i§ aY«iea a?®!®? ®?aeYe, ?®¬??«ia®a ce-
¤ aa ¤ ®Y ?aY¤a?aY¦¤Y?Y.

Initialization with inappropriate type
??ae? «?§ ae?i YcYae¬ a??®¬

˜YaY¬Y i a??  enum ??ae? «?§?aaYaai § cY?Y¬ YcYa-
®F® a?? . ˜ ?a?¬Ya,

enum count (* zero, one, two *) x = 2;

?a?cY¤Ya ? cec®¤a ¤ ®F® ?aY¤a?aY¦¤Y?i, ?®a?®«i?a 2
?¬YYa a?? int,   Y a?? enum count. ˜a? ?a?ac®Y?? ?«? ??-
ae? «?§ ae?? ?YaYc?a«?¬®F® a??  «aceY ?®«i§®c aiai ?¤Ya?ae?? –
a®a ¬?, ®?aY¤Y«Ye¬? c ¤ ®¬ ?YaYc?a«?¬®¬ a??Y,   Y aeY«®-
c?a«Ye¬? «?aYa « ¬?.

Initializing ?¤Ya?ae?? a®a with a??
??ae? «?§ ae?i ?¤Ya?ae?? a®a  a??®¬

‚e ?ea YaYai ??ae? «?§?a®c ai ?YaY¬Yai a??  enum

– 301 –
§ cY?Y¬ YcYa®F® a?? . ˜a® ®e?!? , ® ce¤ Yaai a®«i?®
?aY¤a?aY¦¤Y?Y, ? ?a®Fa ¬¬  ?®«ac Ya e a § a !®a ai.

Mixing pointers to signed and unsigned char
‘¬Ye ®Y ?a?®«i§®c ?Y a? § aY«Y©   signed ? unsigned char

‚e ?aY®!a §®c «? a? § aY«i   char c a? § aY«i  
unsigned char, «?!®  ®!®a®a !Y§ ic®F® ?a?cY¤Y?i a??®c.
(‘aa®F® F®c®ai, ia® ¤®?aaa?¬®, ®   8086 c aa® ?a?c®¤?a ?
®e?!®ce¬ aY§a«ia a ¬).

No declaration for function aea?ae?i
?aaaaaacaYa ®!eic«Y?Y aea?ae??

˜a® a®®!eY?Y ce¤ Yaai ?a? ?®?ea?Y ce§®c  aea?ae?? !Y§
YY ?aY¤c a?aY«i®F® ®!eic«Y?i. ‚ ‘ ¬®¦® ®!eic?ai aea?ae?i
!Y§ ?a®a®a?? ,  ?a?¬Ya “int func();”. ‚ ‘++ ? ¦¤®Y ®!eic«Y-
?Y aea?ae?? ic«iYaai a ?¦Y YY ?a®a®a??®¬; ?a?cY¤Ye© ?a?¬Ya
i?c?c «YaY “int func(void);”. ?!eic«Y?Y ¬®¦Ya !eai § ??-
a ® ? ? c ?« aa?cYa?®¬, a ? ? c a®caY¬Y®¬ (a ?a®a®a??®¬)
aa?«Y.

Non-const function aea?ae?i called for const object
”a?ae?i, Y ?¬Yie i a??  ?®aa ae, ce§c   ¤«i ®!eY?a 
-?®aa ae

”a?ae?i-?®¬?®Ya, Y ?¬Yie i a??  ?®aa ae, ce§c  
¤«i ®!eY?a  a?? ?®aa ae. ˜a® ®e?!? , ® ce¤ Yaai a®«i?®
?aY¤a?aY¦¤Y?Y, ? ?a®Fa ¬¬  ?®«ac Ya e a § a !®a ai.

Nonportable pointer comparison
˜Y¬®!?«i®Y aa cY?Y a? § aY«Y©

‚ c eY¬ ?aa®¤®¬ ae ©«Y a? § aY«i aa c?c Yaai a Y-a? –
§ aY«Y¬, Y ic«iie?¬ai a«Yc®© ?®aa a®©. …a«? aa cY?Y
ce?®«iYaai a ?, ? ? c ¬ a¦®, ¬®¦® ?a?®«i§®c ai ?a?cY¤Y-
?Y, ca®!e ?®¤ c?ai cec®¤ ¤ ®F® ?aY¤a?aY¦¤Y?i.

Nonportable pointer conversion
˜Y¬®!?«i®Y ?aY®!a §®c ?Y a? § aY«i

˜Ya«Yc®Y ?aYFa «i®Y § cY?Y ?a?®«i§aYaai c ?®aY?a-
aY, F¤Y ®¦?¤ Yaai a? § aY«i ?«? ?aYFa «i®Y § cY?Y; a §-
¬Yae a? § aY«i ? ?aYFa «i®F® § cY?i ®¤? ?®ce. …a«? ce
¤Y©aac?aY«i®  ¬YaYc YaYai ?a?®«i§®c ai ¤ ®Y ?aY®!a §®c –
?Y, a«Y¤aYa ce?®«?ai ic®Y ?a?cY¤Y?Y a??®c.

Obsolete syntax; use :: instead
“aa aYce?© a?a ?a?a; ?a?®«i§a©aY ::

‘a aeY cYaa??‘++ ?a?®«i§®c «? ¤«i a §¤Y«Y?i ?¬Y? ?®¬-
?®Ya  ? ?¬Y? ?« aa  c ®!eic«Y?ia ?«? ®?aY¤Y«Y?ia a?¬c®-
«e a®c?  (.) ?«? ¤c®Ya®c?Y (:). ˜a® aaa aYce?© a?®a®!
§ ??a?; a«Y¤aYa ?a?®«i§®c ai c¬Yaa® YF® ¤c®©®Y ¤c®Ya®c?Y
(::).

‘a ae© a?®a®!:

void myclass:func(int i) (* /* … */ *)

– 302 –
˜®ce© a?®a®!:

void myclass::func(int i) (* /* … */ *)

Overload is now unnecessary and obsolete
a«®c® overload aY?Yai Y a¦® ? aaa aY«®

‚ aa aea cYaa?ia ‘++ ¤«i ®!®§ cY?i ?¬Y ?YaYFaa¦Yea
aea?ae?© a«a¦?«® aY§Yac?aaY¬®Y a«®c® overload. ’Y?Yai ‘++ ?a-
?®«i§aYa aaY¬a “!Y§®? a®© a a®c?? §aY?i a??  ?®¬?®®c??”,
?®F¤  «i! i aea?ae?i ac?a Yaai ?YaYFaa¦Y®©, Ya«? Y a? § ®
?a®a?c®?®«®¦®Y. ?a?®«i§®c ?Y a«®c  overload Y aaY!aYaai.

Parameter ? a ¬Yaa is never used
˜ a ¬Yaa Y ?a?®«i§aYaai

“? § e© ? a ¬Yaa, ®!eic«Ye© c aea?ae??, ?F¤Y Y ?a-
?®«i§aYaai c aY«Y aea?ae??. ˜a® ¬®¦Ya !eai,   ¬®¦Ya ? Y !eai
®e?!?®©, ? c aa® ic«iYaai a«Y¤aac?Y¬ ®??a?? c ? a ¬YaaY. ˜a®
?aY¤a?aY¦¤Y?Y ?®ic«iYaai a ?¦Y, Ya«? c aY«Y aea?ae?? ¤ e©
? a ¬Yaa ?YaY®!eic«Y ? ?  ca®¬ a?cYa? i (¤? ¬?cYa? i «®-
? «i i) ?YaY¬Y i. ˜ a ¬Yaa ¬ a??aaYaai  ca®¬ a?cYa?®© ?Y-
aY¬Y®© ? Y ?a?®«i§aYaai.

Possible use of ?¤Ya?ae?? a®a before definition
‚®§¬®¦®Y ?a?®«i§®c ?Y ?¤Ya?ae?? a®a  ¤® ®?aY¤Y«Y?i

‚ c eY¬ ?aa®¤®¬ ae ©«Y a? §  i ?YaY¬Y i ?a?®«i§aYa-
ai c cea ¦Y?? ¤® a®F®, ? ? Y© ?a?ac ?c Yaai § cY?Y. „«i
ceic«Y?Y ¤ ®© a?aa ae?? ?®¬??«ia®a ?a?®«i§aYa ?a®aa®Y a? –
?a®c ?Y ?a®Fa ¬¬e. …a«? ?a?®«i§®c ?Y ?YaY¬Y®© ae?§?cYa??
 a®¤?aai ¤® ? ?®F®-«?!® ?a?ac®Y?i, a® FYYa?aaYaai ¤ ®Y
a®®!eY?Y. ˜ §a¬YYaai, ae ?a?cYa?? ®?Ya a®ae a?a c«Y?i ?®a®-
?®¬ ce?®«Y?i ?a®Fa ¬¬e ¬®Faa ?a?cYaa? ? a®¬a, ca® ?a?ac®Y-
?Y ¤ ®© ?YaY¬Y®© a«ac?aai a ieY, cY¬ ?a®Fa ¬¬  YY ?a-
?®«i§aYa.

Possibly incorrect assignment
‚®§¬®¦® Y?a c?«i®Y ?a?ac®Y?Y

„ ®Y a®®!eY?Y ce¤ Yaai c a®¬ a«ac Y, ?®F¤ 
?®¬??«ia®a caaaYc Ya c¬Yaa® F« c®© ®?Ya ae?? aa«®c®F® cea –
¦Y?i ®?Ya ae?i ?a?ac®Y?i (a.Y. ? ? c aai ®?Ya a®a  if,
while ?«? do-while). ?cYi c aa® ia® ?a®aa® ®?Yc a? . …a«?
ce ¦Y« YaY ?®¤ c?ai cec®¤ ¤ ®F® a®®!eY?i, § ?«ic?aY ?a?a-
c®Y?Y c ?aaF«eY a?®!?? ? ce?®«?aY YF® ic®Y aa cY?Y ? ?
Y¤?®F® aeY«®F® a a«Y¬. ’ ??¬ ®!a §®¬,

if (a = b) …

a«Y¤aYa ?YaY??a ai ? ?

if ((a = b) != 0) …

Program flow can skip this initialization; try using (**)
˜®a®? ?a®Fa ¬¬e ¬®¦Ya ®!®©a? ¤ ai ??ae? «?§ ae?i;
?®?a®!a©aY ?a?®«i§®c ai (**)

??ae? «?§ ae?i ¤«?®© ?YaY¬Y®© § c?a?a ®a ®?Ya a®a 
if, ? ?®a®¬a ¬®¦Ya !eai ®!®©¤Y® ?a®Fa ¬¬®©. „«i a?a c«Y?i
?®aY?aa®¬ ia®© ?YaY¬Y®© a«Y¤aYa § ?«ic?ai !«®? c ? aa ae?-
Faaea a?®!®?.

– 303 –

Redefinition of ¬ ?a®a is not identical
˜YaY®?aY¤Y«Y?Y ¬ ?a®a  Y ?¤Ya?c®

‚ ?aa®¤®¬ ae ©«Y a? § e© ¬ ?a®a ?YaY®?aY¤Y«iYaai a
?a?®«i§®c ?Y¬ aY?aa , Y ?¤Ya?c®F® aY?aaa ?Yac®F® ®?aY¤Y-
«Y?i ¬ ?a®a . ˜®ce© aY?aa § ¬Y?a aa ae©.

Restarting compile using assembly
˜YaY§ ?aa? ?®¬??«ia®a  a ?a?®«i§®c ?Y¬  aaY¬!«Ya 

?®¬??«ia®a caaaYa?« ®?Ya a®a asm, Y caaaYa?c ?YaY¤
ia?¬ ®?ae?? ?®¬ ¤®© aaa®?? -B ?«? ®?Ya a®a  #pragma inline.
?a®?aa®¤?a ?YaY§ ?aa? ?®¬??«ia®a  a c?«icYe¬ aaY¤aac®¬
caaa®Y®F®  aaY¬!«?a®c ?i.

Structure passed by value
‘aaa?aaa  ?YaY¤   ?® § cY?i

…a«? ce¤ c  ¤ ®F® ?aY¤a?aY¦¤Y?i a §aYeY , a® ®®
!a¤Ya FYYa?a®c aiai cai??© a §, ?®F¤  aaaa?aaa  ?YaY¤ Yaai
c ? cYaacY  aFa¬Ya  ?® § cY?i. ˜ a?a®aaa Y i ®e?!? 
a®aa®?a c a®¬, ca® ?a? ?YaY¤ cY aaaa?aaae ? ?  aFa¬Ya 
?a®Fa ¬¬?aa ®?aa? Ya ®?Ya ae?i  ¤aYa ae?? &. ˜®a?®«i?a ?YaY¤ –
c  aaaa?aaae ?® § cY?i Y § ?aYeY , a® ®?aaa?ai ¤ ai
®?Ya ae?i ¬®¦®. ˜a® ?aY¤a?aY¦¤Y?Y a®®!e Ya c ¬ ® Ya ae?®-
 «i®aa? c e?a ¤Y©aac?©.

Style of function definition is now obsolete
˜a®a aa?«i ®?aY¤Y«Y?i aea?ae?? aaa aY«

‚ ‘++ aa ae© aa?«i ®?aY¤Y«Y?i aea?ae?? § ?aYeY:

int func(p1, p2) int p1, p2; (* /* … */ *)

? a ?¦Y Y ¤®?aa? Yaai ? ¬®F?¬? ¤aaF?¬? ?®¬??«ia®a ¬?
‘++.

Superfluous & with function
?§!ea®c i ®?Ya ae?i & a aea?ae?Y©

??Ya ae?i  ¤aYa ae?? (&) a ?¬YY¬ aea?ae?? Y aaY!aYaai;
«i! i ?®¤®! i ®?Ya ae?i ®acYaF Yaai.

Suspicious pointer convercion
˜®¤®§a?aY«i®Y ?aY®!a §®c ?Y a? § aY«i

?®¬??«ia®a caaaYa?« Y?®a®a®Y ?aY®!a §®c ?Y a? § aY«i,
?®a®a®Y ?§¬Y?«® a??,   ?®a®ae© ® a? §ec Ya. …a«? ia® ?aY-
®!a §®c ?Y c ¬ a¦®, a® ¤«i ?®¤ c«Y?i ¤ ®F® ?aY¤a?aY¦-
¤Y?i c®a?®«i§a©aYai ice¬ ?a?cY¤Y?Y¬.

Temporary used to initialize ?¤Ya?ae?? a®a
„«i ??ae? «?§ ae?? ?¤Ya?ae?? a®a  ?a?®«i§®c « ai caY¬Y-
 i ?YaY¬Y i

Temporary used for parameter ®¬Ya in call to ?¤Ya?ae?? a®a
˜a? ce§®cY ?¤Ya?ae?? a®a  ¤«i ? a ¬Yaa  ®¬Ya
?a?®«i§®c « ai caY¬Y i ?YaY¬Y i

– 304 –
Temporary used for parameter ? a ¬Yaa in call to ?¤Y-
a?ae?? a®a
˜a? ce§®cY ?¤Ya?ae?? a®a  ¤«i ? a ¬Yaa  ? a ¬Yaa ?a-
?®«i§®c « ai caY¬Y i ?YaY¬Y i

Temporary used for parameter ®¬Ya
„«i ? a ¬Yaa ®¬Ya ?a?®«i§®c « ai caY¬Y i ?YaY¬Y i

Temporary used for parameter ? a ¬Yaa
„«i ? a ¬Yaa ? a ¬Yaa ?a?®«i§®c « ai caY¬Y i ?YaY¬Y i

‚ ‘++ ?YaY¬Y®© ?«? ? a ¬Yaaa a??  aae«?? ¤®«¦  !eai
?a?ac®Y  aae«?    ®!eY?a ia®F® ¦Y a?? . …a«? a??e Y a®c-
? ¤ ia, ae ?a?cYa?®Y § cY?Y ?a?ac ?c Yaai caY¬Y®© ?YaY-
¬Y®© a¦®F® a?? ,    ¤aYa ia®© caY¬Y®© ?YaY¬Y®© ?a?a-
c ?c Yaai ?YaY¬Y®© ?«? ? a ¬Yaaa a??  aae«??.
˜aY¤a?aY¦¤Y?Y ®§ c Ya, ca® ¤  i ?YaY¬Y i ?«? ? a ¬Yaa
a??  aae«?? ®a®a?aai Y ? a®¬a, cY¬a ce ®¦?¤ «?,   ? caY-
¬Y®© ?YaY¬Y®©; c ¤aaF?a a?aa ae?ia ia® ?aY¤a?aY¦¤Y?Y Y
ce¤ Yaai.

˜ ?a?¬Ya, aea?ae?i f aaY!aYa aae«?a   int,   c ?¬YYa
a?? char:

f(int&);
char c;
f(c);

‚¬Yaa® ce§®c  f a  ¤aYa®¬ c ?®¬??«ia®a FYYa?aaYa ?®¤,
i?c?c «Yae© a«Y¤aieY¬a ?aa®¤®¬a ?®¤a ‘++:

int X = c, f(X);

Undefined structure ?¤Ya?ae?? a®a
˜Y®?aY¤Y«Y i aaaa?aaa  ?¤Ya?ae?? a®a

“? §  i aaaa?aaa  !e«  ?a?®«i§®c   c ?aa®¤®¬ ae ©«Y,
c®§¬®¦® c a? § aY«Y   YY, ® Y !e«  ®?aY¤Y«Y  c ?aa®¤-
®¬ ae ©«Y. ˜a® ?aY¤a?aY¦¤Y?Y ¬®¦Ya ic«iaiai a«Y¤aac?Y¬ ®?Y-
c a?? c ?¬Y? aaaa?aaae ?«? ®aaaaaac?i ®!eic«Y?i.

Unknown assembler instruction
˜Y?§cYaa i ?®¬ ¤   aaY¬!«Ya 

?®¬??«ia®a caaaYa?« ®?Ya a®a caaa®Y®F®  aaY¬!«?a®c –
?i a Y¤®?aaa?¬e¬ ?®¤®¬ ®?Ya ae??. ˜a®cYaiaY  ??a ?Y ?®¤ 
®?Ya ae?? (c ?« cY 6, “?aYaaeY©a a i§e?®¬  aaY¬!«Ya ”   aaa.
271 ®a?F? « ). ˜® a¬®«c ?i cec®¤ ia®F® a®®!eY?i ®a?«icY.

Unreachable code
˜Y¤®aaa?e© ?®¤

‡  ®?Ya a®a®¬ break, continue, goto ?«? return Y a«Y-
¤aYa ¬Ya?  ?«? ?®Yae ae??«  ?«? aea?ae??. ?®¬??«ia®a ®aea??c –
Ya ae??«e while, do ? for a aa«®ce¬ cea ¦Y?Y¬ a??  ?®aa –
ae ? ?ea Yaai a a?®§ ai ae??«e, ?§ ?®a®aea Y aaeYaacaYa
aa«®c?i cea®¤ .

Untyped bit field assumed signed int
˜Ya???§?a®c ®¬a !?a®c®¬a ?®«i ?a?ac®Y a?? signed int

„ ®Y !?a®c®Y ?®«Y Y ?¬YYa a?Yae?ae?? ae?? a??  ? Y¬a
?a?ac ?c Yaai a?? signed int. ˜Y?®a®aeY ?®¬??«ia®ae ?a?ac ?-

– 305 –
c ia a ??¬ ?®«i¬ ?® a¬®«c ?i a?? signed int. —a®!e ia® ?aY-
¤a?aY¦¤Y?Y Y ce¤ c «®ai, ce ¤®«¦e a ¬? ?a?ac®?ai !?a®c®¬a
?®«i a?? int ?«? unsigned int.

Void functions may not return a value
”a?ae?? void Y ¬®Faa c®§ca e ai § cY?©

‚ ?aa®¤®¬ ae ©«Y aY?ae i aea?ae?i ®!eic«Y  a a??®¬
c®§ca a  void,   ?®¬??«ia®a caaaYa?« ®?Ya a®a return, c ?®-
a®a®¬ § ¤ ® § cY?Y c®§ca a . ˜a® § cY?Y ?F®a?aaYaai.

˜a?«®¦Y?Y ? ‘a ¤ aae ANSI, § c?aie?Y ®a aY «?§ ae??

˜Y?®a®aeY  a?Y?ae aa ¤ aa  ANSI C Y ®?aY¤Y«iiaai ANSI
¤®aa a®c® ?®¤a®!®. ‚ a ??a a«ac ia ? ¦¤ i aY «?§ ae?i ?®¬-
??«ia®a  ‘ ¬®¦Ya a ¬  ®?aY¤Y«iai ®a®eY?Y ? ia?¬  a?Y?a ¬.
„  i F« c  F®c®a?a ® a®¬, ? ? ia? § c?aie?Y ®a aY «?§ ae??
aa ¤ aae ®?aY¤Y«Ye ae?a¬®© Borland. ˜®¬Ya  a §¤Y«®c a®®a-
cYaaacaia §¤Yai ?a!«?? ae?? aa ¤ aa  ANSI ®a ¤Y? !ai 1988
F®¤ , ?®a®a i ic«iYaai a ¬®© ®c®©. ?a¬Ya?¬, ca® ¬Y¦¤a ‘ ? ‘
++ ?¬Yiaai a §«?c?i,   ¤ ®Y ?a?«®¦Y?Y ®a®a?aai ?a?«ic?-
aY«i® ? ‘.

2.1.1.3 ? ? ?¤Ya?ae?ae?a®c ai ¤? F®aa?cYa??Y a®®!eY?i

˜a? § ?aa?Y a ?a c?«i®© ?®¬!? ae?Y© ®?ae?© «i!®Y a®®!-
eY?Y, ce¤ c Y¬®Y ?®¬??«ia®a®¬ ?  c? ieYYai a«®c ¬? Fatal,
Error ?«? Warning, ac?a Yaai ¤? F®aa?cYa??¬ c a¬ea«Y, ®?aY-
¤Y«iY¬®¬ ANSI. ˜?¦Y ?a?c®¤iaai ®?ae??, Y®!a®¤?¬eY ¤«i a®F®,
ca®!e ®!Ya?Yc?c « ai ¤  i ?aYa?aYa ae?i:

?¤Ya?ae?? ae?i ¤? F®aa?cYa??a a®®!eY?© c TurboC++
’ !«?ae  A.1
———————————————————–
??ae?i „Y©aac?Y
———————————————————–
-A ˜ §aYe Ya a®«i?® ?«icYceY a«®c  ANSI
-C- ‡ ?aYe Ya c«®¦YeY ?®¬¬Ya a??
-p- “aa  c«?c Ya ?a?®«i§®c ?Y a®F« eY?i ® aci§ia ‘
-i32 “aa  c«?c Ya ¬??¬a¬ 32 § c e?a a?¬c®«  c ?¤Ya?ae?? –
a®a a
-w- ‚e?«ic Ya caY ?aY¤a?aY¦¤Y?i, ?a®¬Y a«Y¤aieYF®
-wbei ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® Ya®®acYaaac?? ??ae? «?§ a®-
a®c
-wdcl ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ®! ®!eic«Y?ia !Y§ a??  ?«?
?« aa  ? ¬ia?
-wcpt ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® Y¬®!?«iea aa cY?ia a? –
§ aY«Y©
-wdup ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® ¤a!«?aaie?aai Y-?¤Ya?cea
®?aY¤Y«Y?ia ¬ ?a®a 
-wsus ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® ?®¤®§a?aY«i®¬ ?aY®!a §®c –
?? a? § aY«i
-wrpt ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® Y¬®!?«iea ?aY®!a §®c ?ia
a? § aY«Y©
-wvrt ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® aea?ae?? void, c®§ca e ieY©
§ cY?Y
-wbig ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® a«?e?®¬ !®«ie®© ?®aa aY
-wucp ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® a¬Ye ®¬ ?a?®«i§®c ?? a? –
§ aY«Y© signed ? unsigned char
-wstu ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® Y®?aY¤Y«Yea aaaa?aaa a
-wext ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ® ?YaY¬Yea, ®?aY¤Y«Yea
aa §a ? ? external ? static
-wfdt ‚?«ic Ya ?aY¤a?aY¦¤Y?Y ®! ®?aY¤Y«Y?ia aea?ae??, ?a-
?®«i§aie?a typedef

– 306 –
———————————————————–

?a?®«i§®c ?Y a«Y¤aie?a ®?ae?© § ?aYeY®:

-ms! „«i ¬®¤Y«Y© ¤ ea small SS ? DS ¤®«¦e a®c? ¤ ai.
-mm! „«i ¬®¤Y«Y© ¤ ea small SS ? DS ¤®«¦e a®c? ¤ ai.
-mt! „«i ¬®¤Y«Y© ¤ ea small SS ? DS ¤®«¦e a®c? ¤ ai.
-zGxx ?¬i Faa??e BSS Y ¬®¦Ya !eai ?§¬YY®.
-zSxx ?¬i Faa??e ¤ ea data Y ¬®¦Ya !eai ?§¬YY®.

˜a®c?Y ®?ae??, Y a?®¬iaaeY §¤Yai a?Yae? «i®, ¬®Faa aa-
a  c«?c aiai ?® c eY¬a ¦Y« ?i.

2.1.2.2 ‘Y¬ a??   aFa¬Ya®c, ?YaY¤ c Y¬ea aea?ae?? main

?®F¤  ?a®Fa ¬¬  ce?®«iYaai c ®?Ya ae?®®© a?aaY¬?Y DOS
cYaa?© ¤® 3.0, § cY?Y argv[0] ?aY¤aa c«iYa a®!®© a? § aY«i
  a«Yc®© ! ©a. „«i cYaa?? DOS 3.0 ? aa aeY argv[0] a? §e-
c Ya   ?¬i ?a®Fa ¬¬e.

?aa «ieY aaa®?? argv a? §ec ia   ? ¦¤e© ?®¬?®Ya  a-
Fa¬Ya®c ?®¬ ¤®© aaa®?? DOS. ˜a®!Y«ieY a?¬c®«e, a §¤Y«ii-
e?Y  aFa¬Yae, a¤ «iiaai, ? ? ¦¤ i ?®a«Y¤®c aY«i®aai
Y?aYaecea Y-?a®!Y«iea a?¬c®«®c a aa¬ aa?c Yaai ? ? ®a-
¤Y«ie©  aFa¬Ya. ‘aa®?? a?¬c®«®c c ? cec? a a aa¬ aa?c iaai
®!ece¬ a?®a®!®¬ (? ? ®¤  aaa®? , ?®a®a i ¬®¦Ya a®¤Ya¦ ai
?a®!Y«e.)

2.1.2.3 —a® ac?a Yaai ?aYa ?a?ce¬ aaaa®©aac®¬

‹i!®Y aaaa®©aac , a !®a ieYY ? ? ?®a®«i.

2.2.1?®¬?®Yae  !®a®c a?¬c®«®c – ?aa®¤®F® ? caY¬Y?
ce?®«Y?i

˜ !®ae a?¬c®«®c, ?aa®¤e© ? caY¬Y? ce?®«Y?i, ?aY¤a-
a c«iia a®!®© a ae?aYe©  !®a a?¬c®«®c ASCII, ?®¤¤Ya¦?c Y-
¬e© IBM PC. ‹i!®© a?¬c®«, ?a®¬Y ^Z (Control-Z) ¬®¦Ya  a®-
¤?aiai c aaa®?®cea «?aYa « a, a?¬c®«iea ?®aa a a ?«?
?®¬¬Ya a?ia.

2.2.1.2 ‘®aa®i?i a¤c?F  ¤«i ¬®F®! ©aea a?¬c®«®c

?®F®! ©aeY a?¬c®«e c Turbo C++ Y ?®¤¤Ya¦?c iaai.

2.2.2˜ ?a c«Y?Y ?Yc a?

˜Yc ai a?¬c®«®c ?a®?aa®¤?a a«Yc – ?a c®, c ®a¬ «i®¬
¤«i PC  ?a c«Y??.

2.2.4.2 —?a«® !?a®c c a?¬c®«Y ?§  !®a  caY¬Y? ce?®«-
Y?i

‘?¬c®« ?§  !®a  a?¬c®«®c caY¬Y? ce?®«Y?i ?¬YYa ¤«?-
a 8 !?a®c.

3.1.2—?a«® § c e?a  c «iea a?¬c®«®c ?¤Ya?ae?? a®a 

‡ c e?¬? ic«iiaai a®«i?® ?YaceY 32 a?¬c®« , a®ai ia®
§ cY?Y ¬®¦Ya !eai ?§¬YY® ?a? ?®¬®e? ®?ae?? ?®¬ ¤®©
aaa®?? (-l). ? cYe?Y, ? caaaY?Y a?¬c®«?cYa??Y ?¬Y 
?¬Yia ®¤? ?®c®Y c?a«® § c e?a a?¬c®«®c. (—?a«® § c e?a
a?¬c®«®c c ?¤Ya?ae?? a®a a ‘++ Y ®Fa ?cY®).

3.1.2“c?aec Yaai «? aYF?aaa c® cYe?a ?¤Ya?ae?? a®a a

?®¬??«ia®a ®!ec® § aa c«iYa ?®¬?®®ce?? ¤Y« ai a §«?-

– 307 –
c?Y ¬Y¦¤a § F« ce¬? ? aaa®ce¬? !a?c ¬?. „«i a®F®, ca®!e
?®¤ c?ai acYa aYF?aaa , a«a¦?a ®?ae?i ?®¬ ¤®© aaa®??
(-l-c).

3.1.2.5 ˜aY¤aa c«Y?i ? ¬®¦Yaac  ?a??¬ Y¬ea § cY?©
¤«i a §«?cea ?aYFa «iea a??®c

———————————————————–
’?? ???¬ «i®Y § cY?Y ? ?a?¬ «i®Y § cY?Y
———————————————————–
signed char -128 127
unsigned char 0 255
signed short -32,768 32,767
unsigned short 0 65,535
signed int -32,768 32,767
unsigned int 0 65,535
signed long -2,147,483,648 2,147,483,647
unsigned long 0 4,294,967,295
———————————————————–

‚aY a??e char ?a?®«i§aia ¤«i aa Y?i § cY?i 8-!?a®-
ce© ! ©a.

‚aY a??e short ? int ?a?®«i§aia 2 ! ©a .

‚aY a??e long ?a?®«i§aia 4 ! ©a .

…a«? § ¤ ® cea c?c ?Y c ? ¬ia? (-a), caY ®!eY?ae ?-
aYFa «iea a??®c, ?a®¬Y char, cea c?c iaai ?® Fa ?aeY cYa-
ea ! ©a®c.
‘?¬c®«ieY a??e Y cea c?c iaai ??®F¤ .

3.1.2.5 ˜aY¤aa c«Y?i ? ¬®¦Yaac  ?a??¬ Y¬ea § cY?©
¤«i a §«?cea a??®c c?aY« a ?« c ieY© a®c?®©

„«i a??®c a ?« c ieY© a®c?®© Turbo C++ Intel 8087 ?a-
?®«i§aYa ae®a¬ ae ?« c ieY© a®c?? IEEE. ’?? float ?a?®«i§aYa
32-!?a®ce© ae®a¬ a ¤Y©aac?aY«iea c?aY« IEEE. ’?? double ?a-
?®«i§aYa 64-!?a®ce© ae®a¬ a ¤Y©aac?aY«iea c?aY« IEEE. ’??
long double ?a?®«i§aYa 80-!?a®ce© a ae?aYe© ae®a¬ a ¤Y©a-
ac?aY«iea c?aY« IEEE.

3.1.3.4 ‘®®a®eY?Y ¬Y¦¤a  !®a ¬? a?¬c®«®c – ?aa®¤e¬
? caY¬Y? ce?®«Y?i

‹i!eY a?¬c®«e c aaa®?®cea «?aYa « a ?«? a?¬c®«iea
?®aa a a ®aa iaai c® caY¬i ce?®«Y?i ?a®Fa ¬¬e !Y§ ?§¬Y-
Y?©. ˜ !®ae a?¬c®«®c, ?aa®¤e© ? caY¬Y? ce?®«Y?i, ®¤?-
 ?®ce.

3.1.3.4 ‡ cY?Y aeY«®c?a«Y®© a?¬c®«i®© ?®aa ae,
a®¤Ya¦ eY© a?¬c®« ?«? a?a c«iieai ?®a«Y¤®c aY«i®aai, Y
?aY¤aa c«YeY c ! §®c®¬  !®aY a?¬c®«®c caY¬Y? ce?®«Y?i
?«? c a ae?aY®¬  !®aY a?¬c®«®c, ¤«i e?a®?®© a?¬c®«i®©
?®aa ae

??a®??Y a?¬c®«e Y ?®¤¤Ya¦?c iaai. ?? a aa¬ aa?c iaai
? ? ®!eceY a?¬c®«e. ‚aY ¤®?aaa?¬eY a?a c«iie?Y ?®a«Y¤®c –
aY«i®aa? ?®¬Ye iaai c ®¤? ?«? ¤aaF®© a?¬c®«. …a«? ?a?®«i-
§aYaai eYaa ¤ae a?a?c i ?«? c®ai¬Ya?c i a?a c«iie i ?®a«Y-
¤®c aY«i®aai, ?aYcee ie i ¤®?aaa?¬e© ¤«i a?¬c®«  ¤? ? §®,
?®¬??«ia®a ce¤ Ya a®®!eY?Y.

3.1.3.4 ‡ cY?Y aeY«®c?a«Y®© ?®aa ae, ?®a®a i a®-
¤Ya¦?a !®«YY ®¤®F® a?¬c®« , ?«? e?a®? i a?¬c®«i i ?®aa –
a , ?®a®a i a®¤Ya¦?a !®«YY ®¤®F® ¬®F®! ©a®F® a?¬c®« 

– 308 –
‘?¬c®«ieY ?®aa ae ¬®Faa a®¤Ya¦ ai ®¤? ?«? ¤c  a?¬-
c®« . …a«? c?«icY® ¤c  a?¬c®« , a® ?Yace© a?¬c®« § ?¬ Ya
¬« ¤e?© ! ©a ?®aa ae,   ca®a®© § ?¬ Ya aa ae?© ! ©a.

3.1.3.4 ’Y?aeYY ¬Yaa® ¤Y©aac?i, ?a?®«i§aY¬®Y ¤«i ?aY®!-
a §®c ?i ¬®F®! ©aea a?¬c®«®c c a®®acYaaacaie?Y e?a®??Y
a?¬c®«e ¤«i e?a®?®© a?¬c®«i®© ?®aa ae

??a®??Y a?¬c®«ieY ?®aa ae a a?®§ iaai, ® a aa¬ a-
a?c iaai, ? ? ®!eceY a?¬c®«ieY ?®aa ae. ‚ ia®¬ a¬ea«Y
“¬Yaa®¬ ¤Y©aac?i” ic«iYaai “‘”.

3.2.1.2 ˜Y§a«ia a ?aY®!a §®c ?i aeY«®F® c !®«YY ?®a®a-
??© a?? aeY«®F® a® § ?®¬, «?!® aY§a«ia a ?aY®!a §®c ?i aeY-
«®F® !Y§ § ?  c aeY«®Y a® § ?®¬ a c®© ¤«?e, Ya«? § cY?Y
Y ¬®¦Ya !eai ?aY¤aa c«Y® ?®«®aaii

˜a? ?aY®!a §®c ?i ce?®«iiaai ?a®aae¬ aaYcY?Y¬ !?a®c
aa aeYF® ?®ai¤? . –Y«eY a® § ?®¬ aa iaai c c?¤Y ¤®?®«Y?i
¤® 2, ?®ia®¬a aY§a«ia?aaieYY c?a«® ?aYa?aYa?aaYaai ? ? a –
?®c®Y. …a«? aa ae?© !?a !®«YY ?®a®a?®F® aeY«®F® Ya«Yc®©, a®
ia® § cY?Y ?aYa?aYa?aaYaai ? ? ®aa?ae aY«i®Y; c ?a®a?c®¬
a«ac Y ®® ac?a Yaai ?®«®¦?aY«ie¬.

3.2.1.3 ˜ ?a c«Y?Y aaYcY?i, ?®F¤  c?a«® ?aYFa «i®F®
a??  ?aY®!a §aYaai c c?a«® a ?« c ieY© a®c?®©, ?®a®a®Y Y
¬®¦Ya c a®c®aa? ?aY¤aa c«iai ?aa®¤®Y c?a«®

–Y«®Y c?a«® ®?aaF«iYaai ¤® !«?¦ ©eYF® ?aY¤aa c?¬®F®
§ cY?i. 31-1
˜ ?a?¬Ya, § cY?Y a??  long (2 ) ?aY®!a §aYaai c § –
cY?Y float 31
2 . ˜ §aYeY?Y  ?a c«Y?i ®?aaF«Y?i ?a®?§c®¤?aai ?®
aa ¤ aae¬  a?ae¬Ya?cYa??¬ ?a c?« ¬ IEEE.

3.2.1.4 ˜ ?a c«Y?Y aaYcY?i ?«? ®?aaF«Y?i ?a? ?aY®!-
a §®c ?? c?a«® a ?« c ieY© a®c?®© c c?a«® a ?« c ieY© a®c-
?®© ¬YieY© a®c®aa? ?aY¤aa c«Y?i.

—?a«® ®?aaF«iYaai ¤® !«?¦ ©eYF® ?aY¤aa c?¬®F® § cY?i.
˜ §aYeY?Y  ?a c«Y?i ®?aaF«Y?i ?a®?§c®¤?aai ?® aa ¤ aa-
e¬  a?ae¬Ya?cYa??¬ ?a c?« ¬ IEEE.

3.3 ˜Y§a«ia ae ?®a §ai¤ea ®?Ya ae?© ¤«i aeY«ea a® § ?®¬

˜®a §ai¤eY ®?Ya ae?? ce?®«iiaai ¤«i aeY«ea a® § ?®¬
a ? ¦Y, ? ? ? ¤«i a®®acYaaacaie?a a??®c !Y§ § ? . ‡ ?®ce©
!?a a aa¬ aa?c Yaai ? ? ®!ece© !?a ¤ ea. ˜Y§a«ia a § aY¬
?aYa?aYa?aaYaai ? ? ®!ec®Y aeY«®Y a® § ?®¬, ?aY¤aa c«Y®Y
? ? ¤®?®«Y?Y ¤® 2.

3.3.2.3 —a® ?a®?aa®¤?a, ?®F¤  ¤®aaa? ? ?®¬?®Yaa ®!e-
Y?a  a??  ®!eY¤?Y?i ?a®?aa®¤?a ?a? ?®¬®e? ?®¬?®Ya  ¤aa-
F®F® a?? 

„®aaa? a §aYeY ? !a¤Ya ?a®?aa®¤?ai ? aa ?¬e¬ a ¬ !?-
a ¬. „«i ?®?¬ ?i ¤®aaa?  ? ?®¬?®Yaa a ?« c ieY© a®c?®© a
?a?®«i§®c ?Y¬ ¤«i ia®F® ?®¬?®Ya  ¤aaF®F® a??  ce ¤®«¦e
cYa?® ?aY¤aa c«iai aY!Y !?a®cai ?®¤?a®c?a § cY?© a ?« c i-
eY© a®c?®©. …a«? aa ?¬e© ?®¬?®Ya ?®a®cY, cY¬ ?®¬?®Ya,
?a?®«i§aY¬e© ¤«i ¤®aaa?  ? § cY?i, a® «?e?Y !?ae !a¤aa
?¬Yai § cY?i, a® ®? a®aa ia § cY?i, ?®a®aeY ®? ?¬Y«?
¤® § ??a? c ? ¬iai !®«YY ?®a®a?®F® ?®¬?®Ya .

3.3.3.4 ’?? aeY«®F® c?a« , ?aY¤ § cY®F® ¤«i aa Y?i
¬ ?a?¬ «i®F® a §¬Ya  ¬ aa?c 

– 309 –
„«i ®!ec®F® ¬ aa?c  ia® a?? unsigned int,   ¤«i ¬ aa?-
c®c c a«ac Y ¬®¤Y«? ¤ ea huge ia® a?? signed long.

3.3.4˜Y§a«ia a ?a?cY¤Y?i a??  a? § aY«i c aeY«®Y ? ®!a a®

˜a? ?aY®!a §®c ?ia ¬Y¦¤a aeY«e¬? ? a? § aY«i¬? ®¤? ?®-
cea a §¬Ya®c ? ®¤? !?a Y ?§¬YiYaai. ˜a? ?aY®!a §®c ??
!®«YY ¤«?®F® a??  ? !®«YY ?®a®a?®¬a aaY? iaai aa ae?Y !?-
ae. ˜a? ?aY®!a §®c ?? !®«YY ?®a®a?®F® aeY«®F® c !®«YY ¤«?-
e© a? § aY«i a c «  aeY«®Y a ae?aiYaai c a ?®© ?aYFa «ie©
a??, ?®a®ae© ?® ¤«?Y a®®acYaaacaYa ¤ ®¬a a? § aY«i. –Y«eY
a® § ?®¬ ¤«i § ?®«Y?i ®cea ! ©a®c a ae?aiiaai ?® § ?a.
? «®F?ce¬ ®!a §®¬, !®«YY ?®a®a??Y a? § aY«? ¤«i ?aY®!a §®-
c ?i c !®«YY ¤«?e© ?aYFa «ie© a?? a c «  a ae?aiiaai
¤® a??  a? § aY«i, ?®a®ae© ?® ¤«?Y a cY ¤ ®¬a ?aYFa «i-
®¬a a??a.

3.3.5‡ ? ®aa a?  ?a? aeY«®c?a«Y®¬ ¤Y«Y??

?®F¤  a®«i?® ®¤? ?§ ®?Ya ¤®c ®aa?ae aY«Y, ®aa a®?
a ?¦Y !a¤Ya ®aa?ae aY«ie¬. …a«? ? ®¤? ?§ ®?Ya ¤®c Y ®a-
a?ae aY«Y, ?«? ®!  ®aa?ae aY«ie, ®aa a®? !a¤Ya ?®«®¦?aY«i-
e¬.

3.3.6?aYFa «ie© a??, Y®!a®¤?¬e© ¤«i aa Y?i a §®a-
a? ¬Y¦¤a ¤ca¬i a? § aY«i¬?   i«Y¬Yae ®¤®F® ? a®F® ¦Y
¬ aa?c , ptrdiff_t

„«i !«?¦?a (near) a? § aY«Y© ia® a?? signed int,   ¤«i
a? § aY«Y© far ?«? huge – ia® signed long. ’?? ptrdiff_t § –
c?a?a ®a ?a?®«i§aY¬®© ¬®¤Y«? ? ¬ia?. „«i ¬ «ea ¬®¤Y«Y© ? ¬i-
a? ia® a?? int,   ¤«i !®«ie?a ¬®¤Y«Y© ? ¬ia? – ia® a?? long.

3.3.7˜Y§a«ia a a¤c?F  c?a c® ®aa?ae aY«i®F® ?aYFa «i-
®F® a??  a® § ?®¬

?aa?ae aY«ieY ®aa?ae aY«ieY § cY?i a® § ?®¬ ?a?
a¤c?FY c?a c® a ae?aiiaai ?® § ?a.

3.5.1‘aY?Yi cYa®ia®aa? ae ?a?cYa?®F® a §¬YeY?i c aY-
F?aaa a ®!eY?a®c a® a?Yae?ae?? a®a®¬ ?« aa  ? ¬ia? register

‚ aYF?aaa ¬®Faa !eai ?®¬YeYe ®!eY?ae, ®!eic«YeY ? ?
¤caa! ©a®ceY ?aYFa «ieY a??e ?«? a? § aY«?. ?®¬??«ia®a ¬®-
¦Ya ?®¬Ye ai c aYF?aaa ¤? ¬?cYa??Y «®? «ieY ?YaY¬YeY ¬ –
«®F® a §¬Ya , ® ®!eic«YeY ? ? register !a¤aa ?¬Yai ?a?®-
a?aYa. „«i ia®F® !ec Ya ¤®aaa?® Y ¬YieY ¤caa,   c®®!eY ¤®
eYaa? aYF?aaa®c. —?a«® ae ?a?cYa?? ?a?®«i§aY¬ea ¤«i ia®© aeY«?
aYF?aaa®c § c?a?a ®a c?a«  aYF?aaa®c, Y®!a®¤?¬ea ¤«i aa Y-
?i ?a®¬Y¦aa®cea § cY?© aY?aeY© aea?ae??.

3.5.2.1 ‡ ?®«Y?Y ? cea c?c ?Y ?®¬?®Ya®c aaaa?aaa

˜® a¬®«c ?i § ?®«Y?Y aaaa?aaaa?¬c®« ¬?-§ ?®«?aY«i¬?
Y ce?®«iYaai. ˜a? ?a?®«i§®c ?? ®?ae?? cea c?c ?i (-a)
aaaa?aaae ¤®?®«iiaai ¤® cYa®F® a §¬Ya ,   «i!eY ?®¬?®Y-
ae,Y ?¬Yie?Y a?¬c®«i®F® a??  ?«? a??  a?¬c®«i®F® ¬ aa?c ,
cea c?c iaai ?® cYae¬  ¤aYa ¬ a¬YeY?i.

3.5.2.1 ˜ aa¬ aa?c Yaai «? «?Y©®Y !?a®c®Y ?®«Y int
? ? signed int, ?«? ¦Y ? ? unsigned int

‹?Y©eY !?a®ceY ?®«i int a aa¬ aa?c iaai ? ? ?¬Yie?Y
a?? signed int.

3.5.2.1 ˜®ai¤®? a a?aY¤Y«Y?i !?a®c®F® ?®«i c int

– 310 –
˜?a®c®Y ?®«Y a a?aY¤Y«iYaai c  ?a c«Y?? ®a ?®§?ae??
¬« ¤eYF® !?a  ? ?®§?ae?? aa aeYF® !?a .

3.5.2.1 ?®¦Ya «? !?a®c®Y ?®«Y ?YaYaY? ai Fa ?aea Y¤??-
aee ? ¬ia?

?®F¤  ®?ae?i cea c?c ?i (-a) Y § ?a e?c Yaai, !?a®c®Y
?®«Y ¬®¦Ya ?YaYaY? ai Fa ?aea a«®c , ® ??®F¤  Y ¬®¦Ya § –
?¬ ai !®«YY ¤caa a®aY¤?a ! ©a®c.

3.5.2.2 ?aYFa «ie© a??, ?®a®ae¬ ?aY¤aa c«iiaai § cY-
?i ?YaYc?a«?¬®F® a?? 

…a«? a¬Ya a®a®c aa®«i?®, ca® ac a Ya a??  unsigned
char, a® ce!?a Yaai ia®a a??; c ?a®a?c®¬ a«ac Y ce!?a Yaai
signed int.

3.5.4? ?a?¬ «i®Y c?a«® ¤Y?« a a®a®c, ?®a®aeY ¬®Faa ¬®-
¤?ae?ae?a®c ai  a?ae¬Ya?cYa??© a??, aaaa?aaaa ?«? ®!eY¤?Y?Y

‘?Yae? «iea ®Fa ?cY?©   c?a«® ¤Y?« a a®a®c Ya. —?a-
«® a §aYeYea ¤Y?« a a®a®c ¤®aa a®c® cY«??®, ®¤ ?® ?a?
F«a!®?®¬ aa®cY c«®¦Y®aa? c  !®a !«®?®c aea?ae?? c?a«®
¤Y?« a a®a®c a¬Yie Yaai. ˜  ae ©«®c®¬ aa®cY ia® c?a«® Y
¬YYY 50.

3.5.5.3 —a® ?aY¤aa c«iYa a®!®© ¤®aaa? ? ®!eY?aa, ?®a®-
ae© ?c «?ae?ae?a®c  a??®¬ volatile

‹i! i aae«?    ®!eY?a volatile ?a?c®¤?a ? ¤®aaa?a ?
a ¬®¬a ®!eY?aa. ˜a®?§®©¤Ya «? ¤®aaa? ? ®!eY?aa ?a? ¤®aaa?Y ?
a¬Y¦e¬  ¤aYa ¬ ? ¬ia?, § c?a?a ®a ae?§?cYa?®© ?®aaaa?ae??
? ¬ia? c  ?? a a®¬ ®!Ya?YcY??. „«i a?Yae? «i®© ? ¬ia? aaa-
a®©aac, a ?®© ? ? ¤?a?«Y© i ? ¬iai, ia® § c?a?a ®a ?®a-
aaa?ae?? aaaa®©aac . „«i ®!ec®© ? ¬ia? PC ®!eY?ae volatile
?a?®«i§aiaai a®«i?® ¤«i a ?®© ? ¬ia?, ? ?®a®a®© c®§¬®¦Y
¤®aaa? ?®  a?aa®e¬ ?aYaec ?i¬, ?®ia®¬a ¤®aaa? ? a¬Y¦e¬
®!eY?a ¬ Y ®? §ec Ya iaeaeY?a .

3.6.4.2 ? ?a?¬ «i®Y c?a«® case-c a? a®c c ®?Ya a®aY
switch

˜  c?a«® c a? a®c ®?Ya a®a  switch a?Yae? «iea ®Fa ?-
cY?© Ya. …a«? ? ¬ia? ¤®aa a®c®, a® ?®¬??«ia®a ®!a !®a Ya
caY.

3.8.1‘®®acYaaacaYa «? § cY?Y ®¤®-a?¬c®«i®© ?®aa –
ae c cea ¦Y?? a??  ?®aa ae, a?a c«iieY¬ aa«®ce¬ c?«icY-
?Y¬, § cY?i a®© ¦Y a?¬c®«i®© ?®aa ae c  !®aY a?¬c®«®c
caY¬Y? ce?®«Y?i. ?®¦Ya «? a ? i a?¬c®«i i ?®aa a  ?a?-
?¬ ai ®aa?ae aY«i®Y § cY?Y

‚aY a?¬c®«ieY ?®aa ae, ¤ ¦Y ?®aa ae aa«®cea ¤?-
aY?a?c, ?a?®«i§aia ®¤? ? a®a ¦Y  !®a a?¬c®«®c (caY¬Y? ce-
?®«Y?i). ?¤®-a?¬c®«i i ?®aa a  !a¤Ya ®aa?ae aY«i®©,
Ya«? ia® a?¬c®«ie© a?? a® § ?®¬ signed char (?® a¬®«c ?i
? ?a? -K Y § ?a e?c Yaai).

3.8.2?Ya®¤  a®¦¤Y?i c?«ic Y¬ea ?aa®¤ea ae ©«®c

‚ a«ac Y ?¬Y c?«ic Y¬ea ae ©«®c, § ¤ ea c aF«®cea
a?®!? a, Ya«? c?«ic Y¬eY ¤?aY?a®a?? a? § e c ?®¬ ¤®©
aaa®?Y, a® ?®?a? ae ©«®c ?a®?§c®¤?aai c ? ¦¤®© ?§ ia?a ¤?aY?-
a®a?©. ˜a®a¬®aa c?«ic Y¬ea ¤?aY?a®a?© ?a®?aa®¤?a c a«Y¤aieY¬
?®ai¤?Y. ‘ c «  !Yaaaai ¤?aY?a®a??, § ¤ eY c ?®¬ ¤®©
aaa®?Y,   § aY¬ a? § eY c TURBOC.CFG. …a«? c?«ic Y¬eY ¤?-
aY?a®a?? Y § ¤ e, a® ?®?a? ce?®«iYaai a®«i?® c aY?aeY©

– 311 –
¤?aY?a®a??.

3.8.2˜®¤¤Ya¦?  § ¤ ?i c ? cec? a ?¬Y c?«ic Y¬ea ?a-
a®¤ea ae ©«®c

…a«? ?¬i ae ©«  § ¤ ® c ? cec? a, a® ?®?a? ae ©«  !a¤Ya
ce?®«iaiai c aY?aeY© ¤?aY?a®a??. …a«? ae ©« Y  ©¤Y, a®
¤ «YY Turbo C++ !a¤Ya ce?®«iai ?®?a? ae ©« , ? ? Ya«? !e YF®
?¬i !e«® § ¤ ® c aF«®cea a?®!? a.

3.8.2?a®!Y®aa? ?®a«Y¤®c aY«i®aa? a?¬c®«®c c ?¬Y a
ae ©«®c

‘?¬c®«e ®!a a®©  ?«®®© cYaae c ?¬Y a c?«ic Y¬ea
ae ©«®c a aa¬ aa?c iaai ? ? ®a¤Y«ieY a?¬c®«e,   Y ? ? a?¬-
c®«e a?a c«iieY© ?®a«Y¤®c aY«i®aa?. ˜ §«?c?i c aYF?aaaY, c
?®a®ae¬  !a  a  ?«? ? i !a?c , ?F®a?aaiaai.

3.8.8??aY¤Y«Y?i __DATE__ ? __TIME__ , ?®F¤  ®? Y¤®aaa?e

„ a  ? caY¬i ¤®aaa?e caYF¤  ? ?a?®«i§aia a?aaY¬eY ¤ –
aa ? caY¬i DOS.

4.1.1’?? ®?Ya ae?? sizeof, size_t

’?? size_t – unsigned int.

4.1.1‘?¬c®«, ®a®!a ¦ ie?© ¤Yaia?cai a®c?a

˜a® a®c?  (.).

4.1.5?®aa a  – ?aaa®© a? § aY«i, c ?®a®aai a ae?aiYa-
ai ¬ ?a®a NULL

Int ?«? long 0, c § c?a?¬®aa? ®a ¬®¤Y«? ? ¬ia?.

4.2 ˜Yc a Y¬eY ¤? F®aa?cYa??Y a®®!eY?i ? ?®cY¤Y?Y
?a? § cYaeY?? aea?ae?? assert

˜Yc a Yaai ¤? F®aa?cYa?®Y a®®!eY?Y “Assertion failed:
cea ¦Y?Y, file ?¬i_ae ©« , line nn”, F¤Y cea ¦Y?Y – ia® ce-
a ¦Y?Y a Ya¤ c® § cYae?ceY©ai aea?ae?Y© ?®aa®«i ®a®!®©
a?aa ae??, ?¬i_ae ©«  – ia® ?¬i ?aa®¤®F® ae ©« ,   nn – ia®
®¬Ya aaa®??, F¤Y ce?®«i«ai ?®aa®«i.

˜®a«Y cec®¤    ¤?a?«Y© ¤ ®F® ¤? F®aa?cYa?®F® a®®!-
eY?i ce§ec Yaai aea?ae?i abort.

4.3 ??aY¤Y«iY¬eY aY «?§ ae?Y©  a?Y?ae ?a®cYa?? a?¬c®«®c
? aea?ae?? § ¤ ?i acYa  aYF?aaa 

?aaaaaacaia, §  ?a?«icY?Y¬ ®??a ea c ?.4.3.1.

4.3.1˜ !®ae a?¬c®«®c, ?a®cYaiY¬eY aea?ae?i¬? isalnum,
isalpha, iscntrl, islower, isprint ? isupper

˜YaceY 128 ASCII-a?¬c®«®c.

4.5.1‡ cY?i, c®§ca e Y¬eY ¬ aY¬ a?cYa??¬? aea?ae?i¬?
?a? ®e?!? a, aci§ ea a ®!« aaii ®?aY¤Y«Y?i

IEEE NAN (Y-c?a«®).

4.5.1“aa  c«?c ia «? ¬ aY¬ a?cYa??Y aea?ae?? aeY«®c?a-
«Y®Y cea ¦Y?Y errno c § cY?Y ¬ ?a®a  ERANGE c a«ac Y
®e?!?? ®aa?ae aY«i®F® ?YaY?®«Y?i

– 312 –
˜Ya, a®«i?® ¤«i ¤aaF?a ®e?!®? – ®!« aa? ?YaY?®«Y?i,
a?Fa«ia®aa?, ?YaY?®«Y?i ? ®!eY© ?®aYa? a®c®aa?.

4.5.6.4 ˜a®?aa®¤?a «? ®e?!?  ®!« aa? ®?aY¤Y«Y?i, ?«?
c®§ca e Yaai ®«i, ?®F¤  aea?ae?i fmod ?¬YYa ca®a®©  aFa¬Ya,
a ce© a«i

˜Ya. fmod(x, 0) c®§ca e Ya 0.

4.7.1.1 ˜ !®a a?F «®c aea?ae?? signal

SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM.

4.7.1.1 ‘Y¬ a??  ? ¦¤®F® a?F « , a a?®§ c Y¬®F®
aea?ae?Y©

‘¬. ®??a ?Y aea?ae?? signal c ‘?a c®c??Y ?® !?!«?®aY?Y.

4.7.1.1 ?!a !®a?  ?® a¬®«c ?i ? ®!a !®a?  ?a? § Faa§?Y
?a®Fa ¬¬e ? ¦¤®F® a?F « , a a?®§ c Y¬®F® aea?ae?Y© signal

‘¬. ®??a ?Y aea?ae?? signal c ‘?a c®c??Y ?® !?!«?®aY?Y.

4.7.1.1 ˜«®??a®c ?Y a?F « , ce?®«iY¬®Y Ya«? i?c?c –
«Ya signal(sig,SIG_DFL);Y ce?®«Y ?YaY¤ ce§®c®¬ ®!a !®a-
c??  a?F «®c

˜?c?c «Ya signal(sig,SID_DFL) ce?®«iYaai caYF¤ .

4.7.1.1 ˜a¤Ya «? ®a¬YY  ®!a !®a?  a?F «  ?® a¬®«c –
?i ?a? ?®«acY?? a?F «  SIGILL ®!a !®ac??®¬, § ¤ e¬
aea?ae?? signal

˜Ya.

4.9.2’aY!aYaai «? c ?®a«Y¤Y© aaa®?Y aY?aa®c®F® ?®a®? 
®?®Yce© a?¬c®« ®c®© aaa®??

˜Ya, Y aaY!aYaai.

4.9.2˜®ic«iiaai «? ?a? caY?? a?¬c®«e ?a®!Y« , § ??a –
eY c aY?aa®ce© ?®a®? Y?®aaY¤aacY® ?YaY¤ a?¬c®«®¬ ®c®©
aaa®??

„ , ?®ic«iiaai.

4.9.2—?a«® a«Ycea a?¬c®«®c, ?®a®aeY ¬®Faa !eai ¤®! c-
«Ye ? ¤ e¬, § ??aec Y¬e¬ c ¤c®?ce© ?®a®?

˜Y ¤®! c«iiaai.

4.9.3“aa  c«?c Yaai «? ?Yac® c «i® a? § aY«i ?®§?ae??
ae ©«  ?®a®?  c aY¦?¬Y ¤®! c«Y?i (append) c  c «® ?«? c ?®-
Yae ae ©« 

“? § aY«i ?®§?ae?? ae ©«  ¤«i ?®a®?  c aY¦?¬Y ¤®! c«Y?i
?Yac® c «i® ?®¬Ye Yaai c  c «® ae ©« . ˜YaY¤ ? ¦¤®© ®?Ya –
ae?Y© § ??a? ® a!a aec Yaai c ?®Yae ae ©« .

4.9.3‚e§ec Ya «? § ??ai c aY?aa®ce© ?®a®? aaYcY?Y aci-
§ ®F® a ?®a®?®¬ ae ©«  §  ¤ ®© ?®§?ae?Y©

‡ ??ai 0 ! ©a®c ¬®¦Ya ?a?cYaa?,   ¬®¦Ya ? Y ?a?cYaa? ?
aaYcY?i ae ©« , c § c?a?¬®aa? ®a !aaeYa?§ ae?? ae ©« . …a«?
ae ©« !aaeYa?§®c , a® ?YaY¤ ®a?aea?Y¬ ae ©«  ?® a¬®«c ?i a®§-
¤ Yaai !aaeYa a a §¬Ya®¬ 512 ! ©a.

– 313 –
4.9.3‘aeYaacaia «? ae?§?cYa?? ae ©«e a«Yc®© ¤«?e

„ , aaeYaacaia.

4.9.3?®¦Ya «? ®¤? ? a®a ¦Y ae ©« !eai ®a?aea Y®¤®?-
a a®

„ , ¬®¦Ya.

4.9.4.1 „Y©aac?Y aea?ae?? remove   ®a?aeae© ae ©«

˜?? ?®© a?Yae? «i®© ?a®cYa??, ic«iYaai «? ae ©« ®a?ae-
ae¬, Y ce?®«iYaai. ?acYaaacY®aai «Y¦?a   ?a®Fa ¬¬?aaY.

4.9.4.2 —a® ?a®?§®©¤Ya, Ya«? ae ©« a ®ce¬ ?¬YY¬ a¦Y
aaeYaac®c « ?YaY¤ ce§®c®¬ rename

rename cYaYa § cY?Y -1,   errno !a¤Ya aaa ®c«Y  c
§ cY?Y EEXIST.

4.9.6.1 ‚ec®¤ c a«ac Y ?aY®!a §®c ?i %p c printf

‚ a«ac Y !«?¦?a ¬®¤Y«Y© ¤ ea ia® cYaeaY eYaa ¤ae a?-
a?cea ae?aeae (XXXX). ‚ a«ac Y ¤ «i?a ¬®¤Y«Y© ¤ ea ia® cY-
aeaY eYaa ¤ae a?a?cea ae?aeae, ¤c®Ya®c?Y ? YeY cYaeaY eYaa-
 ¤ae a?a?cea ae?aeae (XXXX:XXXX).

4.9.6.2 ‚c®¤ c a«ac Y ?aY®!a §®c ?i %p c fscanf

‘¬. 4.9.6.1.

4.9.6.2 ?aYa?aYa ae?i a?¬c®«  ¤Yae?a (-), ?®a®ae© Y
ic«iYaai ? ?Yace¬, ? ?®a«Y¤?¬a?¬c®«®¬ c a??a?Y a? ?a®c –
?i c a«ac Y ?aY®!a §®c ?i %[ c fscanf

‘¬. ®??a ?Y fscanf c ‘?a c®c??Y ?® !?!«?®aY?Y.

4.9.9.1 ‡ cY?Y, c ?®a®a®Y aaa  c«?c Yaai ¬ ?a®a
errno aea?ae?i¬? fgetpos ?«? ftell ?a? Ya¤ c®¬ § cYaeY??

EBADF – ˜YcYae© ®¬Ya ae ©« .

4.9.10.4 ‘®®!eY?i, FYYa?aaY¬eY perror

———————————————————–
Error 0 Invalid data
?e?!?  0 ˜YcYaeY ¤ eY

Invalid function number No such device
˜YcYae© ®¬Ya aea?ae?? ’ ?®F® aaaa®©aac  Ya

No such file or directory Attempt to remove current
directory
’ ?®F® ae ©«  ?«? ¤?aY?a®a?? Ya ˜®?ea?  a¤ «?ai aY?aeai
¤?aY?a®a?i

Path not found Not same device
˜aai Y  ©¤Y „aaF®Y aaaa®©aac®

Too many open files No more files
‘«?e?®¬ ¬®F® ®a?aeaea ae ©«®c ” ©«®c !®«ieY Ya

Permission denied Invalid argument
˜ §aYeY?Y Y ¤ ® ˜YcYae©  aFa¬Ya

Bad file number Arg list too big
˜YcYae© ®¬Ya ae ©«  ‘??a®?  aFa¬Ya®c a«?e?®¬ cY«??

– 314 –

Memory arena trashed Exec format error
?a?®acY  ? ¬iai ?e?!?  ae®a¬ a  § ?aa? 

Not enough memory Cross-device link
˜Y¤®aa a®c® ? ¬ia? ?a®aa-?®¬?®®c?  aaaa®©aac

Invalid memory block address Math argument
˜YcYae©  ¤aYa !«®?  ? ¬ia? ? aY¬ a?cYa??©  aFa¬Ya

Invalid environment Result too large
˜YcYa i ®?Ya ae?® i aaY¤  ˜Y§a«ia a a«?e?®¬ cY«??

Invalid format File already exists
˜YcYae© ae®a¬ a ” ©« a¦Y aaeYaacaYa

Invalid access code
˜YcYae© ?®¤ ¤®aaa? 
———————————————————–

‘¬. ®??a ?Y perror c ‘?a c®c??Y ?® !?!«?®aY?Y.

4.10.3 ˜®cY¤Y?Y calloc, malloc ?«? realloc, Ya«? § ?a®eY
a«Yc®© a §¬Ya

calloc ? malloc ?a®?F®a?aaia a ?®© § ?a®a. realloc ®a-
c®!®¤?a !«®?.

4.10.4.1 ˜®cY¤Y?Y aea?ae?? abort c ®a®eY?? ®a?aeaea ?
caY¬Yea ae ©«®c

˜aaeYae ae ©«®c Y ®c?e iaai,   ae ©«e Y § ?aec iaai.

4.10.4.3 ‘a aaa, c®§ca e Y¬e© exit ?a? Ya«Yc®¬ § cY-
??  aFa¬Ya , EXIT_SUCCESS ?«? EXIT_FAILURE

?a®!YeY ¤Y©aac?i Y ?aY¤aa¬®aaYe. ‘a aaa c®§ca e Ya-
ai c a®¬ c?¤Y, c ?®a®a®¬ ® ?YaY¤ . ‘a aaa ?aY¤aa c«Y ? ?
signed char.

4.10.4.4 ˜ !®a ?¬Y ®?Ya ae?®®© aaY¤e ? a?®a®! ?§¬YY-
?i § cY?© ?YaY¬Yea ®?Ya ae?®®© aaY¤e ?a? ?®¬®e? getenv

‘aa®?? ®?Ya ae?®®© aaY¤e aY a ¬eY, ca® ®?aY¤Y«iiaai
?®¬ ¤®© DOS SET. „«i ?§¬YY?i ia?a aaa®?   caY¬i ce?®«Y-
?i aY?aeY© ?a®Fa ¬¬e a«a¦?a putenv, ® ¤«i ?®aa®i®F® ?§-
¬YY?i ?a a¦® ?a?®«i§®c ai ?®¬ ¤a DOS SET.

4.10.4.5 ‘®¤Ya¦?¬®Y ? aY¦?¬ ®!a !®a?? aaa®?? aea?ae?Y©
system

‘aa®?  ?aYa?aYa?aaYaai ? ? ?®¬ ¤  DOS. ‡ ?aa? Yaai
COMMAND.COM, ?  aFa¬Ya aea?ae?? ?YaY¤ Yaai Y¬a ? ? ?®¬ ¤ 
  ce?®«Y?Y. ?®Faa !eai ce?®«Ye «i!eY caaaY?Y ?®¬ ¤e
DOS,   a ?¦Y .BAT-ae ©«e ? .EXE-?a®Fa ¬¬e.

4.11.4.4 ˜®a«Y¤®c aY«i®aai aa cY?i  !®a  a?¬c®«®c
caY¬Y? ce?®«Y?i

˜®a«Y¤®c aY«i®aai aa cY?i  !®a  a?¬c®«®c caY¬Y?
ce?®«Y?i ?a?®«i§aYa § cY?Y a?¬c®«  signed char ASCII.

4.11.6.2 ‘®¤Ya¦?¬®Y aaa®? a®®!eY?© ®! ®e?!?Y, c®§ca –
e Y¬ea strerror

‘¬. 4.9.10.4.

– 315 –
4.12.1 ?a?®«i§®c ?Y «®? «i®F® a ©¬Ya  ? aa Y?Y caY-
¬Y? c ae®a¬Y “AM/PM”

??aY¤Y«iiaai «®? «ieY caY¬i ? ¤ eY PC.

4.12.2.1 ?aacYa caY¬Y? a?aaY¬e¬? c a ¬?

˜aY¤aa c«Y a ?a ¬? c a®c,    c «® ®aacYa  ac?a Yaai a
¬®¬Ya  § ?aa?  ?a®Fa ¬¬e.

4.12.3.5 ”®a¬ ae ¤ ae ? caY¬Y?

Turbo C++ aY «?§aYa ae®a¬ ae ANSI.
y

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Ответить

Курсовые, Дипломы, Рефераты на заказ в кратчайшие сроки
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020