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
a ¬¬a ?YaY¤ ae §®© ?®¬??«iae?? a®¤Ya¦?¬®Y ae ©«
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.1a®aa i ®?Ya ae?® i a?aaY¬ “);
aY¤?®« F Yaai, ca® ia aaa®? !a¤Ya ?aYa?aYa?a®c
? ? \x007 ? “2.1a®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 “.1a®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.1a®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 0x0CFFYaYc®¤ !« ?
\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
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-
®:
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:
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??
®?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- 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(
‚ ‘++
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??
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
¤®?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
(*
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.4Y§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.7Y§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