home *** CD-ROM | disk | FTP | other *** search
Text File | 1980-01-01 | 129.6 KB | 2,799 lines |
- .pl 54
- .ß«
- .á¡
- # é ñá¡¡«¼ »«ß«í¿¿ «»¿ßá¡δ ¡Ñ¬«Γ«αδÑ αáß»α«ßΓαá¡Ñ¡¡δÑ
- αÑ὿ºáµ¿¿ ∩ºδ¬á æ¿. ô¬áºá¡« «Γ½¿τ¿∩ αÑ὿ºáµ¿¿ «Γ ∩ºδ¬á, «»¿ßá¡¡«ú«
- ó [1] (ñá½ÑÑ ó ΓѬßΓÑ φΓá ¬¡¿úá «í«º¡áτÑ¡á ¬á¬ K&R),
- óδº«ó ¬«¼»¿½∩Γ«αá ¿ αÑñá¬Γ«αá ßó∩ºÑ⌐.
- .ºα 諼»¿½∩Γ«αδ ∩ºδ¬á æ¿ ñ½∩ Äæ MS-DOS
- .º» 1
- 諼»¿½∩Γ«α Σ¿α¼δ BORLAND Turbo-C V1.5
- # Turbo-C »«ññÑনóáÑΓ ¡Ñ Γ«½∞¬« «»αÑñѽѡ¿∩, ñá¡¡δÑ ó K&R, ¡«
- ¿ í«½∞Φ¿¡ßΓó« αáßΦ¿αÑ¡¿⌐ ANSI-ßΓá¡ñáαΓá.
- é ñá¡¡«¼ αáºñÑ½Ñ »α¿óÑñÑ¡δ ñ«»«½¡Ñ¡¿∩ ¬ K&R;
- ßß佬¿ ñá¡δ ¡á ß««ΓóÑΓßΓóπεΘ¿Ñ αáºñÑ½δ »α¿½«ªÑ¡¿∩
- "æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó« »« ∩ºδ¬π C".
- .º» 2
- 諼¼Ñ¡Γáα¿¿
- (K&R 2.1)
- # ä«»π߬áεΓß∩ 󽫪ѡ¡δÑ ¬«¼¼Ñ¡Γáα¿¿. é φΓ«¼ ß½πτáÑ »α«úαá¼¼á ñ«½ª¡á ¬«¼»¿½¿α«óáΓ∞ß∩
- ß Σ½áú«¼ -C. ä½∩ «íÑß»ÑτÑ¡¿∩ ¼«í¿½∞¡«ßΓ¿ πñ«í¡ÑÑ «Γ¼ÑτáΓ∞ ¬«ñ,
- ¬«Γ«αδ⌐ ñ«½ªÑ¡ íδΓ∞ ºá¬«¼¼Ñ¡Γ¿α«óá¡, ñ¿αÑ¬Γ¿óἿ #if 0 ¿ #endif.
- .º» 2
- êñÑ¡Γ¿Σ¿¬áΓ«αδ
- (K&R 2.2)
- # é ¿ñÑ¡Γ¿Σ¿¬áΓ«αáσ ñ«»π߬áÑΓß∩ º¡á¬ $. Äñ¡á¬« ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼«ªÑΓ
- ¡áτ¿¡áΓ∞ß∩ Γ«½∞¬« ß íπ¬óδ ¿½¿ ß¿¼ó«½á (_).
- ç¡áτáΘ¿¼¿ ∩ó½∩εΓß∩ »ÑαóδÑ 32 ß¿¼ó«½á ¿ñÑ¡Γ¿Σ¿¬áΓ«αá.
- ä½∩ ¿º¼Ñ¡Ñ¡¿∩ τ¿ß½á º¡áτáΘ¿σ ß¿¼ó«½«ó ¼«ª¡« ¿ß»«½∞º«óáΓ∞
- »α¿ ¬«¼»¿½∩µ¿¿ «»µ¿ε -i#.
- # 32 ß¿¼ó«½á ∩ó½∩εΓß∩ º¡áτáΘ¿¼¿ ¿ ñ½∩ ú½«íá½∞¡δσ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó,
- íÑαπΘ¿σß∩ ¿º ñαπú¿σ ¼«ñπ½Ñ⌐.
- .º» 2
- è½ετÑóδÑ ß½«óá
- (K&R 2.3)
- # ì¿ªÑ »α¿óÑñÑ¡δ ¬½ετÑóδÑ ß½«óá, ºáαѺÑαó¿α«óá¡¡δÑ
- Turbo-C (TC) ¿ αáßΦ¿αÑ¡¿∩¼¿ ANSI-ßΓá¡ñáαΓá (AN).
- äá¡¡δÑ ß½«óá ¡Ñ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ ó ¬áτÑßΓóÑ ¿¼Ñ¡ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó.
- è½ετÑóδÑ ß½«óá entry ¿ fortran, π»«¼∩¡πΓδÑ ó K&R, ¡Ñ ¿ß»«½∞ºπεΓß∩
- ó Turbo-C.
- .sw
- TC asm TC _cs TC _DH
- TC cdecl TC _ds TC _DL
- AN const TC _es TC _DX
- AN enum TC _ss TC _BP
- TC far TC _AH TC _DI
- TC huge TC _AL TC _SI
- TC interrupt TC _AX TC _SP
- TC near TC _BH
- TC pascal TC _BL
- AN signed TC _CH
- AN void TC _CL
- AN volatile TC _CX
- .º» 2
- è«¡ßΓá¡Γδ
- (K&R 2.4)
- # Turbo-C »«ññÑনóáÑΓ óßÑ Γ¿»δ ¬«¡ßΓá¡Γ, «»αÑñѽѡ¡δÑ ó K&R, ß
- ¡Ñ¬«Γ«α묨 αáßΦ¿αÑ¡¿∩¼¿.
- .º» 2
- ûѽδÑ ¬«¡ßΓá¡Γδ
- (K&R 2.4.1)
- # ä«»π߬áεΓß∩ ñÑß∩Γ¿τ¡δÑ ¬«¡ßΓá¡Γδ ó ñ¿á»áº«¡Ñ 0...4294967295.
- (ÄΓα¿µáΓѽ∞¡δÑ ¬«¡ßΓá¡Γδ αáßß¼áΓα¿óáεΓß∩ ¬á¬ íѺº¡á¬«óδÑ,
- ¬ ¬«Γ«αδ¼ »α¿¼Ñ¡Ñ¡ π¡áα¡δ⌐ «»ÑαáΓ«α "¼¿¡πß".
- # æπΣΣ¿¬ß U (¿½¿ u), «º¡áτáÑΓ τΓ« ¬«¡ßΓá¡Γá ¿¼ÑÑΓ Γ¿»
- unsigned. è«¡ßΓá¡Γá íπñÑΓ ¿¼ÑΓ∞ Γ¿»
- unsigned long, Ñß½¿ ÑÑ º¡áτÑ¡¿Ñ íπñÑΓ »αÑóδΦáΓ∞
- 65535, ¡Ñºáó¿ß¿¼« «Γ ¿ß»«½∞ºπѼ«ú« «ß¡«óá¡¿∩.
- .»α ¡« ¿ß»«½∞º«óáΓ∞ ¬á¬ L, Γᬠ¿ U ßπΣΣ¿¬ßδ
- ñ½∩ «ñ¡«⌐ ¿ Γ«⌐ ªÑ ¬«¡ßΓá¡Γδ.
- .Γ¼ 3 ûѽδÑ ¬«¡ßΓá¡Γδ Turbo-C (íѺ L ¿½¿ U)
- ------------------------------------------------------
- ä¿á»áº«¡ Æ¿»
- ------------------------------------------------------
- ________ñÑß∩Γ¿τ¡δÑ_¬«¡ßΓá¡Γδ_________
- 0-32767 int
- 32767-2147483647 long
- 2147483648-4294967295 unsigned long
- >4294967295 íπñÑΓ »ÑαÑ»«½¡Ñ¡¿Ñ
- íѺ »αÑñπ»αѪñÑ¡¿∩;
- ó αѺπ½∞ΓáΓ íπñπΓ
- ºá»¿ßá¡δ ¼½áñΦ¿Ñ í¿Γδ
- ñÑ⌐ßΓó¿Γѽ∞¡«ú« αѺπ½∞ΓáΓá
- ________ó«ß∞¼Ñα¿τ¡δÑ_¬«¡ßΓá¡Γδ________
- 00-077777 int
- 0100000-0177777 unsigned int
- 01000000-017777777777 long
- 010000000000-0377777777777 unsigned long
- >0377777777777 íπñÑΓ »ÑαÑ»«½¡Ñ¡¿Ñ
- ________ΦÑßΓ¡áñµáΓÑα¿τ¡δÑ_¬«¡ßΓá¡Γδ_________
- 0x0000-0x7FFF int
- 0x8000-0xFFFF unsigned int
- 0x10000-0x7FFFFFFF long
- 0x80000000-0xFFFFFFFF unsigned long
- >0xFFFFFFFF íπñÑΓ »ÑαÑ»«½¡Ñ¡¿Ñ
- .º» 2
- 濼ó«½∞¡δÑ ¬«¡ßΓá¡Γδ
- (K&R 2.4.3)
- # éßÑ ¬«¡ßΓá¡Γδ »αÑñßΓáó½∩εΓß∩ 16-í¿Γ«ó«⌐ óѽ¿τ¿¡«⌐ Γ¿»á int.
- # Turbo-C »«ññÑনóáÑΓ ANSI-αáßΦ¿αÑ¡¿Ñ, ñ«»π߬áεΘÑÑ
- ΦÑßΓ¡áñµáΓÑα¿τ¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ ¬«ñ«ó ß¿¼ó«½«ó.
- ìá»α¿¼Ñα, '\x1F' ¿½¿ '\x82'.
- # èα«¼Ñ Γ«ú«, »«ññÑনóáÑΓß∩ ñαπú«Ñ ANSI-αáßΦ¿αÑ¡¿Ñ,
- ñ«»π߬áεΘÑÑ ESC-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿.
- äá¡¡δ⌐ ß»¿ß«¬ ESC-»«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ñ«»«½¡Ñ¡¿Ñ ß»¿ß¬á,
- »α¿óÑñÑ¡¡«ú« ó K&R.
- .Γ¼ 3 ESC-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿ Turbo-C
- ------------------------------------------------------
- ū߽Ññ«óáΓѽ∞¡«ßΓ∞ è«ñ æ¿¼ó«½ Åα¿¼Ñτá¡¿Ñ
- ------------------------------------------------------
- \a 0x07 BEL âπñ«¬
- \v 0x0B VT éÑαΓ¿¬á½∞¡á∩
- Γáíπ½∩µ¿∩
- \" 0x22 " äó«⌐¡á∩ ¬áóδτ¬á
- \? 0x3F ?
- \DDD ½εí«⌐ Γ«ªÑ, τΓ« /ddd ó K&R
- \xHHH 0xHHH ½εí«⌐ HHH=1,2 ¿½¿ 3
- ΘÑßΓ¡áñµáΓÑα¿τ¡δÑ
- µ¿Σαδ
- .»α Æ.¬. Turbo-C ñ«»π߬áÑΓ ñóπσß¿¼ó«½∞¡δÑ ¬«¡ßΓá¡Γδ,
- ¼«ªÑΓ ó«º¡¿¬¡πΓ∞ ñóπß¼δ߽ѡ¡«ßΓ∞, Ñß½¿
- ó«ß∞¼Ñα¿τ¡á∩ ESC-»«ß½Ññ«óáΓѽ∞¡«ßΓ∞
- ¼Ñ¡∞ΦÑ τѼ ¿º ΓαÑσ µ¿Σα »αÑñΦÑßΓóπÑΓ µ¿ΣαÑ.
- é Γᬿσ ß½πτá∩σ,
- Turbo-C íπñÑΓ »αÑñ»«½áúáΓ∞, τΓ« ß½ÑñπεΘ¿⌐ ß¿¼ó«½ - τáßΓ∞
- ESC-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿,
- ñáªÑ Ñß½¿ ß¿¼ó«½ ¡Ñ ñ«»π߬áÑΓß∩ ñ½∩ ñá¡¡«ú« Γ¿»á
- τ¿ßѽ.
- ìá»α¿¼Ñα, ¬«¡ßΓá¡Γá \258 íπñÑΓ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ß∩ ¬á¬ ñóπσß¿¼ó«½∞¡á∩ ¬«¡ßΓá¡Γá,
- ß«ßΓ«∩Θá∩ ¿º ß¿¼ó«½«ó \25 ¿ 8.
- .º» 2
- è«¡ßΓá¡Γδ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐
- (K&R 2.4.4)
- # éßÑ ¬«¡ßΓá¡Γδ, «»αÑñѽѡ¡δÑ ¬á¬ double,
- »αÑñßΓáó½∩εΓ ß«í«⌐ ¬«¡ßΓá¡Γδ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
- Äñ¡á¬«, ¬«¡ßΓá¡Γá ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ¼«ªÑΓ ¿¼ÑΓ∞ Γ¿»
- float; ¡Ñ«íσ«ñ¿¼« ñ«íáó½∩Γ∞ ßπΣΣ¿¬ß F ¿½¿ f ¬ ÑÑ º¡áτÑ¡¿ε.
- .º» 2
- æΓ᫬¿
- (K&R 2.5)
- # Turbo-C ñ«»π߬áÑΓ ¼¡«ú«ßΓ᫬«óδÑ φ½Ñ¼Ñ¡Γδ
- ó ß¿¼ó«½∞¡δσ ¬«¡ßΓá¡Γáσ; ßΓ᫬«óá∩ ¬«¡ßΓá¡Γá íπñÑΓ
- »αÑñßΓáó½∩Γ∞ ß«í«⌐ «íΩÑñ¿¡Ñ¡¿Ñ φ½Ñ¼Ñ¡Γ«ó.
- # ìá»α¿¼Ñα,
- .«Σ
- main()
- {
- char *p;
- p="äá¡¡á∩ »α«úαá¼¼á - »α¿¼Ñα Γ«ú«, ¬á¬ Turbo-C"
- "íπñÑΓ áóΓ«¼áΓ¿τÑ߬¿\n«ßπΘÑßΓó½∩Γ∞ «íΩÑñ¿¡Ñ¡¿Ñ"
- "ßΓ᫬ ó «τÑ¡∞ ñ½¿¡¡πε ßΓ᫬π;\n"
- "Γá¬á∩ ßΓαπ¬Γπαá ¿ß»«½∞ºπÑΓß∩ ñ½∩ í«½∞ΦÑ⌐"
- "¡áú½∩ñ¡«ßΓ¿ »α«úαá¼¼δ.\n"
- }
- .º» 2
- çáó¿ß¿¼«ßΓ∞ «Γ ¼áΦ¿¡δ
- (K&R 2.6)
- .Γ¼ 3 滿߫¬ αẽ¿τ¡δσ Γ¿»«ó ñá¡¡δσ ñ½∩ Turbo-C
- ------------------------------------------------------
- Æ¿» ÉẼÑα(ó í¿Γáσ) ä¿á»áº«¡
- ------------------------------------------------------
- unsigned char 8 0-255
- char 8 -128-127
- enum 16 -32768-32767
- unsigned short 16 0-65535
- short 16 -32768-32767
- unsigned int 16 0-65535
- int 16 -32768-32767
- unsigned long 32 0-4294967295
-
- long 32 -2147483648-2147483647
-
- float 32 3.4E-38-3.4E+38
- double 64 1.7E-308-1.7E+308
- long double 64 1.7E-308-1.7E+308
-
- pointer 16 (near, _cs, _ds, _ss)
- pointer 32 (far, huge)
- .»α Æ¿» long double ñ«»π߬áÑΓß∩, ¡« αáßß¼áΓα¿óáÑΓß∩ ¬á¬
- double.
- .º» 2
- ÅαÑ«íαẫóá¡¿∩
- (K&R 6)
- .º» 2
- Char, int ¿ enum
- (K&R 6.1)
- # ÅαÑ«íαẫóá¡¿Ñ ß¿¼ó«½∞¡«⌐ ¬«¡ßΓá¡Γδ ¬ µÑ½«¼π ¿¼ÑÑΓ αѺπ½∞ΓáΓ«¼ 16-í¿Γ«ó«Ñ
- º¡áτÑ¡¿Ñ. ÅαÑ«íαẫóá¡¿Ñ ß¿¼ó«½∞¡«ú« «íΩѬΓá (»ÑαѼѡ¡«⌐) ¬
- µÑ½«τ¿ß½Ñ¡¡«¼π «íΩѬΓπ ¿¼ÑÑΓ αѺπ½∞ΓáΓ«¼ áóΓ«¼áΓ¿τÑ߬«Ñ
- º¡á¬«ó«Ñ αáΦ¿αÑ¡¿Ñ, Ñß½¿ óδ ßñѽ὿ »« π¼«½τá¡¿ε Γ¿» char
- íѺº¡á¬«óδ¼ (¿ß»«½∞ºπ∩ »α¿ ¬«¼»¿½∩µ¿¿ «»µ¿ε -K).
- ÄíΩѬΓδ Γ¿»á signed char óßÑúñá ¿ß»«½∞ºπεΓ º¡á¬«ó«Ñ αáßΦ¿αÑ¡¿Ñ;
- «íΩѬΓδ Γ¿»á unsigned char óßÑúñá πßΓá¡áó½¿óáεΓ ßΓáαΦ¿⌐ í¿Γ ó ¡π½∞,
- ¬«úñá »αÑ«íαáºπεΓß∩ ó int.
- # ç¡áτÑ¡¿∩ Γ¿»á enum »αÑ«íαáºπεΓß∩ ó int íѺ ¼«ñ¿Σ¿¬áµ¿¿;
- á¡á½«ú¿τ¡« Γ¿» int »αÑ«íαáºπÑΓß∩ ó »ÑαÑτ¿ß½¿¼δ⌐ Γ¿».
- .º» 2
- ô¬áºáΓѽ¿
- (K&R 6.4)
- # ô¬áºáΓѽ¿, ¿ß»«½∞ºπѼδÑ »α«úαá¼¼«⌐, ¼«úπΓ íδΓ∞ αẽ¿τ¡δσ αẼÑα«ó,
- ó ºáó¿ß¿¼«ßΓ¿ «Γ ¿ß»«½∞ºπѼ«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
- ìá»α¿¼Ñα, ¬«úñá óδ ¬«¼»¿½¿απÑΓÑ »α«úαá¼¼π, ¿ß»«½∞ºπ∩ ߻ѵ¿á½∞¡πε ¼«ñѽ∞ »á¼∩Γ¿,
- áñαÑßπѼδÑ ¼«ñ¿Σ¿¬áΓ«αδ (¿¡ñѬߡδÑ αÑú¿ßΓαδ) (near, huge, far, _cs, _ds,
- _ss, _es) ¼«úπΓ ¡Ñ »α¿¡¿¼áΓ∞ ó« ó¡¿¼á¡¿Ñ αẼÑα π¬áºáΓѽ∩,
- ºáñá¡¡δ⌐ ñá¡¡«⌐ ¼«ñѽ∞ε »á¼∩Γ¿.
- # ô¬áºáΓѽ∞ ñ«½ªÑ¡ íδΓ∞ «íΩ∩ó½Ñ¡ ¬á¬ π¬áºáΓѽ∞ ¡á ¡Ñ¬«Γ«αδ⌐
- ߻ѵ¿á½∞¡δ⌐ Γ¿», ñáªÑ Ñß½¿ ñá¡¡δ⌐ Γ¿» - void (¬«Γ«αδ⌐ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿
- «º¡áτáÑΓ π¬áºáΓѽ∞ ¡á ¡¿τÑú«). Äñ¡á¬«, íπñπτ¿ «íΩ∩ó½Ñ¡, π¬áºáΓѽ∞
- ¼«ªÑΓ π¬áºδóáΓ∞ ¡á «íΩÑ¬Γ ½εí«ú« ñαπú«ú« Γ¿»á.
- Turbo-C »«ºó«½∩ÑΓ »ÑαѡạáτáΓ∞ π¬áºáΓѽ¿, ¡« ¬«¼»¿½∩Γ«α íπñÑΓ
- »αÑñπ»αѪñáΓ∞, τΓ« »α«¿º«Φ½« »ÑαѡạáτÑ¡¿Ñ π¬áºáΓѽ∩ -
- Ñß½¿ π¬áºáΓѽ∞ ¡Ñ íδ½ »Ñαó«¡áτá½∞¡« «»αÑñѽѡ ¬á¬
- π¬áºáΓѽ∞ ¡á Γ¿» void. Äñ¡á¬« π¬áºáΓѽ¿ ¡á Γ¿»δ ñá¡¡δσ ¡Ñ
- ¼«úπΓ íδΓ∞ »αÑ«íαẫóá¡δ ¬ π¬áºáΓѽ∩¼ ¡á Γ¿»δ Σπ¡¬µ¿⌐, ¿ ¡á«í«α«Γ.
- .º» 2
- Çα¿Σ¼ÑΓ¿τÑ߬¿Ñ »αÑ«íαẫóá¡¿∩
- (K&R 6.6)
- # ÅαÑ«íαẫóá¡¿Ñ «»Ñαá¡ñ«ó ó áα¿Σ¼ÑΓ¿τÑ߬¿σ óδαáªÑ¡¿∩σ
- óδ»«½¡∩ÑΓß∩ »« ß½ÑñπεΘ¿¼ »αáó¿½á¼:
- .na
- ïεí«⌐ ¡Ñ-integer ¿ ¡Ñ-double Γ¿» »αÑ«íαáºπÑΓß∩ ¬á¬
- »«¬áºá¡« ó Γáí½¿µÑ, »α¿óÑñÑ¡¡«⌐ ¡¿ªÑ.
- .na
- àß½¿ ¬á¬«⌐-½¿í« ¿º «»Ñαá¡ñ«ó ¿¼ÑÑΓ Γ¿» double, ñαπú«⌐ «»Ñαá¡ñ
- Γ«ªÑ »αÑ«íαáºπÑΓß∩ ó double.
- .na
- àß½¿ ¬á¬«⌐-½¿í« ¿º «»Ñαá¡ñ«ó ¿¼ÑÑΓ Γ¿» unsigned long, ñαπú«⌐ «»Ñαá¡ñ
- Γ«ªÑ »αÑ«íαáºπÑΓß∩ ó unsigned long.
- .na
- àß½¿ ¬á¬«⌐-½¿í« ¿º «»Ñαá¡ñ«ó ¿¼ÑÑΓ Γ¿» unsigned, ñαπú«⌐ «»Ñαá¡ñ
- Γ«ªÑ »αÑ«íαáºπÑΓß∩ ó unsigned.
- .Γ¼ 4 îÑΓ«ñδ áα¿Σ¼ÑΓ¿τÑ߬¿σ »αÑ«íαẫóá¡¿⌐
- ------------------------------------------------------
- ÉѺπ½∞ΓáΓ
- Æ¿» »αÑ«íαẫóá¡¿∩ îÑΓ«ñ
- ------------------------------------------------------
- char int º¡á¬«óδ⌐
- unsigned char int ¡π½Ñó«⌐ ßΓáαΦ¿⌐ íá⌐Γ
- (óßÑúñá)
- signed char int º¡á¬«óδ⌐ (óßÑúñá)
- short int Ñß½¿ íѺº¡á¬«óδ⌐,
- Γ« íѺº¡á¬«óδ⌐ int
- enum int Γá ªÑ óѽ¿τ¿¡á
- float double ¼á¡Γ¿ßßá ñ«»«½¡∩ÑΓß∩ 0
- .º» 2
- Ä»ÑαáΓ«αδ
- (K&R 7.2)
- # Turbo-C »«ññÑনóáÑΓ π¡áα¡δ⌐ «»ÑαáΓ«α +. Äíδτ¡«
- Turbo-C «ßπΘÑßΓó½∩ÑΓ »ÑαÑúαπ»»¿α«ó¬π óδαáªÑ¡¿⌐,
- »ÑαÑπ»«α∩ñ«τ¿óá∩ ¬«¼¼πΓáΓ¿ó¡δÑ «»ÑαáΓ«αδ (Γá¬¿Ñ ¬á¬ * ¿ ñó«¿τ¡δ⌐ +),
- »δΓá∩ß∞ ß«ºñáΓ∞ óδαáªÑ¡¿∩ φΣΣÑ¬Γ¿ó¡δÑ »α¿ ¬«¼»¿½∩µ¿¿.
- Äñ¡á¬« Turbo-C ¡Ñ íπñÑΓ »ÑαÑ«αúá¡¿º«óδóáΓ∞ óδαáªÑ¡¿∩ ß π¡áα¡δ¼ «»ÑαáΓ«α«¼ +.
- æ½Ññ«óáΓѽ∞¡«, óδ ¼«ªÑΓÑ ¬«¡Γα«½¿α«óáΓ∞ óδτ¿ß½Ñ¡¿∩ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐,
- Γ.Ñ. «Γ½áó½¿óáΓ∞ «Φ¿í¬¿ Γ«τ¡«ßΓ¿ ¿ »ÑαÑ»«½¡Ñ¡¿∩, ¿ß»«½∞ºπ∩ π¡áα¡δ⌐ «»ÑαáΓ«α +,
- ¿ »α¿ φΓ«¼ ¡Ñ αáºí¿óá∩ µÑ½«Ñ óδαáªÑ¡¿Ñ ¡á «Γñѽ∞¡δÑ óδαáªÑ¡¿∩.
- ìá»α¿¼Ñα, àß½¿ a, b, c ¿ f ¿¼ÑεΓ Γ¿» float, óδαáªÑ¡¿Ñ
- # f=a++(b+c)
- .ȧ 1
- íπñÑΓ óδτ¿ß½∩Γ∞ß∩ ß½ÑñπεΘ¿¼ «íαẫ¼: αѺπ½∞ΓáΓ (b+c)
- íπñÑΓ »α¿íáó½Ñ¡ ¬ a.
- .º» 2
- æ»Ñµ¿Σ¿¬áµ¿¿ Γ¿»«ó
- (K&R 8.2)
- # Turbo-C »«ññÑনóáÑΓ ß½ÑñπεΘ¿Ñ «ß¡«ó¡δÑ Γ¿»δ, ¡Ñ π¬áºá¡¡δÑ ó K&R.
- .φí 1
- unsigned char
- .φí 1
- unsigned short
- .φí 1
- unsigned long
- .φí 1
- long double
- .φí 1
- enumeration
- .φí 1
- viod
- # Æ¿» long double φ¬ó¿óá½Ñ¡ΓÑ¡ Γ¿»π double.
- .º» 2
- Æ¿» enum
- # Turbo-C »«ññÑনóáÑΓ óßÑ »ÑαÑτ¿ß½¿¼δÑ Γ¿»δ ANSI-ßΓá¡ñáαΓá.
- ÅÑαÑτ¿ß½¿¼δ⌐ Γ¿» ñá¡¡δσ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «»¿ßá¡¿∩ ñ¿ß¬αÑΓ¡«⌐
- »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
- µÑ½δσ º¡áτÑ¡¿⌐.
- ìá»α¿¼Ñα,
- # enum days { sun, mon, tues, wed, thur, fri, sat};
- # ê¼Ñ¡á, ºá¡ÑßÑ¡¡δÑ ó days, »αÑñßΓáó½∩εΓ ß«í«⌐ µÑ½δÑ ¬«¡ßΓá¡Γδ,
- »Ñαóá∩ (sun) áóΓ«¼áΓ¿τÑ߬¿ πßΓá¡«ó½Ñ¡á ó ¡π½∞ ¿ ¬áªñá∩ ß½ÑñπεΘá∩
- ¿¼ÑÑΓ º¡áτÑ¡¿Ñ ¡á Ññ¿¡¿µπ í«½∞ΦÑ, τѼ »αÑñδñπΘá∩
- (mon=1, tues=2 ¿ Γ.ñ.).
- ¡« »α¿ßó«¿Γ∞ ¬«¡ßΓá¡Γá¼ «»αÑñѽѡ¡δÑ º¡áτÑ¡¿∩; ¿¼Ñ¡á,
- ¡Ñ ¿¼ÑεΘ¿Ñ «»αÑñѽѡ¡δσ º¡áτÑ¡¿⌐, íπñπΓ, ¬á¬ ¿ αá¡∞ΦÑ, ¿¼ÑΓ∞ º¡áτÑ¡¿∩
- »αÑñδñπΘ¿σ ¬«ßΓá¡Γ, πóѽ¿τÑ¡¡δÑ ¡á Ññ¿¡¿µπ.
- ìá»α¿¼Ñα,
- # enum coins {penny=1, nickle=5, dime=10, quarter=25};
- # ÅÑαѼѡ¡«⌐ »ÑαÑτ¿ß½¿¼«ú« Γ¿»á ¼«ªÑΓ íδΓ∞ »α¿ßó«Ñ¡« º¡áτÑ¡¿Ñ ½εí«ú« Γ¿»á
- int - »α«óÑα¬á Γ¿»á ¡Ñ »α«¿ºó«ñ¿Γß∩.
- .º» 2
- Æ¿» void
- # Turbo-C »«ññÑনóáÑΓ Γ¿» void, «»αÑñѽѡ¡δ⌐ ó ANSI-ßΓá¡ñáαΓÑ.
- äá¡¡δ⌐ Γ¿» ¿ß»«½∞ºπÑΓß∩ ñ½∩ ∩ó¡«ú« «»¿ßá¡¿∩ Σπ¡¬µ¿⌐, ¡Ñ ó«ºóαáΘáεΘ¿σ º¡áτÑ¡¿⌐.
- ǡὫú¿τ¡«, »πßΓ«⌐ ß»¿ß«¬ »áαá¼ÑΓα«ó ¼«ªÑΓ
- íδΓ∞ «íΩ∩ó½Ñ¡ ß½«ó«¼ void.
- ìá»α¿¼Ñα,
- .sw
- void putmsg(void)
- {
- printf("Hello, world\n");
- }
-
- main()
- {
- putmsg();
- }
- # ¡« »αÑ«íαẫóδóáΓ∞ óδαáªÑ¡¿Ñ ¬ Γ¿»π void, ñ½∩ Γ«ú« τΓ«íδ ∩ó¡« π¬áºáΓ∞, τΓ«
- º¡áτÑ¡¿Ñ, ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿Ñ⌐, ¿ú¡«α¿απÑΓß∩.
- ìá»α¿¼Ñα, Ñß½¿ óδ σ«Γ¿ΓÑ »α¿«ßΓá¡«ó¿Γ∞ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ ñ« ΓÑσ »«α »«¬á
- »«½∞º«óáΓѽ∞ ¡Ñ ¡áª¼ÑΓ ¬á¬πε-½¿í« ¬½áó¿Φπ, óδ ¼«ªÑΓÑ ¡á»¿ßáΓ∞:
- .sw
- (void) getch();
- # èα«¼Ñ Γ«ú«, ¼«ª¡« «íΩ∩ó¿Γ∞ π¬áºáΓѽ∞ ¡á «íΩÑ¬Γ Γ¿»á void.
- äá¡¡δ⌐ π¬áºáΓѽ∞ ¡Ñ íπñÑΓ π¬áºáΓѽѼ ¡á ¡¿τÑú«; ß«ºñáßΓß∩ π¬áºáΓѽ∞ ¡á
- ¬á¬«⌐-Γ« «íΩÑ¬Γ ñá¡¡δσ, Γ¿» ¬«Γ«α«ú« ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ «»αÑñѽ∩Γ∞.
- éδ ¼«ªÑΓÑ »α¿ßóá¿óáΓ∞ ½εí«⌐ π¬áºáΓѽ∞ π¬áºáΓѽε Γ¿»á void, ¿ «íαáΓ¡«.
- Äñ¡á¬« óδ ¡Ñ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ «»ÑαáΓ«α ¬«ßóÑ¡¡«⌐ áñαÑßᵿ¿ (*),
- Γ.¬. ¿ß»«½∞ºπѼδ⌐ Γ¿» ¡Ñ«»αÑñѽѡ.
- .º» 2
- ç¡á¬«óδ⌐ ¼«ñ¿Σ¿¬áΓ«α
- # èα«¼Ñ π¬áºá¡¡δσ ó K&R ΓαÑσ Γ¿»«ó ¼«ñ¿Σ¿¬áΓ«α«ó -
- long, short ¿ unsigned - Turbo-C »«ññÑনóáÑΓ ÑΘÑ Γα¿:
- signed, const ¿ vilatile (ANSI-ßΓá¡ñáαΓ).
- # î«ñ¿Σ¿¬áΓ«α signed ∩ó¡« π¬áºδóáÑΓ, τΓ« óѽ¿τ¿¡á ß« º¡á¬«¼.
- äá¡¡δ⌐ ¼«ñ¿Σ¿¬áΓ«α ¿ß»«½∞ºπÑΓß∩ »αÑ¿¼πΘÑßΓóÑ¡¡« ñ½∩ ñ«¬π¼Ñ¡Γ¿α«óá¡¡«ßΓ¿
- ¿ ºáóÑαΦÑ¡¡«ßΓ¿ »α«úαá¼¼. Äñ¡á¬«, Ñß½¿ óδ ¬«¼»¿½¿απÑΓÑ »α«úαá¼¼π,
- ¿ß»«½∞ºπ∩ »« π¼«½τá¡¿ε íѺº¡á¬«óδ⌐ Γ¿» char (ó¼ÑßΓ« º¡á¬«ó«ú«),
- ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ¼«ñ¿Σ¿¬áΓ«α signed, ñ½∩ Γ«ú« τΓ«íδ
- «»αÑñѽ¿Γ∞ »ÑαѼѡ¡πε ¿½¿ Σπ¡¬µ¿ε Γ¿»á signed char.
- î«ñ¿Σ¿¬áΓ«α signed, ¿ß»«½∞º«óá¡¡δ⌐ ßá¼ »« ßÑíÑ, «º¡áτáÑΓ signed int,
- Γá¬ªÑ ¬á¬ unsigned «º¡áτáÑΓ unsigned int.
- .º» 2
- î«ñ¿Σ¿¬áΓ«α const
- # î«ñ¿Σ¿¬áΓ«α const, ¬á¬ «»αÑñѽѡ« ó ANSI-ßΓá¡ñáαΓÑ,
- ¡Ñ ñ«»π߬áÑΓ ¬á¬¿σ íδ Γ« ¡¿ í佫 »ÑαÑ«»αÑñѽѡ¿⌐ º¡áτÑ¡¿∩
- ¬«¡ßΓá¡Γδ ¿½¿ ñαπú¿σ ¬«ßóÑ¡¡δσ ñÑ⌐ßΓó¿⌐,
- Γᬿσ ¬á¬ π¼Ñ¡∞ΦÑ¡¿Ñ ¿½¿ πóѽ¿τÑ¡¿Ñ.
- ô¬áºáΓѽ∞ ¡á Γ¿» const ¡Ñ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡, ó «Γ½¿τ¿¿ «Γ ßἫú«
- «íΩѬΓá, ¬«Γ«αδ⌐ «¡ «»αÑñѽ∩ÑΓ.
- .»α î«ñ¿Σ¿¬áΓ«α const, ¿ß»«½∞ºπѼδ⌐ ßá¼ »« ßÑíÑ, φ¬ó¿óá½Ñ¡ΓÑ¡
- const int.
- Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ »α¿¼Ñαδ:
- .sw
- const float pi =3.1415926;
- const maxint =32767;
- const *char str ="Hello, world";
- # Åα¿óÑñÑ¡¡δÑ ¡¿ªÑ πΓóÑαªñÑ¡¿∩ ¡Ññ«»πßΓ¿¼δ:
- .sw
- pi = 3.0; /* Åα¿ßó«Ñ¡¿Ñ º¡áτÑ¡¿∩
- ¬«¡ßΓá¡ΓÑ */
- i = maxint--; /* ô¼Ñ¡∞ΦÑ¡¿Ñ ¬«¡ßΓá¡Γδ */
- str = "Hi, there!"; /* ÅÑαѡạáτÑ¡¿Ñ π¬áºáΓѽ∩ */
- .»α Äñ¡á¬«, ó맮ó Σπ¡¬µ¿¿ strcpy(str,"Hi, there!") ñ«»πßΓ¿¼,
- Γ.¬. ó ñá¡¡«¼ ß½πτáÑ «ßπΘÑßΓó½∩ÑΓß∩ »«ß¿¼ó«½∞¡«Ñ ¬«»¿α«óá¡¿Ñ ßΓ᫬¿
- "Hi, there!" ó ∩τÑ⌐¬¿ »á¼∩Γ¿, «»αÑñѽ∩ѼδÑ str.
- .º» 2
- î«ñ¿Σ¿¬áΓ«α volatile
- # î«ñ¿Σ¿¬áΓ«α
- volatile
- - »«τΓ¿ »«½¡á∩ »α«Γ¿ó«»«½«ª¡«ßΓ∞ const.
- Ä¡ π¬áºδóáÑΓ, τΓ« «íΩÑ¬Γ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡; ¡« ¡Ñ Γ«½∞¬« ¡Ñ»«ßαÑñßΓóÑ¡¡«
- óáΦÑ⌐ »α«úαá¼¼«⌐, ¡« ¿ Γá¬ªÑ ó¡ÑΦ¡¿¼ ó«ºñÑ⌐ßΓó¿Ñ¼, Γᬿ¼ ¬á¬
- »α«úαá¼¼á »αÑαδóá¡¿⌐ ¿½¿ »«αΓ óó«ñá/óδó«ñá. ÄíΩ∩ó½Ñ¡¿Ñ
- «íΩѬΓá ¬á¬
- volatile »αÑñπ»αѪñáÑΓ ¬«¼»¿½∩Γ«α, τΓ« ¡Ñ ¡πª¡« ñѽáΓ∞ »αÑñ»«½«ªÑ¡¿⌐
- «Γ¡«ß¿Γѽ∞¡«
- º¡áτÑ¡¿∩ «íΩѬΓá, ó Γ« óαѼ∩ ¬á¬ «µÑ¡¿óáεΓß∩ óδαáªÑ¡¿∩,
- Ñú« ß«ñÑαªáΘ¿Ñ, Γ.¬. º¡áτÑ¡¿Ñ ¼«ªÑΓ (ΓÑ«αÑΓ¿τÑ߬¿)
- ¿º¼Ñ¡¿Γ∞ß∩ ó ½εí«⌐ ¼«¼Ñ¡Γ. èα«¼Ñ Γ«ú«, ¿ß»«½∞º«óá¡¿Ñ
- ñá¡¡«ú« ¼«ñ¿Σ¿¬áΓ«αá ¡Ñ »«ºó«½∩ÑΓ ¬«¼»¿½∩Γ«απ ¿ß»«½∞º«óáΓ∞
- ó¼ÑßΓ« »ÑαѼѡ¡δσ
- αÑú¿ßΓα«óδÑ »ÑαѼѡ¡δÑ.
- # Åα¿¼Ñαδ:
- .sw
- volatile int ticks;
- interrupt timer();
- {
- ticks++;
- }
-
- wait (int interval)
- {
- ticks=0;
- while(ticks<interval);
- }
- # ¥Γ¿ »α«úαá¼¼δ íπñπΓ "ªñáΓ∞" ó ΓÑτÑ¡¿Ñ óαѼѡ¿, π¬áºá¡¡«ú« ó áαúπ¼Ñ¡ΓÑ
- interval.
- çá¼ÑΓ¿¼, τΓ« ¬«¼»¿½∩Γ«α ß óδß«¬¿¼ πα«ó¡Ñ¼ «»Γ¿¼¿ºáµ¿¿ ¼«ªÑΓ
- ¡Ñ ºáúαπº¿Γ∞ º¡áτÑ¡¿Ñ ticks ó¡πΓα¿ µ¿¬½á while, Γ.¬. µ¿¬½ ¡Ñ ¿º¼Ñ¡∩ÑΓ º¡áτÑ¡¿∩
- ticks.
- .º» 2
- î«ñ¿Σ¿¬áΓ«αδ cdecl ¿ pascal
- # Turbo-C »«ºó«½∩ÑΓ «íαáΘáΓ∞ß∩ ¿º óáΦÑ⌐ »α«úαá¼¼δ ¬ »α«úαá¼¼á¼,
- ¡á»¿ßá¡¡δ¼ ¡á ñαπú¿σ ∩ºδ¬áσ, ¿ ¡á«í«α«Γ.
- Åα¿ ß¼ÑΦ¿óá¡¿¿ ∩ºδ¬«ó óδ ñ«½ª¡δ ¿¼ÑΓ∞ ñѽ« ß ñóπ¼∩ óáª¡δ¼¿ «íΩÑ¬Γ¿¼¿:
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ ¿ »ÑαÑñáóáÑ¼δ¼¿ »áαá¼ÑΓαἿ.
- # è«úñá óδ ¬«¼»¿½¿απÑΓÑ »α«úαá¼¼π ó Turbo-C,
- óßÑ ú½«íá½∞¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ »α«úαá¼¼δ, Γ.Ñ. ¿¼Ñ¡á Σπ¡¬µ¿⌐ ¿
- ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ, ß«σαá¡∩εΓß∩ ó «íΩÑ¬Γ¡«¼ ¬«ñÑ, »«½πτÑ¡¡«¼
- ó αѺπ½∞ΓáΓÑ ¬«¼»¿½∩µ¿¿, ñ½∩ αáí«Γδ αÑñá¬Γ«αá ßó∩ºÑ⌐.
- Å« π¼«½τá¡¿ε φΓ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ß«σαá¡∩εß∩ ó ßó«Ñ¼ »Ñαó«¡áτá½∞¡«¼ ó¿ñÑ
- (Γ.Ñ ¡áíαá¡¡δ¼¿ ºáú½áó¡δ¼¿, ßΓα«τ¡δ¼¿ ¿½¿ ΓѼ¿ ¿ ñαπú¿¼¿ íπ¬óἿ).
- èα«¼Ñ Γ«ú«, ß¿¼ó«½ (_) »αÑñΦÑßΓóπÑΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«απ, Ñß½¿ óδ ¡Ñ
- ¿ß»«½∞º«ó὿ «»µ¿ε -u- »α¿ ¬«¼»¿½∩µ¿¿.
- # ǡὫú¿τ¡«, óßÑ ó¡ÑΦ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ, «íΩ∩ó½Ñ¡¡δÑ ó »α«úαá¼¼Ñ,
- «ßΓáεΓß∩ ó Γ«¼ ªÑ ßἫ¼ Σ«α¼áΓÑ. ÉÑñá¬Γ«α ßó∩ºÑ⌐ (»« π¼«½τá¡¿ε)
- αẽ¿τáÑΓ αÑú¿ßΓαδ ¬½áó¿áΓπαδ, »«φΓ«¼π ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ, ¿ß»«½∞ºπѼδÑ
- ó αẽ¿τ¡δσ »α«úαá¼¼áσ, ñ«½ª¡δ »«½¡«ßΓ∞ε ß«ó»áñáΓ∞ ¬á¬
- ß Γ«τ¬¿ ºαÑ¡¿∩ «αΣ«úαáΣ¿¿ Γᬠ¿ αÑú¿ßΓα«ó ¬½áó¿áΓπαδ.
- .º» 3
- pascal
- # é «»αÑñѽѡ¡δσ ß¿Γπᵿ∩σ, ¡á»α¿¼Ñα »α¿ ¿ß»«½∞º«óá¡¿¿ ¬«ñ«ó,
- ºá»¿ßá¡¡δσ ¡á ñαπú¿σ ∩ºδ¬áσ, «»¿ßá¡¡δ⌐ óδΦÑ ¼ÑΓ«ñ ß«σαá¡Ñ¡¿∩ ¿¼Ñ¡,
- »α¿¼Ñ¡∩Ѽδ⌐ »« π¼«½τá¡¿ε, ¼«ªÑΓ óδºóáΓ∞ α∩ñ »α«í½Ñ¼.
- Turbo-C »«ºó«½∩ÑΓ ¿ºíѪáΓ∞ ñá¡¡δσ »α«í½Ñ¼.
- ¡« «íΩ∩ó¿Γ∞ ½εí«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¬á¬ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á
- pascal. ¥Γ« «º¡áτáÑΓ, τΓ« ¿ñÑ¡Γ¿Σ¿¬áΓ«α »αÑ«íαáºπÑΓß∩
- ¬ óÑασ¡Ñ¼π αÑú¿ßΓαπ ¿ ¡Ñ ñ«íáó½∩ÑΓß∩ ß¿¼ó«½ »«ñτÑનóá¡¿∩.
- (àß½¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Σπ¡¬µ¿∩, ñá¡¡«Ñ »αá󿽫 αáß»α«ßΓαá¡∩ÑΓß∩ ¡á
- »ÑαÑñáóáѼδÑ »áαá¼ÑΓαδ.)
- .º» 3
- cdecl
- # éßÑ ú½«íá½∞¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ ¼«ª¡« ßñѽáΓ∞
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ Γ¿»á pascal, ¿ß»«½∞ºπ∩ «»µ¿ε -p »α¿ ¬«¼»¿½∩µ¿¿. Äñ¡á¬«,
- óδ ¼«ªÑΓÑ π¬áºáΓ∞, τΓ« «»αÑñѽѡ¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ - ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ¡Ñ
- Åá߬á½Ñó߬«ú« Γ¿»á.
- éδ ¼«ªÑΓÑ «íΩ∩ó¿Γ∞ ¿σ ¬á¬ cdecl, (ñá¡¡«Ñ »αá󿽫 αáß»α«ßΓαá¡∩ÑΓß∩
- ¿ ¡á »ÑαÑñáóáѼδÑ ó Σπ¡¬µ¿ε »áαá¼ÑΓαδ).
- .»α éßÑ Σπ¡¬µ¿¿ ó ß¿ßΓѼ¡δσ include-Σá⌐½áσ (¡á»α¿¼Ñα, stdio.h)
- ¿¼ÑεΓ Γ¿» cdecl. ¥Γ« »«ºó«½∩ÑΓ
- »«ñ¬½ετáΓ∞ ß¿ßΓѼ¡δÑ í¿í½¿«ΓѬ¿, Ñß½¿ óδ ¿ß»«½∞ºπÑΓÑ «»µ¿ε -p
- »α¿ ¬«¼»¿½∩µ¿¿.
- .º» 2
- î«ñ¿Σ¿¬áΓ«αδ near, far ¿ huge
- # äá¡¡δÑ ¼«ñ¿Σ¿¬áΓ«αδ ó«ºñÑ⌐ßΓóπεΓ ¡á ¬«ßóÑ¡¡δÑ «»ÑαáΓ«α (*),
- á ¿¼Ñ¡¡«, ¼«ñ¿Σ¿µ¿απεΓ π¬áºáΓѽ¿ ¡á ñá¡¡δÑ.
- # Turbo-C »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ αẽ¿τ¡δÑ ¼«ñѽ¿ »á¼∩Γ¿.
- î«ñѽ∞, ¬«Γ«απε óδ ¿ß»«½∞ºπÑΓÑ, «»αÑñѽ∩ÑΓ ó¡ÑΦ¡¿⌐ Σ«α¼áΓ π¬áºáΓѽÑ⌐ ¡á
- ñá¡¡δÑ. àß½¿ óδ ¿ß»«½∞ºπÑΓÑ "¼á½πε" ¼«ñѽ∞ ñá¡¡δσ (tiny, small, medium),
- óßÑ π¬áºáΓѽ¿ ¿¼ÑεΓ ñ½¿¡π Γ«½∞¬« 16 í¿Γ ¿ ºáñáεΓ ß¼ÑΘÑ¡¿Ñ
- «Γ¡«ß¿Γѽ∞¡« αÑú¿ßΓαá ßÑú¼Ñ¡Γá ñá¡¡δσ (DS). àß½¿ ¿ß»«½∞ºπÑΓß∩
- "í«½∞Φá∩" ¼«ñѽ∞ »á¼∩Γ¿ (compact, large, huge), óßÑ π¬áºáΓѽ¿ ¡á
- ñá¡¡δÑ ¿¼ÑεΓ ñ½¿¡π 32 í¿Γá ¿ ºáñáεΓ ¬á¬
- áñαÑß ßÑú¼Ñ¡Γá, Γᬠ¿ ß¼ÑΘÑ¡¿Ñ.
- # é ¡Ñ¬«Γ«αδσ ß½πτá∩σ, ¬«úñá ¿ß»«½∞ºπÑΓß∩ «ñ¿¡ αẼÑα ¼«ñѽ¿ ñá¡¡δσ,
- ¼«ª¡« «íΩ∩ó¿Γ∞ π¬áºáΓѽ∞ ß αẼÑα«¼ ¿½¿ Σ«α¼áΓ«¼, «Γ½¿τ¡δ¼ «Γ ¿ß»«½∞ºπѼ«ú«
- »« π¼«½τá¡¿ε. ¥Γ« ñѽáÑΓß∩ ß »«¼«Θ∞ε ¼«ñ¿Σ¿¬áΓ«α«ó
- near, far ¿ huge.
- # ô¬áºáΓѽ∞ Γ¿»á near - 16-í¿Γ¡δ⌐; «¡ ¿ß»«½∞ºπÑΓ ΓѬπΘÑÑ ß«ñÑন¼«Ñ
- αÑú¿ßΓαá ßÑú¼Ñ¡Γá ñá¡¡δσ (DS) ñ½∩ «»αÑñѽѡ¿∩ áñαÑßá ßÑú¼Ñ¡Γá. Å« π¼«½τá¡¿ε
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¼á½δσ ¼«ñѽÑ⌐ ñá¡¡δσ. Åα¿ ¿ß»«½∞º«óá¡¿¿ π¬áºáΓѽÑ⌐ Γ¿»á
- near, ñá¡¡δÑ óáΦÑ⌐ »α«úαá¼¼δ «úαá¡¿τÑ¡δ αẼÑα«¼ ΓѬπΘÑú« ßÑú¼Ñ¡Γá ñá¡¡δσ 64è.
- # ô¬áºáΓѽ∞ Γ¿»á far - 32-í¿Γ¡δ⌐; ß«ñÑαª¿Γ ¬á¬
- áñαÑß, Γᬠ¿ ß¼ÑΘÑ¡¿Ñ. Å« π¼«½τá¡¿ε ¿ß»«½∞ºπÑΓß∩ ñ½∩ í«½∞Φ¿σ ¼«ñѽÑ⌐.
- Åα¿ ¿ß»«½∞º«óá¡¿¿ π¬áºáΓѽÑ⌐ Γ¿»á far ñ«»π߬áεΓß∩ ßß佬¿ ¡á ñá¡¡δÑ ó »αÑñѽáσ
- 1-îí áñαÑß¡«ú« »α«ßΓαá¡ßΓóá »α«µÑßß«α«ó Intel 8088/8086.
- # ô¬áºáΓѽ∞ Γ¿»á huge - 32-í¿Γ¡δ⌐; á¡á½«ú¿τ¡« »αÑñδñπΘѼπ,
- ß«ñÑαª¿Γ áñαÑß ßÑú¼Ñ¡Γá ¿ ß¼ÑΘÑ¡¿Ñ, «ñ¡á¬«, ó «Γ½¿τ¿¿ «Γ π¬áºáΓѽÑ⌐ Γ¿»á
- far, π¬áºáΓѽ∞ huge óßÑúñá »«ññÑনóáÑΓß∩ ¡«α¼á½¿º«óá¡¡δ¼:
- .φí 1
- Ä»ÑαáΓ«αδ «Γ¡«ΦÑ¡¿∩ (==, !=, <, >, <=, >=) αáí«ΓáεΓ »αáó¿½∞¡« ß π¬áºáΓѽ∩¼¿
- Γ¿»á huge; ¡« ¡Ñ ß π¬áºáΓѽ∩¼¿ Γ¿»á far.
- .φí 1
- éßÑ áα¿Σ¼ÑΓ¿τÑ߬¿Ñ «»Ñαᵿ¿ ¡áñ π¬áºáΓѽѼ huge ó«ºñÑ⌐ßΓóπεΓ ¬á¬ ¡á
- áñαÑß ßÑú¼Ñ¡Γá, Γᬠ¿ ¡á ß¼ÑΘÑ¡¿Ñ (¿º-ºá ¡«α¼á½¿ºáµ¿¿);
- »α¿ ¿ß»«½∞º«óá¡¿¿ far π¬áºáΓѽÑ⌐ - ó«ºñÑ⌐ßΓó¿Ñ Γ«½∞¬« ¡á ß¼ÑΘÑ¡¿Ñ.
- .φí 1
- çáñá¡¡δ⌐ π¬áºáΓѽ∞ Γ¿»á huge ¼«ªÑΓ íδΓ∞ πóѽ¿τÑ¡ ó »αÑñѽáσ
- 1îí áñαÑß¡«ú« »α«ßΓαá¡ßΓóá; π¬áºáΓѽ¿ Γ¿»á far íπñπΓ »α¿ «»αÑñѽѡ¡δσ
- «íßΓ«∩Γѽ∞ßΓóáσ µ¿¬½¿τÑ߬¿ »ÑαÑσ«ñ¿Γ∞ ¡á ¡áτὫ 64è ßÑú¼Ñ¡Γá.
- .φí 1
- Åα¿ ¿ß»«½∞º«óá¡¿¿ π¬áºáΓѽÑ⌐ Γ¿»á huge ΓαÑíπÑΓß∩ ñ«»«½¡¿Γѽ∞¡«Ñ óαѼ∩,
- Γ.¬. »α«úαá¼¼δ ¡«α¼á½¿ºáµ¿¿ ñ«½ª¡δ óδºδóáΓ∞ß∩ »«ß½Ñ óδ»«½¡Ñ¡¿∩ ½εí«⌐
- áα¿Σ¼ÑΓ¿τÑ߬«⌐ «»Ñαᵿ¿ ¡áñ π¬áºáΓѽ∩¼¿.
- .º» 2
- æΓαπ¬Γπαδ ¿ «íΩÑñ¿¡Ñ¡¿∩
- (K&R 8.5)
- # Turbo-C «íÑß»Ñτ¿óáÑΓ ß½ÑñπεΘ¿Ñ ñ«»«½¡¿Γѽ∞¡δÑ ó«º¼«ª¡«ßΓ¿.
- .º» 2
- éδαáó¡¿óá¡¿Ñ ß½«ó
- # àß½¿ »α¿ ¬«¼»¿½∩µ¿¿ ¿ß»«½∞ºπÑΓß∩ «»µ¿∩ -a, Turbo-C
- íπñÑΓ ºá»«½¡∩Γ∞ íá⌐ΓἿ ßΓαπ¬Γπαπ (¿½¿ «íΩÑñ¿¡Ñ¡¿Ñ) Γᬿ¼ «íαẫ¼, ¬á¬
- ΓαÑíπÑΓß∩ ñ½∩ óδαáó¡¿óá¡¿∩ ß½«ó.
- ÄíÑß»Ñτ¿óáÑΓß∩ ß½ÑñπεΘÑÑ:
- .φí 1
- æΓαπ¬Γπαá íπñÑΓ ¡áτ¿¡áΓ∞ß∩ ß úαá¡¿µδ ß½«óá (τÑΓ¡δ⌐ áñαÑß).
- .φí 1
- ïεí«⌐ τ½Ñ¡, ¿¼ÑεΘ¿⌐ ¡Ñ-char Γ¿», íπñÑΓ ¿¼ÑΓ∞ τÑΓ¡«Ñ ß¼ÑΘÑ¡¿Ñ «Γ
- ¡áτá½á ßΓαπ¬Γπαδ.
- .φí 1
- é ¬«¡Ñµ íπñÑΓ ñ«íáó½Ñ¡ íá⌐Γ (Ñß½¿ ¡Ñ«íσ«ñ¿¼«), ñ½∩
- úáαá¡Γ¿¿ Γ«ú«, τΓ«
- ßΓαπ¬Γπαá ß«ñÑαª¿Γ τÑΓ¡«Ñ τ¿ß½« íá⌐Γ.
- .º» 2
- ü¿Γ«óδÑ »«½∩
- # ü¿Γ«ó«Ñ »«½Ñ ¼«ªÑΓ ¿¼ÑΓ∞ Γ¿» ½¿í« signed, ½¿í« unsigned int ¿
- ¼«ªÑΓ ºá¡¿¼áΓ∞ «Γ 1 ñ« 16 í¿Γ«ó. ü¿Γ«óδÑ »«½∩ αẼÑΘáεΓß∩ ó ¡á»αáó½Ñ¡¿¿
- «Γ ¼½áñΦ¿σ ¬ ßΓáαΦ¿¼
- í¿Γá¼ ó ß½«óÑ. ìá»α¿¼Ñα, ßΓαπ¬Γπαá
- .sw
- struct mystruct {
- int i : 2;
- unsigned j : 5;
- int : 4;
- int k : 1;
- unsigned n : 4;
- } a, b, c;
- .ȧ 1
- «íÑß»Ñτ¿óáÑΓ ß½ÑñπεΘÑÑ αẼÑΘÑ¡¿Ñ:
- .ó» 10
- .sw
- __________________________________________________
- |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 |¡Ñ ¿ß»«½∞º.| j | i |
- |___________|___|___________|______________|_____|
- # Å«½∩ µÑ½«ú« Γ¿»á σαá¡∩Γß∩ ó «ñ¡«⌐ ¿º ñóπσ Σ«α¼;
- ¬αá⌐¡¿⌐ ½Ñóδ⌐ í¿Γ - º¡á¬«óδ⌐ í¿Γ.
- ìá»α¿¼Ñα, í¿Γ«ó«Ñ »«½Ñ Γ¿»á signed int Φ¿α¿¡«⌐ 1 í¿Γ
- ¼«ªÑΓ Γ«½∞¬« σαá¡¿Γ∞ º¡áτÑ¡¿Ñ -1 ¿ 0, Γ.¬. ½εí«Ñ ¡Ñ¡π½Ñó«Ñ
- º¡áτÑ¡¿Ñ íπñÑΓ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ß∩ ¬á¬ -1.
- .º» 2
- Ä»ÑαáΓ«αδ
- (K&R 9)
- # Turbo-C óδ»«½¡∩ÑΓ óßÑ íѺ ¿ß¬½ετÑ¡¿∩ «»ÑαáΓ«αδ, «»¿ßá¡¡δÑ ó
- K&R.
- .º» 2
- Ä»αÑñѽѡ¿Ñ ó¡ÑΦ¡¿σ Σπ¡¬µ¿⌐
- (K&R 10.1)
- # Ä»¿ßá¡¿Ñ extern, ºáñá¡¡«Ñ ó¡πΓα¿ Σπ¡¬µ¿¿, ¿¼ÑÑΓ ñÑ⌐ßΓó¿Ñ
- ó »αÑñѽáσ ñá¡¡«ú« í½«¬á.
- Ä»¿ßá¡¿Ñ ¡Ñ íπñÑΓ αáß»«º¡áóáΓ∞ß∩ ó¡Ñ í½«¬á, ó ¬«Γ«α«¼ «¡« «»αÑñѽѡ«.
- Äñ¡á¬«, Turbo-C íπñÑΓ "ºá»«¼¿¡áΓ∞" «»¿ßá¡¿∩, ñ½∩ Γ«ú« τΓ«íδ
- ßαáó¡¿óáΓ∞ ¿σ ß »«ß½ÑñπεΘ¿¼¿
- «»¿ßá¡¿∩¼¿ ΓÑσ ªÑ ßá¼δσ «íΩÑ¬Γ«ó.
- # Turbo-C »«ññÑনóáÑΓ ñ«»«½¡¿Γѽ∞¡δÑ ¼«ñ¿Σ¿¬áΓ«αδ Σπ¡¬µ¿⌐, Γá¬¿Ñ ¬á¬
- »α«Γ«Γ¿»δ Σπ¡¬µ¿⌐ (ANSI-ßΓá¡ñáαΓ). æπΘÑßΓóπÑΓ ¡Ñ߬«½∞¬« ß«íßΓóÑ¡¡δσ αáßΦ¿αÑ¡¿⌐
- Turbo-C, ¡á»α¿¼Ñα Σπ¡¬µ¿¿ Γ¿»á interrupt.
- .º» 2
- î«ñ¿Σ¿¬áΓ«αδ Γ¿»á Σπ¡¬µ¿¿
- (K&R 10.1.1)
- # é ñ«»«½¡Ñ¡¿Ñ ¬ external ¿ static, Turbo-C »«ññÑনóáÑΓ
- α∩ñ ¼«ñ¿Σ¿¬áΓ«α«ó Γ¿»á ñ½∩ «»¿ßá¡¿∩ Σπ¡¬µ¿⌐: pascal, cdecl, interrupt,
- near, far ¿ huge.
- .º» 3
- î«ñ¿Σ¿¬áΓ«α Σπ¡¬µ¿¿ pascal
- # äá¡¡δ⌐ ¼«ñ¿Σ¿¬áΓ«α ¿ß»«½∞ºπÑΓß∩ ñ½∩ Σπ¡¬µ¿⌐ (¿½¿ π¬áºáΓѽÑ⌐ ¡á Σπ¡¬µ¿¿),
- ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ Åá߬á½Ñó߬πε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ »ÑαÑñáτ¿ »áαá¼ÑΓα«ó.
- ¥Γ« »«ºó«½∩ÑΓ »¿ßáΓ∞ ¡á ∩ºδ¬Ñ C Σπ¡¬µ¿¿, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞
- óδºóá¡δ ¿º »α«úαá¼¼, ¡á»¿ßá¡¡δσ ¡á ñαπú«¼ ∩ºδ¬Ñ; á¡á½«ú¿τ¡«,
- ¡á½¿τ¿Ñ ¼«ñ¿Σ¿¬áΓ«αá íπñÑΓ ñ«»π߬áΓ∞ «íαáΘÑ¡¿Ñ ¿º C-»α«úαá¼¼,
- ¬ ó¡ÑΦ¡¿¼ »«ñ»α«úαá¼¼á¼, ¡á»¿ßá¡¡δ¼ ¡á ñαπú¿σ ∩ºδ¬áσ. ê¼∩ Σπ¡¬µ¿¿ »αÑ«íαáºπÑΓß∩
- ¬ óÑασ¡Ñ¼π αÑú¿ßΓαπ, τΓ« ¡Ñ«íσ«ñ¿¼« ñ½∩ αáí«Γδ αÑñá¬Γ«αá ßó∩ºÑ⌐.
- .»α êß»«½∞º«óá¡¿Ñ «»µ¿¿ -p íπñÑΓ »α¿ó«ñ¿Γ∞ ¬ Γ«¼π, τΓ« óßÑ Σπ¡¬µ¿¿
- (¿ π¬áºáΓѽ¿ ¡á φΓ¿ Σπ¡¬µ¿¿) íπñπΓ αáßß¼áΓα¿óáΓ∞ß∩ ¬á¬ Ñß½¿ íδ «¡¿
- ¿¼Ñ½¿ Γ¿» pascal.
- ìá»α¿¼Ñα, Ñß½¿ óδ «íΩ∩󿽿 ¿ «Γ¬«¼»¿½¿α«ó὿ ß½ÑñπεΘπε Σπ¡¬µ¿ε:
- .sw
- pascal putnums(unt i, int j, int k)
- {
- printf("And the answers are: %d, %d ¿ %d\n",i,j,k);
- }
- .ȧ 1
- ñαπúá∩ C-»α«úαá¼¼á ¼«ªÑΓ ºáΓѼ »«ñ¬½ετ¿Γ∞ ñá¡¡πε Σπ¡¬µ¿ε »α¿
- αáí«ΓÑ αÑñá¬Γ«αá ßó∩ºÑ⌐ ¿ «íαáΘáΓ∞ß∩ ¬ ¡Ñ⌐, ¿ß»«½∞ºπ∩ «»¿ßá¡¿Ñ:
- .sw
- pascal putnums(int i, int j, int k);
- main()
- {
- putnum(1,4,9);
- }
- # öπ¡¬µ¿¿ Γ¿»á pascal ¡Ñ ¼«úπΓ ¿¼ÑΓ∞ αẽ¿τ¡«Ñ τ¿ß½« áαúπ¼Ñ¡Γ«ó,
- ¬á¬, ¡á»α¿¼Ñα, Σπ¡¬µ¿∩ printf.
- Å« φΓ«⌐ »α¿τ¿¡Ñ óδ ¡Ñ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ φ½½¿»ß¿ß (...)
- (»α«»π߬ »«ñαáºπ¼ÑóáѼ«ú« áαúπ¼Ñ¡Γá) ó «»αÑñѽѡ¿¿ Σπ¡¬µ¿¿
- Γ¿»á pascal.
- .º» 3
- î«ñ¿Σ¿¬áΓ«α Σπ¡¬µ¿¿ cdecl
- # äá¡¡δ⌐ ¼«ñ¿Σ¿¬áΓ«α á¡á½«ú¿τÑ¡ ¼«ñ¿Σ¿¬áΓ«απ pascal; ¿ß»«½∞ºπÑΓß∩
- ß Σπ¡¬µ¿∩¼¿ ¿½¿
- π¬áºáΓѽ∩¼¿ ¡á Σπ¡¬µ¿¿, ñ½∩ Γ«ú« τΓ«íδ «Γ¼Ñ¡¿Γ∞
- ñ¿αÑ¬Γ¿ó𠬫¼»¿½∩Γ«αá -p ¿ «íΩ∩ó¿Γ∞ Σπ¡¬µ¿ε ¬á¬
- «íδτ¡πε C-Σπ¡¬µ¿ε.
- ìá»α¿¼Ñα, Ñß½¿ óδ »α¿ ¬«¼»¿½∩µ¿¿ »α«úαá¼¼δ πßΓᡫ󿽿 «»µ¿ε -p,
- ¡« σ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ printf, óδ ñ«½ª¡δ »«ßΓπ»¿Γ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
- .sw
- 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 ¿ %d\n",i,j,k);
- }
- # àß½¿ »α«úαá¼¼á ¬«¼»¿½¿απÑΓß∩ ß «»µ¿Ñ⌐ -p, óßÑ Σπ¡¬µ¿¿ ¿º ß¿ßΓѼ¡«⌐
- í¿í½¿«ΓѬ¿ ¡Ñ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞ ¬á¬ cdecl.
- àß½¿ óδ »«ß¼«Γα¿ΓÑ ß¿ßΓѼ¡δÑ include-Σá⌐½δ, Γ« πó¿ñÑΓÑ, τΓ«
- ¬áªñá∩ Σπ¡¬µ¿∩ ∩ó¡« «»¿ßá¡á ¬á¬ cdecl.
- .»α â½á¡á∩ »α«úαá¼¼á (main) ñ«½ª¡á íδΓ∞ Γá¬ªÑ «íΩ∩ó½Ñ¡á
- cdecl.
- .º» 3
- î«ñ¿Σ¿¬áΓ«α Σπ¡¬µ¿¿ interrupt
- # î«ñ¿Σ¿¬áΓ«α interrupt »αÑñ¡áº¡áτÑ¡ ñ½∩ ¿ß»«½∞º«óá¡¿∩ ß óÑ¬Γ«αἿ »αÑαδóá¡¿⌐
- »α«µÑßß«αá 8086/8088.
- Turbo-C íπñÑΓ ¬«¼»¿½¿α«óáΓ∞ Σπ¡¬µ¿ε Γ¿»á interrupt ß ñ«»«½¡¿Γѽ∞¡δ¼
- óσ«ñ«¼ ¿ ¬«ñ«¼ ºáóÑαΦÑ¡¿∩, ΓᬠτΓ« αÑú¿ßΓαδ AX, BX, CX, DX, SI, DI, ES ¿ DS
- ß«σαá¡∩εΓß∩.
- äαπú¿Ñ αÑú¿ßΓαδ: BP, SP, SS, CS ¿ IP ß«σαá¡∩εΓß∩ ¬á¬ τáßΓ∞ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
- C-ó맮óá ¿½¿ τáßΓ∞ ßἫ⌐ «íαáí«Γ¬¿ »αÑαδóá¡¿∩.
- Éáßß¼«Γα¿¼ »α¿¼Ñα ßΓá¡ñáαΓ¡«ú« «»αÑñѽѡ¿∩ Σπ¡¬µ¿¿ Γ¿»á interrupt.
- .sw
- void interrupt myhandler()
- {
- . . .
- }
- # åѽáΓѽ∞¡« «íΩ∩ó½∩Γ∞ Σπ¡¬µ¿¿ »αÑαδóá¡¿⌐ ¬á¬ Σπ¡¬µ¿¿ Γ¿»á void.
- öπ¡¬µ¿¿ »αÑαδóá¡¿⌐ »«ññÑনóáεΓß∩ ñ½∩ óßÑσ ¼«ñѽÑ⌐ »á¼∩Γ¿.
- ä½∩ óßÑσ ¼«ñѽÑ⌐, ¿ß¬½ετá∩ huge, ó αÑú¿ßΓα DS ºá¡«ß¿Γß∩ ßÑú¼Ñ¡Γ
- ñá¡¡δσ »α«úαá¼¼δ. ä½∩ ¼«ñѽ¿ huge ó DS ºá¡«ß¿Γß∩ ¼«ñπ½∞¡δ⌐ ßÑú¼Ñ¡Γ
- ñá¡¡δσ.
- .º» 3
- Åα«Γ«Γ¿»δ Σπ¡¬µ¿⌐
- (K&R 10.1.2)
- # é K&R ñ«»π߬áÑΓß∩ Γ«½∞¬« «íΩ∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿, ß«ßΓ«∩ΘÑÑ ¿º ¿¼Ñ¡¿,
- Γ¿»á ¿ »πßΓδσ ߬«í«¬.
- Åáαá¼ÑΓαδ (Ñß½¿ «¡¿ ÑßΓ∞) «íΩ∩ó½∩εΓß∩ Γ«½∞¬« ó «»αÑñѽѡ¿¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« ßἫ⌐
- Σπ¡¬µ¿¿.
- # ANSI ßΓá¡ñáαΓ ¿ Turbo-C ñ«»π߬áεΓ ¿ß»«½∞º«óá¡¿Ñ »α«Γ«Γ¿»«ó Σπ¡¬µ¿⌐,
- ñ½∩ Γ«ú« τΓ«íδ «íΩ∩ó¿Γ∞ Σπ¡¬µ¿ε.
- æπΘÑßΓóπεΓ ß»Ñµ¿á½∞¡δÑ «»¿ßá¡¿∩, ¬«Γ«αδÑ
- ó¬½ετáεΓ ¿¡Σ«α¼áµ¿ε « »áαá¼ÑΓαáσ Σπ¡¬µ¿¿.
- 諼»¿½∩Γ«α ¿ß»«½∞ºπÑΓ ñá¡¡πε ¿¡Σ«α¼áµ¿ε ñ½∩ »α«óÑન
- ó맮ó«ó Σπ¡¬µ¿⌐, á Γá¬ªÑ ñ½∩ »αÑ«íαẫóá¡¿∩ áαúπ¼Ñ¡Γ«ó
- ¬ ΓαÑíπεΘѼπß∩ Γ¿»π.
- Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ:
- .sw
- long lmax(long v1, long v2);
-
- main()
- {
- int limit=32;
- char ch='A';
- long mval;
-
- mval=lmax(limit,ch);
- }
- # çáñá¡ »α«Γ«Γ¿» Σπ¡¬µ¿¿ ñ½∩ lmax; φΓá »α«úαá¼¼á íπñÑΓ
- »αÑ«íαẫóδóáΓ∞ »áαá¼ÑΓαδ limit ¿ ch ¬ Γ¿»π long, ¿ß»«½∞ºπ∩ ßΓá¡ñáαΓ¡δÑ
- »αáó¿½á »αÑ«íαẫóá¡¿∩, »αѪñÑ τѼ «¡¿ íπñπΓ »«¼ÑΘÑ¡δ ó ßΓѬ ñ½∩
- «íαáΘÑ¡¿∩ ¬ lmax.
- Åα¿ «ΓßπΓßΓó¿¿ »α«Γ«Γ¿»á Σπ¡¬µ¿¿ »áαá¼ÑΓαδ limit ¿ ch í뫨
- íδ »«¼ÑΘÑ¡δ ó ßΓѬ ß««ΓóÑΓßΓóÑ¡¡« ¬á¬ µÑ½«Ñ º¡áτÑ¡¿Ñ ¿ ß¿¼ó«½;
- ó φΓ«¼ ß½πτáÑ ó lmax »ÑαÑñáó὿ß∞ íδ »áαá¼ÑΓαδ, ¡Ñ ß«ó»áñáεΘ¿Ñ »«
- αẼÑαπ ¿ ß«ñÑαªá¡¿ε ß «ª¿ñáÑ¼δ¼¿.
- êß»«½∞º«óá¡¿Ñ »α«Γ«Γ¿»«ó Σπ¡¬µ¿⌐ »«ºó«½∩ÑΓ ¿ºíѪáΓ∞ «Φ¿í«¬.
- # Ä»¿ßá¡¿Ñ Σπ¡¬µ¿¿
- .sw
- f(void)
- .ȧ 1
- «º¡áτáÑΓ, τΓ« Σπ¡¬µ¿∩ ¡Ñ ¿¼ÑÑΓ áαúπ¼Ñ¡Γ«ó.
- # é »α«Γ¿ó¡«¼ ß½πτáÑ, ó ߬«í¬áσ π¬áºδóáÑΓß∩ ß»¿ß«¬ »áαá¼ÑΓα«ó,
- αáºñѽѡ¡δσ ºá»∩Γ묨.
- ÄíΩ∩ó½Ñ¡¿Ñ ¼«ªÑΓ íδΓ∞ ßñѽᡫ ó Σ«α¼Ñ
- .ȇ
- func(int *, long);
- .ȇ
- ¿½¿ ó ¡Ñú« ¼«úπΓ íδΓ∞ ó¬½ετÑ¡δ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ
- .ȇ
- func(int * count, long total);
- # é «í«¿σ ß½πτá∩σ, π¬áºá¡¡δσ óδΦÑ, Σπ¡¬µ¿∩ func
- »α¿¡¿¼áÑΓ ñóá »áαá¼ÑΓαá:
- π¬áºáΓѽ∞ ¡á Γ¿» int, ¡áºóá¡¡δ⌐ count, ¿ µÑ½πε »ÑαѼѡ¡πε total
- Γ¿»á long. êñÑ¡Γ¿Σ¿¬áΓ«α, π¬áºá¡¡δ⌐ ó «íΩ∩ó½Ñ¡¿¿, ¿ß»«½∞ºπÑΓß∩
- Γ«½∞¬« ó ñ¿áú¡«ßΓ¿τÑ߬«¼ ß««íΘÑ¡¿¿, ó ß½πτáÑ ó«º¡¿¬¡«óÑ¡¿∩
- ¡Ñß««ΓóÑΓßΓó¿∩ Γ¿»á »áαá¼ÑΓα«ó.
- # Åα«Γ«Γ¿» Σπ¡¬µ¿¿ «íδτ¡« «»αÑñѽ∩ÑΓ Σπ¡¬µ¿ε ¬á¬ Σπ¡¬µ¿ε, »α¿¡¿¼áεΘπε
- Σ¿¬ß¿α«óá¡¡«Ñ τ¿ß½« »áαá¼ÑΓα«ó. ä½∩ C-Σπ¡¬µ¿⌐, ¬«Γ«αδÑ »α¿¡¿¼áεΓ αẽ¿τ¡«Ñ
- τ¿ß½« »áαá¼ÑΓα«ó (¡á»α¿¼Ñα, printf), »α«»«Γ¿» Σπ¡¬µ¿¿ ¼«ªÑΓ
- ºá¬á¡τ¿óáΓ∞ß∩ ¼¡«ú«Γ«τ¿Ñ¼ (...),
- ¡á»α¿¼Ñα
- .ȇ
- f(int *count, long total, ...)
- # Åα¿ Γᬫ⌐ Σ«α¼Ñ »α«Γ«Γ¿»á Σ¿¬ß¿α«óá¡¡δÑ »áαá¼ÑΓαδ
- »α«óÑα∩εΓß∩ ó« óαѼ∩ ¬«¼»¿½∩µ¿¿, á »ÑαѼѡ¡δÑ »áαá¼ÑΓαδ »ÑαÑñáεΓß∩,
- ¬á¬ »α¿ «ΓßπΓßΓó¿¿ »α«Γ«Γ¿»á.
- # Éáßß¼«Γα¿¼ ¡Ñ߬«½∞¬« »α¿¼Ñα«ó.
- .sw
- int f(); /* öπ¡¬µ¿∩ ó«ºóαáΘáÑΓ óѽ¿τ¿¡π
- Γ¿»á int. ¥Γ« ¬½áßß¿τÑ߬¿⌐
- ßΓ¿½∞ K&R */
-
- int f(void); /* öπ¡¬µ¿∩ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ
- Γ¿»á int. ƒó¡« π¬áºá¡«, τΓ« »áαá¼ÑΓαδ
- ¡Ñ »ÑαÑñáεΓß∩ */
-
- int p(int,long); /* öπ¡¬µ¿∩ »«½πτáÑΓ ñóá »áαá¼ÑΓαá;
- »Ñαóδ⌐ ¿¼ÑÑΓ Γ¿» int, óΓ«α«⌐ - long */
-
- int pascal q(void); /* öπ¡¬µ¿∩ Åá߬á½Ñó߬«ú« Γ¿»á
- íѺ »áαá¼ÑΓα«ó; ó«ºóαáΘáÑΓ
- º¡áτÑ¡¿Ñ Γ¿»á int */
-
- char far * s(char *source, int kind); /* öπ¡¬µ¿∩
- ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ Γ¿»á far ¡á
- ßΓ᫬π; »«½πτáÑΓ ñóá »áαá¼ÑΓαá */
-
- int printf(char *format,...); /* öπ¡¬µ¿∩ ó«ºóαáΘáÑΓ
- º¡áτÑ¡¿Ñ Γ¿»á int, »«½πτá∩ π¬áºáΓѽ∞
- ¡á Σ¿¬ß¿α«óá¡¡δ⌐ »áαá¼ÑΓα Γ¿»á char
- ¿ ½εí«Ñ τ¿ß½« ñ«»«½¡¿Γѽ∞¡δσ
- »áαá¼ÑΓα«ó ¡Ñ¿ºóÑßΓ¡«ú« Γ¿»á */
-
- int (*fp)(int); /* ô¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε, ó«ºóαáΘáεΘπε
- º¡áτÑ¡¿Ñ Γ¿»á int ¿ »«½πτáεΘπε
- Ññ¿¡ßΓóÑ¡¡δ⌐ int »áαá¼ÑΓα */
- # ÄíΘ¿Ñ »αáó¿½á αáí«Γδ ß ¼«ñ¿Σ¿¬áΓ«αἿ ∩ºδ¬á ¿ Σ«α¼á½∞¡δ¼¿
- »áαá¼ÑΓαἿ ó ó맮óáσ Σπ¡¬µ¿⌐, ¬á¬ ¿ß»«½∞ºπεΘ¿σ »α«Γ«»¿Γδ, Γᬠ¿ ¿σ
- ¡Ñ ¿ß»«½∞ºπεΘ¿σ:
- .na
- î«ñ¿Σ¿¬áΓ«αδ ∩ºδ¬á ñ½∩ «»¿ßá¡¿∩ Σπ¡¬µ¿⌐ ñ«½ª¡δ ß«ó»áñáΓ∞ ß ¼«ñ¿Σ¿¬áΓ«αἿ,
- ¿ß»«½∞ºπÑ¼δ¼¿ ó «íΩ∩ó½Ñ¡¿¿ Σπ¡¬µ¿¿, ñ½∩ óßÑσ «íαáΘÑ¡¿⌐ ¬ Σπ¡¬µ¿¿.
- .na
- öπ¡¬µ¿∩ ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ º¡áτÑ¡¿∩ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó, ¡«
- φΓ« ¡Ñ «¬áºδóáÑΓ ¬á¬«ú«-½¿í« ó«ºñÑ⌐ßΓó¿∩ ¡á º¡áτÑ¡¿∩ ñÑ⌐ßΓó¿Γѽ∞¡δσ
- áαúπ¼Ñ¡Γ«ó ó óδºδóáεΘÑ⌐ »α«úαá¼¼Ñ, ºá ¿ß¬½ετÑ¡¿Ñ¼ Σπ¡¬µ¿⌐ »αÑαδóá¡¿∩.
- # àß½¿ »α«Γ«Γ¿» Σπ¡¬µ¿¿ ¡Ñ «íΩ∩ó½Ñ¡ »αÑñóáα¿Γѽ∞¡«,
- Turbo-C »αÑ«íαáºπÑΓ áαúπ¼Ñ¡Γδ »α¿ «íαáΘÑ¡¿¿ ¬ Σπ¡¬µ¿¿ ß«ú½áß¡«
- »αáó¿½á¼, «»¿ßá¡¡δ¼ ó αáºñÑ½Ñ "Çα¿Σ¼ÑΓ¿τÑ߬¿Ñ »αÑ«íαẫóá¡¿∩".
- àß½¿ «íΩ∩ó½Ñ¡ »α«Γ«Γ¿», Turbo-C »αÑ«íαáºπÑΓ áαúπ¼ÑΓδ ¬ Γ¿»π,
- «íΩ∩ó½Ñ¡¡«¼π ñ½∩ »áαá¼ÑΓα«ó.
- # àß½¿ »α«Γ«Γ¿» Σπ¡¬µ¿¿ ó¬½ετáÑΓ ¼¡«ú«Γ«τ¿Ñ (...),
- Turbo-C »αÑ«íαáºπÑΓ óßÑ ºáñá¡¡δÑ áαúπ¼Ñ¡Γδ Σπ¡¬µ¿¿ ¬ áαúπ¼Ñ¡Γá¼, ºáñáóáѼδ¼
- »α«Γ«Γ¿»«¼ (ñ« ¼¡«ú«Γ«τ¿∩).
- 諼»¿½Γ«α íπñÑΓ αáßΦ¿α∩Γ∞ ½εíδÑ áαúπ¼Ñ¡Γδ, ºáñá¡¡δÑ »«ß½Ñ
- Σ¿¬ß¿α«óá¡¡δσ »áαá¼ÑΓα«ó, »« ¡«α¼á½∞¡δ¼ »αáó¿½á¼ ñ½∩ áαúπ¼Ñ¡Γ«ó
- Σπ¡¬µ¿⌐ íѺ »α«Γ«Γ¿»«ó.
- # àß½¿ ÑßΓ∞ »α«Γ«Γ¿», τ¿ß½« áαúπ¼Ñ¡Γ«ó ñ«½ª¡« íδΓ∞ ß««ΓóÑΓßΓóÑ¡¡δ¼ (ºá
- ¿ß¬½ετÑ¡¿Ñ¼ ß½πτá∩, ¬«úñá ó »α«Γ«Γ¿»Ñ «»πΘÑ¡ ¬á¬«⌐-½¿í« áαúπ¼Ñ¡Γ).
- Æ¿»δ ñ«½ª¡δ íδΓ∞ ß«ó¼ÑßΓ¿¼δ Γ«½∞¬« »« αẼÑαπ, ñ½∩ Γ«ú« τΓ«íδ ¬«ααÑ¬Γ¡«
- »α«¿ºó«ñ¿½¿ß∞ »αÑ«íαẫóá¡¿∩ Γ¿»«ó. éδ óßÑúñá ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞
- ∩ó¡δÑ »αÑ«íαẫóá¡¿∩ áαúπ¼Ñ¡Γ«ó ¬ Γ¿»π, ñ«»πßΓ¿¼«¼π ñ½∩ »α«Γ«Γ¿»á Σπ¡¬µ¿¿.
- # ÅÉêîàÉ:
- .«Σ
- int strcmp(char *s1, char *s2); /* Å«½¡δ⌐ »α«Γ«Γ¿» */
- int *strcpy(); /* ìÑΓ »α«Γ«Γ¿»á */
- int samp1(foat, int, ...); /* Å«½¡δ⌐ »α«Γ«Γ¿» */
-
- samp2()
- {
- char *sx, *cp;
- double z;
- long a;
- float q;
-
- if(strcmp(sx, cp)) /* 1. éÑα¡« */
- strcpy(sx, cp, 44); /* 2. êñÑΓ Γ«½∞¬« ñ½∩ Turbo-C */
- samp1(3, a, q); /* 3. éÑα¡« */
- strcpy(cp); /* 4. ÄΦ¿í¬á »α¿ óδ»«½¡Ñ¡¿¿ */
- samp1(2); /* 5. ÄΦ¿í¬á »α¿ ¬«¼»¿½∩µ¿¿ */
- }
- # é 1 ó맮óÑ (ß¼. ¡π¼Ñαᵿε ó ¬«¼¼Ñ¡Γáα¿∩σ) ¿ß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿¿
- strcmp ∩ó¡« ß««ΓóÑΓßΓóπÑΓ »α«Γ«Γ¿»π ¿ ¬«ααÑ¬Γ¡« ñ½∩ óßÑσ ß½πτáÑó.
- # é« 2 ó맮óÑ (strcpy) ¿¼ÑÑΓß∩ ½¿Φ¡¿⌐ áαúπ¼Ñ¡Γ (strcpy «»αÑñѽѡá
- ñ½∩ ñóπσ áαúπ¼Ñ¡Γ«ó, á ¡Ñ ñ½∩ 3-Ñσ). é φΓ«¼ ß½πτáÑ Turbo-C
- ΓÑα∩ÑΓ ¡Ñí«½∞Φ«Ñ ¬«½¿τÑßΓó« óαѼѡ¿ ¿ úÑ¡Ñα¿Γ ¬«ñ ñ½∩ »«¼ÑΘÑ¡¿∩
- ½¿Φ¡Ñú« áαúπ¼Ñ¡Γá ó ßΓѬ. ¥Γ«, «ñ¡á¬«, ¡Ñ ∩ó½∩ÑΓß∩ ß¿¡Γá¬ß¿τÑ߬«⌐ «Φ¿í¬«⌐,
- Γ.¬. ¬«¼»¿½∩Γ«α ¡Ñ º¡áÑΓ « τ¿ß½Ñ áαúπ¼Ñ¡Γ«ó strcpy.
- Æá¬«⌐ ó맮ó ¡Ñ ñ«»πßΓ¿¼ ñ½∩ ñαπú¿σ ¬«¼»¿½¿Γ«α«ó.
- # é 3-Ѽ »α¿¼ÑαÑ »α«Γ«Γ¿» ΓαÑíπÑΓ, τΓ«íδ 1 áαúπ¼Ñ¡Γ ñ½∩ samp1 íδ½
- »αÑ«íαẫóá¡ ¬ float, á 2-«⌐ - ¬ int. 諼»¿½∩Γ«α óδñáßΓ »αÑñπ»αѪñÑ¡¿Ñ
- « 󫺼«ª¡«⌐ »«ΓÑαÑ º¡áτ¿¼δσ µ¿Σα óß½ÑñßΓó¿Ñ Γ«ú«, τΓ« »α¿
- »αÑ«íαẫóá¡¿¿ Γ¿»á long ¬ Γ¿»π int «ΓíαáßδóáεΓß∩ óÑασ¡¿Ñ í¿Γδ.
- éδ ¼«ªÑΓÑ ¿ºíáó¿Γ∞ß∩ «Γ óδñáτ¿ Γᬫú« »αÑñπ»αѪñÑ¡¿∩, Ñß½¿
- ºáñáñ¿ΓÑ ∩ó¡«Ñ »αÑ«íαẫóá¡¿Ñ ¬ µÑ½«¼π. ÆαÑΓ¿⌐ áαúπ¼Ñ¡Γ, q,
- ß««ΓóÑΓßΓóπÑΓ «»πΘÑ¡¡«¼π áαúπ¼Ñ¡Γπ ó »α«Γ«Γ¿»Ñ. Ä¡ »αÑ«íαáºπÑΓß∩
- ¬ Γ¿»π double ß«ú½áß¡« «íδτ¡«¼π áα¿Σ¼ÑΓ¿τÑ߬«¼π »αÑ«íαẫóá¡¿ε.
- éÑß∞ óδº«ó ¬«ααѬΓÑ¡.
- # é 4 ó맮óÑ ß¡«óá óßΓαÑτáÑΓß∩ «íαáΘÑ¡¿Ñ ¬ strcpy, ¡«
- τ¿ß½« áαúπ¼Ñ¡Γ«ó ß½¿Φ¬«¼ ¼á½«. ¥Γ« ó맮óÑΓ «Φ¿í¬π »α¿ óδ»«½¡Ñ¡¿¿
- »α«úαá¼¼δ. 諼»¿½∩Γ«α ªÑ ¡¿τÑú« ¡Ñ ß««íΘ¿Γ (Ñß½¿ ñáªÑ τ¿ß½«
- »áαá¼ÑΓα«ó «Γ½¿τáÑΓß∩ «Γ τ¿ß½á »áαá¼ÑΓα«ó ó »αÑñδñπΘѼ
- ó맮óÑ Γ«⌐ ªÑ Σπ¡¬µ¿¿), Γ.¬. ñ½∩ strcpy ¡ÑΓ »α«Γ«Γ¿»á Σπ¡¬µ¿¿.
- # é 5 ó맮óÑ ñ½∩ Σπ¡¬µ¿¿ samp1 ºáñá¡« ß½¿Φ¬«¼ ¼á½« áαúπ¼Ñ¡Γ«ó.
- Æ.¬. samp1 ΓαÑíπÑΓ ¼¿¡¿¼π¼ 2 áαúπ¼Ñ¡Γá, φëà «»ÑαáΓ«α ∩ó½∩ÑΓß∩ «Φ¿í«τ¡δ¼.
- 諼»¿½∩Γ«α óδñáßΓ ß««íΘÑ¡¿Ñ « Γ«¼, τΓ« ó ó맮óÑ ¡Ñ σóáΓáÑΓ áαúπ¼Ñ¡Γ«ó.
- .»α àß½¿ óáΦ »α«Γ«Γ¿» Σπ¡¬µ¿¿ ¡Ñ ß««ΓóÑΓßΓóπÑΓ ñÑ⌐ßΓó¿Γѽ∞¡«¼π
- «»αÑñѽѡ¿ε Σπ¡¬µ¿¿, Turbo-C «í¡áαπª¿Γ φΓ« ó Γ«¼ ¿ Γ«½∞¬« ó Γ«¼ ß½πτáÑ,
- Ñß½¿ φΓ« «»αÑñѽѡ¿Ñ ¡áσ«ñ¿Γß∩ ó Γ«¼ ªÑ Σá⌐½Ñ, τΓ« ¿ »α«Γ«Γ¿».
- àß½¿ óδ ß«ºñáÑΓÑ í¿í½¿«ΓѬπ »α«úαá¼¼ ß ß««ΓóÑΓßΓóπεΘ¿¼ ßí«α¡¿¬«¼ »α«Γ«Γ¿»«ó
- (include-Σá⌐½«¼), óδ ñ«½ª¡δ πτ¿ΓδóáΓ∞ ó¬½ετÑ¡¿Ñ Σá⌐½á ß »α«Γ«Γ¿»á¼¿
- ó« óαѼ∩ ¬«¼»¿½∩µ¿¿ í¿í½¿«ΓѬ¿, ñ½∩ Γ«ú« τΓ«íδ «Γ½«ó¿Γ∞ ½εí«Ñ
- »α«Γ¿ó«αÑτ¿Ñ ¼Ñªñπ »α«Γ«Γ¿»á¼¿ ¿ ñÑ⌐ßΓó¿Γѽ∞¡δ¼¿ «»αÑñѽѡ¿∩¼¿ Σπ¡¬µ¿⌐.
- .º» 2
- Åαáó¿½á ó¿ñ¿¼«ßΓ¿ (K&R 11)
- # Åαáó¿½á ó¿ñ¿¼«ßΓ¿ - φΓ« »αáó¿½á, «»αÑñѽ∩εΘ¿Ñ, ó ¬á¬¿σ
- τáßΓ∩σ ΓѬßΓá »α«úαá¼¼δ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á »ÑαѼѡ¡á∩ ó ºáó¿ß¿¼«ßΓ¿
- «Γ Γ«ú«, úñÑ ¿ ¬á¬ «¡á «»¿ßá¡á.
- # Turbo-C αáºαÑΦáÑΓ í«½ÑÑ ó«½∞¡«Ñ «íαáΘÑ¡¿Ñ ß ¡Ñπ¡¿¬á½∞¡δ¼¿
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ, τѼ Γ«ú« ΓαÑíπÑΓ K&R. Éẽ¿τáεΓ 4 ¬½áßßá ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó:
- # ê¼Ñ¡á, «»¿ßδóáѼδÑ ß »«¼«Θ∞ε ß½«óá typedef, »ÑαѼѡ¡δÑ,
- τ½Ñ¡δ »ÑαÑτ¿ß½Ñ¡¿∩ ñ«½ª¡δ íδΓ∞ π¡¿¬á½∞¡δ¼¿ ó¡πΓα¿ í½«¬á, ó ¬«Γ«α«¼
- «¡¿ «»¿ßá¡δ. êñÑ¡Γ¿Σ¿¬áΓ«αδ, «íΩ∩ó½Ñ¡¡δÑ ó¡ÑΦ¡¿¼¿, ñ«½ª¡δ íδΓ∞
- π¡¿¬á½∞¡δ¼¿ ßαÑñ¿ »ÑαѼѡ¡δσ, «»¿ßá¡¡δσ ¬á¬ ó¡ÑΦ¡¿Ñ.
- # æΓαπ¬Γπαá, «íΩÑñ¿¡Ñ¡¿Ñ, »α¿º¡á¬¿ »ÑαÑτ¿ß½Ñ¡¿∩ ñ«½ª¡δ íδΓ∞ π¡¿¬á½∞¡δ¼¿
- ó¡πΓα¿ í½«¬á, ó ¬«Γ«α«¼ «¡¿ «»¿ßá¡δ.
- Åਧ¡á¬¿, «»¿ßá¡¡δÑ ó¡Ñ »αÑñѽ«ó ¬á¬«⌐-½¿í« Σπ¡¬µ¿¿, ñ«½ª¡δ íδΓ∞
- π¡¿¬á½∞¡δ ßαÑñ¿ óßÑσ »α¿º¡á¬«ó, «»¿ßá¡¡δσ ¬á¬ ó¡ÑΦ¡¿Ñ.
- # ê¼Ñ¡á ßΓαπ¬Γπαδ ¿ τ½Ñ¡á «íΩÑñ¿¡Ñ¡¿∩ ñ«½ª¡δ íδΓ∞ π¡¿¬á½∞¡δ
- ó ßΓαπ¬ΓπαÑ ¿½¿ «íΩÑñ¿¡Ñ¡¿¿, ó ¬«Γ«αδσ «¡¿ «»¿ßá¡δ.
- ìÑ ßπΘÑßΓóπÑΓ ¡¿¬á¬¿σ «úαá¡¿τÑ¡¿⌐ ¡á Γ¿» ¿½¿
- ß¼ÑΘÑ¡¿Ñ ñ½∩ τ½Ñ¡«ó ß «ñ¿¡á¬«óδ¼ ¿¼Ñ¡á¼¿ ó αẽ¿τ¡δσ ßΓαπ¬Γπαáσ.
- # Ä»ÑαáΓ«αδ GOTO ¡á ¼ÑΓ¬π ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ß∩ ½¿Φ∞ ó Γ«⌐ Σπ¡¬µ¿¿,
- úñÑ «íΩ∩ó½Ñ¡á ñá¡¡á∩ ¼ÑΓ¬á. îÑΓ¬á, ó ßó«ε «τÑαÑñ∞, ñ«½ª¡á íδΓ∞
- π¡¿¬á½∞¡á ñ½∩ Σπ¡¬µ¿¿, ó ¬«Γ«α«⌐ «¡á «íΩ∩ó½Ñ¡á.
- .º» 2
- 諼á¡ñδ π»αáó½Ñ¡¿∩ Γαá¡ß½∩µ¿Ñ⌐ (R&K 12)
- # Turbo-C »«ññÑনóáÑΓ óßÑ π»αáó½∩εΘ¿Ñ ¬«¼á¡ñδ, «»¿ßá¡¡δÑ ó K&R.
- ¥Γ¿¼¿ ¬«¼á¡ñἿ ∩ó½∩εΓß∩ ñ¿αÑ¬Γ¿óδ »αÑ»α«µÑßß«αá - ßΓ᫬¿
- ¿ßσ«ñ¡«⌐ »α«úαá¼¼δ, ¡áτ¿¡áεΘ¿Ñß∩ ß« º¡á¬á #.
- .º» 2
- çá¼Ñ¡á ½Ñ¬ßѼ (K&R 12.1)
- # Turbo-C óδ»«½¡∩ÑΓ óßÑ «»αÑñѽѡ¿∩ #define ¿ #undef,
- «»¿ßá¡¡δÑ ó R&K, ß« ß½ÑñπεΘ¿¼¿ ñ«»«½¡Ñ¡¿∩¼¿:
- # 1. æ½ÑñπεΘ¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ¡Ñ «í∩ºáΓѽ∞¡« ñ«½ª¡δ óßΓαÑτáΓ∞ß∩
- ó ñ¿αÑ¬Γ¿óáσ #define ¿ #undef:
- #_STDC_
- #_FILE_
- #_LINE_
- #_DATE_
- #_TIME_
- # 2. é ¼á¬α««»αÑñѽѡ¿Ñ ¼«úπΓ íδΓ∞ óßΓáó½Ñ¡δ ñóÑ ½Ñ¬ßѼδ ó¼ÑßΓÑ,
- αáºñѽѡ¡δÑ º¡á¬á¼¿ ##, ¡á»α¿¼Ñα:
- # #define VAR(i,j) (i ## j)
- # Åα¿ φΓ«¼ VAR(x,6) ó맮óÑΓ »«ñßΓá¡«ó¬π x6.
- ¥Γ« ºá¼Ñ¡∩ÑΓ ¿¡«úñá π»«ΓαÑí½∩Ѽδ⌐, ¡« ¡Ñ »ÑαÑ¡«ß¿¼δ⌐ ¼ÑΓ«ñ ¿ß»«½∞º«óá¡¿∩
- (i/**/j).
- # 3. 齫ªÑ¡¡δÑ ¼á¬α«ßδ ó ßΓα«¬Ñ ¼á¬α«-«»αÑñѽѡ¿∩ ßαáí«ΓáεΓ
- ½¿Φ∞ Γ«úñá, ¬«úñá ßαáí«ΓáÑΓ ßá¼ ¼á¬α«ß, á ¡Ñ »α¿ Ñú« «»¿ßá¡¿¿.
- ¥Γ« í«½∞ΦÑ ¬áßáÑΓß∩ 󽫪ѡ¡δσ ¼á¬α«ß«ó #undef.
- # 4. æ¿¼ó«½ #, »«¼ÑΘáѼδ⌐ »ÑαÑñ ¼á¬α«áαúπ¼Ñ¡Γ«¼,
- π¬áºδóáÑΓ « »αÑ«íαẫóá¡¿¿ Ñú« ó ßΓ᫬π. Åα¿ ¼á¬α«»«ñßΓá¡«ó¬Ñ
- »α«¿ºó«ñ¿Γß∩
- ºá¼Ñ¡á #<Σ«α¼á½∞¡δ⌐ áαúπ¼Ñ¡Γ> ¡á "<ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ áαúπ¼Ñ¡Γ>".
- Æá¬, »α¿ ºáñá¡¿¿ ¼á¬α««»αÑñѽѡ¿∩
- # #define TRACE(flag) printf(#flag "= %d\n", flag)
- # ß½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ ΓѬßΓá »α«úαá¼¼δ
- # highval = 1024;
- # TRACE(highval);
- # »αÑ«íαáºπÑΓß∩:
- # highval = 1024;
- # printf("highval" "= %d\n", highval);
- # 5. é «Γ½¿τ¿Ñ «Γ ñαπú¿σ αÑ὿ºáµ¿⌐, Turbo-C ¡Ñ «ßπΘÑßΓó½∩ÑΓ
- »«ñßΓá¡«ó«¬ ¼á¬α«áαúπ¼Ñ¡Γ«ó ó¡πΓα¿ ßΓ᫬ ¿ ß¿¼ó«½∞¡δσ ¬«¡ßΓá¡Γ.
- .º» 2
- 鬽ετÑ¡¿Ñ Σá⌐½á (K&R 12.2)
- # Turbo-C ¿ß»«½∞ºπÑΓ ñ¿αÑ¬Γ¿óπ ΓᬠªÑ, ¬á¬ «»¿ßá¡« ó K&R,
- ¡« ßπΘÑßΓóπεΓ ¡Ñ¬«Γ«αδÑ ñ«»«½¡¿Γѽ∞¡δÑ «ß«íÑ¡¡«ßΓ¿:
- àß½¿ »αÑ»α«µÑßß«α ¡Ñ ¡áΦѽ include-Σá⌐½ ó ¬áΓὫúÑ, πßΓá¡«ó½Ñ¡¡«¼
- »« π¼«½τá¡¿ε (»αÑ»«½áúáÑΓß∩, τΓ« óδ ¿ß»«½∞ºπÑΓÑ Σ«α¼π
- #include "filename"), Γ«úñá «¡ ¿ΘÑΓ ¬áΓὫú¿, ºáñá¡¡δÑ «»µ¿Ñ⌐
- ¬«¼»¿½∩Γ«αá -I.
- àß½¿ óδ ¿ß»«½∞ºπÑΓÑ Σ«α¼π #include <filenamr>, Γ«úñá ¿ΘπΓß∩
- Γ«½∞¬« ¬áΓὫú¿, ºáñá¡¡δÑ «»µ¿Ñ⌐ -I.
- (èáΓὫú¿, »ÑαÑτ¿ß½∩ѼδÑ ó ¼Ñ¡ε »« «»µ¿¿ O/Environment/Include,
- φ¬ó¿óá½Ñ¡Γ¡δ ¬áΓὫúá¼, ºáñá¡¡δ¼ ß »«¼«Θ∞ε «»µ¿¿ -I pathname
- ó ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ.
- # éδ ¼«ªÑΓÑ ºáñáΓ∞ ¿¼∩ »πΓ¿ #include, ó¬½ετáεΘÑÑ úαá¡¿τ¡δÑ αáºñѽ¿Γѽ¿,
- ¿ß»«½∞ºπ∩ ¼á¬α«αáßΦ¿αÑ¡¿Ñ. àß½¿ ß½ÑñπεΘá∩ ßΓα«¬á »«ß½Ñ
- ¬½ετÑó«ú« ß½«óá ¡áτ¿¡áÑΓß∩ ß ¿ñÑ¡Γ¿Σ¿¬áΓ«αá, »αÑ»α«µÑßß«α »α«ß¼áΓα¿óáÑΓ
- ΓѬßΓ ñ½∩ ¼á¬α«ßá. Äñ¡á¬«, Ñß½¿ ßΓα«¬á ºá¬½ετÑ¡á ó ¬áóδτ¬¿
- ¿½¿ ó πú«½∞¡δÑ ß¬«í¬¿, Turbo-C ¡Ñ íπñÑΓ »α«óÑα∩Γ∞ ÑÑ ñ½∩
- ºá»«¼¿¡á¡¿∩ ¼á¬α«ßá. ìá»α¿¼Ñα,
- # #define myinclude "c:\tc\include\mystuff.h"
- # #include myinclude
- # #include "myinclude"
- # 1-δ⌐ #include-«»ÑαáΓ«α
- ºáßΓáó¿Γ »αÑ»α«µÑßß«α »α«ß¼áΓα¿óáΓ∞ C:\TC\INCLUDE\MYSTUFF.H, Γ«úñá ¬á¬
- 2-«⌐ ó맮óÑΓ »α«ß¼«Γα MYINCLUDE.H ó ¬áΓὫúÑ »« π¼«½τá¡¿ε.
- # éδ ¼«ªÑΓÑ ¡Ñ ¿ß»«½∞º«óáΓ∞ «íΩÑñ¿¡Ñ¡¿Ñ ½¿ΓÑα¡δσ ßΓ᫬ ¿ óßΓáó¬π
- ½Ñ¬ßѼ ó ¼á¬α«ßÑ, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó «»ÑαáΓ«αÑ #include.
- îá¬α«αáßΦ¿αÑ¡¿Ñ ñ«½ª¡« úÑ¡Ñα¿Γ∞ ΓѬßΓ, ¬«Γ«αδ⌐ τ¿ΓáÑΓß∩ ¬á¬
- ¡«α¼á½∞¡á∩ #include-ñ¿αÑ¬Γ¿óá.
- .º» 2
- ôß½«ó¡á∩ ¬«¼»¿½∩µ¿∩ (K&R 12.3)
- # Turbo-C »«ññÑনóáÑΓ «»αÑñѽѡ¿Ñ πß½«ó¡«⌐ ¬«¼»¿½∩µ¿¿ K&R ß »«¼«Θ∞ε
- ºá¼Ñ¡δ ß««ΓóÑΓßΓóπεΘ¿σ ßΓ᫬ ¡á »πßΓδÑ. æΓ᫬¿, ¿ú¡«α¿απѼδÑ Γ.«.,
- ¡áτ¿¡áεΓß∩ ß ñ¿αÑ¬Γ¿ó #if, #ifdef, #ifndef, #else, #elif,
- #endif, Γá¬ªÑ ¬á¬ ¿ óßÑ ¡Ñ¬«¼»¿½¿απѼδÑ ßΓ᫬¿, ∩ó½∩εΘ¿Ñß∩ αѺπ½∞ΓáΓ«¼ φΓ¿σ
- ñ¿αÑ¬Γ¿ó. éßÑ ñ¿αÑ¬Γ¿óδ πß½«ó¡«⌐ ¬«¼»¿½∩µ¿¿ ñ«½ª¡δ ºá¬á¡τ¿óáΓ∞ß∩
- ó ¿ßσ«ñ¡«⌐ »α«úαá¼¼Ñ ¿½¿ include-Σá⌐½Ñ, ó ¬«Γ«αδσ «¡¿ ¡áτ὿ß∞.
- # Turbo-C »«ññÑনóáÑΓ Γá¬ªÑ «»ÑαáΓ«α ANSI-ßΓá¡ñáαΓá defined(symbol).
- Åα¿ßóá¿óáÑΓß∩ º¡áτÑ¡¿Ñ 1 (true), Ñß½¿ ß¿¼ó«½ íδ½ »αÑñóáα¿Γѽ∞¡« «»αÑñѽѡ
- (ß ¿ß»«½∞º«ó᡿Ѽ #define) ¿ ºáΓѼ ¡Ñ íδ½ «Γ¼Ñ¡Ñ¡ (ß ¿ß»«½∞º«ó᡿Ѽ
- #undef); ¿¡áτÑ »α¿ßóá¿óáÑΓß∩ 0 (false). Æá¬, ñ¿αÑ¬Γ¿óá
- # #if defined(mysym)
- # áñѬóáΓ¡á ñ¿αÑ¬Γ¿óÑ
- # #ifdef mysym
- # ÅαÑ¿¼πΘÑßΓó«¼ φΓ«ú« ∩ó½∩ÑΓß∩ 󫺼«ª¡«ßΓ∞ »«óΓ«α¡«ú« ¿ß»«½∞º«óá¡¿∩
- defined ó ß½«ª¡«¼ óδαáªÑ¡¿¿, ßΓ«∩ΘѼ »«ß½Ñ ñ¿αÑ¬Γ¿óδ #if:
- # #if defined(mysym) || defined(yoursym)
- # Turbo-C (ó «Γ½¿τ¿Ñ «Γ ANSI) »«ºó«½∩ÑΓ óá¼ ¿ß»«½∞º«óáΓ∞
- «»ÑαáΓ«α sizeof ó óδαáªÑ¡¿¿ ñ½∩ »αÑ»α«µÑßß«αá:
- .sw
- #if (sizeof(void *) ==2)
- #define SDATA
- #else
- #define LDATA
- #endif
- .º» 2
- ô»αáó½Ñ¡¿Ñ ßΓα«¬á¼¿ (K&R 12.4)
- # Turbo-C »«ññÑনóáÑΓ «»αÑñѽѡ¿Ñ #line, ñá¡¡«Ñ ó K&R.
- .º» 2
- ä¿αÑ¬Γ¿óá «íαáí«Γ¬¿ «Φ¿í«¬ (ANSI C 3.8.5)
- # Turbo-C »«ññÑনóáÑΓ ñ¿αÑ¬Γ¿óπ #error, ¬«Γ«αá∩ π»«¼¿¡áÑΓß∩ (¡« ¡Ñ
- «»αÑñѽ∩ÑΓß∩) ó ANSI-ßΓá¡ñáαΓÑ. àÑ Σ«α¼áΓ:
- # #error errmsg
- # àß½¿ óδ ó¬½ετ¿ΓÑ φΓπ ñ¿αÑ¬Γ¿óπ πß½«ó¡«⌐ ¬«¼»¿½∩µ¿¿
- ó Σá⌐½ ß óáΦÑ⌐ ¿ßσ«ñ¡«⌐ »α«úαá¼¼«⌐ ¿ πß½«ó¡δÑ ΓÑßΓ«óδÑ Σá⌐½δ,
- »αÑ»α«µÑßß«α íπñÑΓ ßτ¿ΓδóáΓ∞ ñ¿αÑ¬Γ¿óπ #error ¿ ¡Ñ¼Ññ½Ñ¡¡« »αÑαδóáΓ∞ß∩,
- óδñáóá∩ »α¿ φΓ«¼ ß½ÑñπεΘÑÑ ß««íΘÑ¡¿Ñ:
- # Fatal: filename line# Error directive: errmsg
- # ÅαÑ»α«µÑßß«α »α«ß¼áΓα¿óáÑΓ ΓѬßΓ ñ½∩ Γ«ú«, τΓ«íδ π¡¿τΓ«ª¿Γ∞
- ¬«¼¼Ñ¡Γáα¿¿, ¡« ¡á φ¬αá¡ óδó«ñ¿Γ «ßΓáóΦ¿⌐ß∩ ΓѬßΓ íѺ »α«ß¼«Γαá ñ½∩
- óδ∩ó½Ñ¡¿∩ ¼á¬α«ß«ó.
- .º» 2
- ä¿αÑ¬Γ¿óá PRAGMA (ANSI C 3.8.6)
- # Turbo-C »«ññÑনóáÑΓ ñ¿αÑ¬Γ¿óπ #pragma, ¬«Γ«αá∩ (¬á¬ ¿
- #error), ¡Ñ∩ß¡«
- «»αÑñѽ∩ÑΓß∩ ó ANSI-ßΓá¡ñáαΓÑ. àÑ µÑ½∞ε ∩ó½∩ÑΓß∩ αáºαÑΦ¿Γ∞
- ߻ѵ¿á½¿º¿α«óá¡¡δÑ ñ¿αÑ¬Γ¿óδ:
- # #pragma <directive name>
- # æ »«¼«Θ∞ε #pragma Turbo-C ¼«ªÑΓ «»αÑñѽ¿Γ∞ ½εíδÑ ñ¿αÑ¬Γ¿óδ,
- ¬«Γ«αδÑ Ñ¼π ΓαÑíπεΓß∩, íѺ ó¼ÑΦáΓѽ∞ßΓóá ñαπú¿σ ¬«¼»¿½∩Γ«α«ó,
- ¬«Γ«αδÑ »«ññÑনóáεΓ #pragma. Å«-«»αÑñѽѡ¿ε, Ñß½¿ ¬«¼»¿½∩Γ«α
- ¡Ñ «»«º¡á½ ¿¼∩ ñ¿αÑ¬Γ¿óδ, «¡ ¿ú¡«α¿απÑΓ ñ¿αÑ¬Γ¿óπ #pragma.
- .º» 3
- #pragma inline
- # Turbo-C αáß»«º¡áÑΓ ñóÑ ñ¿αÑ¬Γ¿óδ #pragma. ÅÑαóá∩:
- # #pragma inline
- # ¥Γá ñ¿αÑ¬Γ¿óá φ¬ó¿óá½Ñ¡Γ¡á «»µ¿¿ ¬«¼»¿½∩Γ«αá -B.
- Ä¡á ß««íΘáÑΓ ¬«¼»¿½∩Γ«απ « Γ«¼, τΓ« ó óáΦÑ⌐ »α«úαá¼¼Ñ »α¿ßπΓßΓóπεΓ
- áßßѼí½Ñα«ó߬¿Ñ ¼áΦ¿¡¡δÑ ¬«¼á¡ñδ. ì´πτΦÑÑ ÑÑ »«½«ªÑ¡¿Ñ - ó ¡áτá½Ñ
- Σá⌐½á, Γ.¬. ¬«¼»¿½∩Γ«α ßἫ»ÑαѺá»π߬áÑΓß∩ ß «»µ¿Ñ⌐ -B ßαáºπ,
- ¬á¬ Γ«½∞¬« óßΓαÑΓ¿Γß∩ #pragma inline. ìá ßἫ¼ ñѽÑ, óδ ¼«ªÑΓÑ
- «»πßΓ¿Γ∞ ¿ «»µ¿ε -B, ¿ ñ¿αÑ¬Γ¿óπ #pragma inline, Γ.¬. ¬«¼»¿½∩Γ«α
- óßÑ αáó¡« ß«¼«»ÑαѺá»π߬áÑΓß∩, ¬á¬ Γ«½∞¬« óßΓαÑΓ¿Γ
- asm-«»ÑαáΓ«αδ; µÑ½∞ε φΓ«⌐ «»µ¿¿ ¿ ñ¿αÑ¬Γ¿óδ ∩ó½∩ÑΓß∩ φ¬«¡«¼¿∩
- óαѼѡ¿ ¬«¼»¿½∩µ¿¿.
- .º» 3
- #pragma warn
- # äαπúá∩ #pragma-ñ¿αÑ¬Γ¿óá - φΓ«
- #pragma warn
- # äá¡¡á∩ ñ¿αÑ¬Γ¿óá »«ºó«½∩ÑΓ óá¼ ¡Ñ »α¿¡¿¼áΓ∞ ó« 󡿼᡿Ñ
- ߻ѵ¿á½∞¡πε «»µ¿ε ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ -wxxx («»µ¿∩ ó¬½ετÑ¡¿∩
- ߻ѵ¿á½∞¡δσ »αÑñπ»αÑñ¿Γѽ∞¡δσ ß««íΘÑ¡¿⌐).
- # ìá»α¿¼Ñα, Ñß½¿ óáΦá ¿ßσ«ñ¡á∩ »α«úαá¼¼á ß«ñÑαª¿Γ ñ¿αÑ¬Γ¿óδ:
- .sw
- #pragma warn +xxx
- #pragma warn -yyy
- #pragma warn .zzz
- # Γ« xxx ó¬½ετ¿Γ óδñáτπ »αÑñπ»αÑñ¿Γѽ∞¡δσ ß««íΘÑ¡¿⌐ (Ñß½¿ ñáªÑ
- ó »«ñ¼Ñ¡ε O/C/Errors/ «¡á íδ½á ó䬽ετÑ¡á); yyy ó䬽ετ¿Γ óδñáτπ
- ß««íΘÑ¡¿⌐; á zzz ó«ßßΓá¡«ó¿Γ »Ñαó«¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ
- í佫 ó ¡áτá½Ñ ¬«¼»¿½∩µ¿¿ Σá⌐½á.
- # Ĭ«¡τáΓѽ∞¡δ⌐ ß»¿ß«¬ 3-íπ¬óÑ¡¡δσ áííαÑó¿áΓπα ¿ ß««íΘÑ¡¿⌐, ¬«Γ«αδÑ
- «¡¿ ó¬½ετáεΓ ¿ ó䬽ετáεΓ, »α¿óÑñÑ¡ ó
- Åα¿½«ªÑ¡¿¿ 3 æß佫τ¡«ú« Éπ¬«ó«ñßΓóá »« Turbo-C.
- .º» 2
- ìπ½Ñóá∩ ñ¿αÑ¬Γ¿óá (ANSI C 3.7)
- # Éáñ¿ ºáóÑαΦÑ¡¡«ßΓ¿,
- ANSI-ßΓá¡ñáαΓ ¿ Turbo-C «»«º¡áεΓ »πßΓπε ñ¿αÑ¬Γ¿óπ, ß«ßΓ«∩Θπε
- ¿º ßΓ᫬¿, ß«ñÑαªáΘÑ⌐ »α«ßΓ« º¡á¬ #. ¥Γá ñ¿αÑ¬Γ¿óá óßÑúñá ¿ú¡«α¿απÑΓß∩.
- .º» 2
- éßΓα«Ñ¡¡δÑ ¼á¬α«-¿¼Ñ¡á
- # ANSI-ßΓá¡ñáαΓ ΓαÑíπÑΓ 5 óßΓα«Ñ¡¡δσ ¼á¬α«ß«ó. Turbo-C
- »α¿¼Ñ¡∩ÑΓ óßÑ 5. ÄΓ¼ÑΓ¿¼, τΓ«
- ¬áªñδ⌐ ¿º ¡¿σ ¡áτ¿¡áÑΓß∩ ¿ «¬á¡τ¿óáÑΓß∩
- ß¿¼ó«½«¼ »«ñτÑનóá¡¿∩ (__).
- .ym _LINE_
- 쫼Ñα «íαáíáΓδóáѼ«⌐ ßΓ᫬¿ ¿ßσ«ñ¡«⌐ »α«úαá¼¼δ - ñÑß∩Γ¿τ¡á∩ ¬«¡ßΓá¡Γá.
- ÅÑαóá∩ ßΓα«¬á ¿ßσ«ñ¡«ú« Σá⌐½á «»αÑñÑ½Ñ¡á ¬á¬ 1.
- .ym _FILE_
- ê¼∩ «íαáíáΓδóáѼ«ú« ¿ßσ«ñ¡«ú« Σá⌐½á - ½¿ΓÑα¡á∩ ßΓ᫬á.
- .am
- äá¡¡«Ñ ¼á¬α««»αÑñѽѡ¿Ñ
- ¿º¼Ñ¡∩ÑΓß∩ óß∩¬¿⌐ αáº, ¬á¬ ¬«¼»¿½∩Γ«α «íαáíáΓδóáÑΓ
- ñ¿αÑ¬Γ¿óπ #include ¿½¿ ñ¿αÑ¬Γ¿óπ #line, ¿½¿ ¬«úñá
- ºá¬«¡τ¿½ß∩ #include-Σá⌐½.
- .ym _DATE_
- äáΓá ¡áτá½á «íαáí«Γ¬¿ ΓѬπΘÑú« ¿ßσ«ñ¡«ú« Σá⌐½á - ½¿ΓÑα¡á∩ ßΓ᫬á.
- .am
- èáªñ«Ñ óσ«ªñÑ¡¿Ñ _DATE_ ó ºáñá¡¡δ⌐ Σá⌐½ úáαá¡Γ¿απÑΓ «ñ¡« º¡áτÑ¡¿Ñ,
- ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, ¬á¬ ñ«½ú« πªÑ »α«ñ«½ªáÑΓß∩ «íαáí«Γ¬á.
- äáΓá ¿¼ÑÑΓ Σ«α¼áΓ mmmddyyyy, úñÑ mmm - ¼Ñß∩µ (Jan, Feb ¿ Γ.ñ.),
- dd - τ¿ß½« ΓѬπΘÑú« ¼Ñß∩µá (1...31; ó 1-«⌐ ¿º ñóπσ »«º¿µ¿⌐ dd
- ßΓáó¿Γß∩ »α«íѽ, Ñß½¿ τ¿ß½« ¼Ñ¡∞ΦÑ 10), yyyy - ú«ñ (1987, 1988 ¿ Γ.ñ.).
- .ym _TIME_
- éαѼ∩ ¡áτá½á «íαáí«Γ¬¿ ΓѬπΘÑú« ¿ßσ«ñ¡«ú« Σá⌐½á - ½¿ΓÑα¡á∩ ßΓ᫬á.
- .am
- èáªñ«Ñ óσ«ªñÑ¡¿Ñ _TIME_ ó ºáñá¡¡δ⌐ Σá⌐½ úáαá¡Γ¿απÑΓ «ñ¡« º¡áτÑ¡¿Ñ,
- ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, ¬á¬ ñ«½ú« πªÑ »α«ñ«½ªáÑΓß∩ «íαáí«Γ¬á.
- éαѼ∩ ¿¼ÑÑΓ Σ«α¼áΓ hh:mm:ss, úñÑ hh - τáß (00...23),
- mm - ¼¿¡πΓδ (00...59), ss - ßѬπ¡ñδ (00...59).
- .ym _STDC_
- è«¡ßΓá¡Γá, αáó¡á∩ 1, Ñß½¿ óδ ¬«¼»¿½¿απÑΓÑ ß Σ½áú«¼ -a, ¬«Γ«αδ⌐
- πßΓá¡áó½¿óáÑΓ ß«ó¼ÑßΓ¿¼«ßΓ∞ ß ANSI-ßΓá¡ñáαΓ«¼ (ANSI keywords only ... ON);
- ¿¡áτÑ ¼á¬α««»αÑñѽѡ¿Ñ ¡Ñ «»αÑñѽѡ«.
- .º» 2
- éßΓα«Ñ¡¡δÑ ¼á¬α«ßδ Turbo-C
- # ÅαÑ»α«µÑßß«α Turbo-C «»αÑñѽ∩ÑΓ αẽ¿τ¡δÑ ñ«»«½¡¿Γѽ∞¡δÑ ¼á¬α«ßδ.
- Æá¬ªÑ, ¬á¬ ñ½∩ ¼á¬α«ß«ó, »αÑñ»¿ßá¡¡δσ ANSI-ßΓá¡ñáαΓ«¼,
- ¬áªñδ⌐ ¿º ¡¿σ ¡áτ¿¡áÑΓß∩ ¿ «¬á¡τ¿óáÑΓß∩
- ß¿¼ó«½«¼ »«ñτÑનóá¡¿∩ (__).
- .ym _TURBOC_
- éδñáτá ¡«¼Ñαá ΓѬπΘÑ⌐ óÑαß¿¿ Turbo-C - ΦÑß¡áñµáΓÑα¿τ¡á∩ ¬«¡ßΓá¡Γá.
- éÑαß¿∩ 1.0 »αÑñßΓáó½∩ÑΓß∩ ¬á¬ 0x0100; óÑαß¿∩ 1.2 - ¬á¬ 0x0102 ¿ Γ.ñ.
- .ym _PASCAL_
- Ä»αÑñѽ∩ÑΓ º¡áτÑ¡¿Ñ Σ½áúá -p; πßΓá¡áó½¿óáÑΓß∩ ó µÑ½πε ¬«¡ßΓá¡Γπ,
- αáó¡πε 1, Ñß½¿ ¿ß»«½∞ºπÑΓß∩ Σ½áú -p; ¿¡áτÑ ¡Ñ «»αÑñѽѡ«.
- .ym _MSDOS_
- ûѽá∩ ¬«¡ßΓá¡Γá, αáó¡á∩ 1.
- .ym _CDECL_
- Ä»αÑñѽ∩ÑΓ º¡áτÑ¡¿Ñ Σ½áúá -p; πßΓá¡áó½¿óáÑΓß∩ ó µÑ½πε ¬«¡ßΓá¡Γπ,
- αáó¡πε 1, Ñß½¿ Σ½áú -p ¡Ñ ¿ß»«½∞ºπÑΓß∩; ¿¡áτÑ ¡Ñ «»αÑñѽѡ«.
- # æ½ÑñπεΘ¿Ñ 6 ¼á¬α«ß«ó ºáó¿ß∩Γ «Γ óδíαá¡¡«⌐ ñ½∩ ¬«¼»¿½∩µ¿¿
- ¼«ñѽ¿ »á¼∩Γ¿. ä½∩ ½εí«⌐ ¬«¼»¿½∩µ¿¿ «»αÑñѽѡ ¼«ªÑΓ íδΓ∞ Γ«½∞¬«
- «ñ¿¡ ¿º ¡¿σ; «ßΓá½∞¡δÑ (»«-«»αÑñѽѡ¿ε) ¡Ñ «»αÑñѽѡδ.
- ìá»α¿¼Ñα, Ñß½¿ óδ ¬«¼»¿½¿απÑΓÑ ß ¼á½Ñ¡∞¬«⌐ ¼«ñѽ∞ε, «»αÑñѽѡ« _SMALL_,
- á «ßΓá½∞¡δÑ - ¡ÑΓ; »«φΓ«¼π ñ¿αÑ¬Γ¿óá #if defined(_SMALL_)
- íπñÑΓ ¿¼ÑΓ∞ º¡áτÑ¡¿Ñ true(óÑα¡«), ó Γ« óαѼ∩ ¬á¬ #if defined(_HUGE_)
- (¿½¿ ½εíá∩ ñαπúá∩) íπñÑΓ ¿¼ÑΓ∞ º¡áτÑ¡¿Ñ fulse(½«ª¡«).
- äÑ⌐ßΓó¿Γѽ∞¡«Ñ º¡áτÑ¡¿Ñ ñ½∩ ½εí«ú« «»αÑñѽѡ¡«ú« ¼á¬α««»αÑñѽѡ¿∩
- αáó¡« 1.
- .ym _TINY_
- Ä»µ¿¿ óδí«αá ¬α«ΦÑτ¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
- .ym _SMALL_
- Ä»µ¿¿ óδí«αá ¼á½Ñ¡∞¬«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
- .ym _MEDIUM_
- Ä»µ¿¿ óδí«αá ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿.
- .ym _COMPACT_
- Ä»µ¿¿ óδí«αá ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
- .º» 1
- 諼»¿½∩Γ«α Σ¿α¼δ MICROSOFT MSC V4.0, V5.0
- .º» 2
- Éẽ¿τ¿∩ ¼Ñªñπ K&R ¿ MSC
- .Γ¼ 4 ÉÇçïêùêƒ îàåäô K&R ¿ MSC
- ---------------------------------------------------------------
- â½áóá ÄΓ½¿τ¿∩
- ó K&R
- ---------------------------------------------------------------
- 2.2 êñÑ¡Γ¿Σ¿¬áΓ«αδ αáß»«º¡áεΓß∩ »« »Ñαóδ¼ 31 ß¿¼ó«½á¼.
-
- 2.3 asm ¿ entry í«½∞ΦÑ ¡Ñ ¬½ετÑóδÑ ß½«óá. ì«óδÑ ¬½ετÑóδÑ
- ß½«óá: const, volatile, enum, signed, void.
- 潫óá cdecl, far, fortran, huge, near, pascal ¼«úπΓ
- íδΓ∞, á ¼«úπΓ ¿ ¡Ñ íδΓ∞ ¬½ετÑó묨 ß½«óἿ.
-
- 2.4.1 é »αÑ«íαẫóá¡¿¿ Γ¿»«ó ΦÑßΓ¡áñµáΓÑα¿τ¡δÑ ¿ ó«ß∞¼Ñα¿τ¡δÑ
- ¬«¡ßΓá¡Γδ óßÑúñá αáßß¼áΓα¿óáεΓß∩ ¬á¬ íѺº¡á¬«óδÑ µÑ½δÑ.
-
- 2.4.3 ä«»«½¡¿Γѽ∞¡« óóÑñÑ¡δ ß¿¼ó«½∞¡δÑ ¬«¡ßΓá¡Γδ: '\V', '\A',
- '\Xτ¿ß½«', úñÑ τ¿ß½« »αÑñßΓáó½∩ÑΓ ß«í«⌐ «ñ¡π, ñóÑ ¿½¿
- Γα¿ ΦÑßΓ¡áñµáΓÑα¿τ¡δÑ µ¿Σαδ.
- éßÑ ß¿¼ó«½∞¡δÑ ¬«¡ßΓá¡Γδ ¿¼ÑεΓ Γ¿» int, ¿ »α¿
- »αÑ«íαẫóá¡¿¿ Γ¿»«ó »α«¿ßσ«ñ¿Γ αáßΦ¿αÑ¡¿Ñ º¡á¬á.
-
- 2.6 Æ¿» short óßÑúñá ºá¡¿¼áÑΓ 16 í¿Γ, long - 32 í¿Γá.
- Æ¿» int ¡á »α«µÑßß«αáσ 8086/8088, 80186, 80286 ºá¡¿¼áÑΓ
- 16 í¿Γ, á ¡á 80386 ¿ 68000 - 32.
-
- 4 Æ¿» char »« π¼«½τá¡¿ε º¡á¬«óδ⌐, σ«Γ∩ φΓ« π¼«½τá¡¿Ñ ¼«ª¡«
- ¿º¼Ñ¡¿Γ∞. Åα¿ »αÑ«íαẫóá¡¿¿ Γ¿»«ó π ¡Ñú« »α«¿ßσ«ñ¿Γ
- αáßΦ¿αÑ¡¿Ñ º¡á¬á. Å«ññÑনóáεΓß∩ ñóá ¡«óδσ Γ¿»á:
- unsigned char ¿ unsigned long. è½ετÑóδÑ ß½«óá signed ¿
- unsigned ¼«úπΓ π»«ΓαÑí½∩Γ∞ß∩ ¬á¬ »α¿½áúáΓѽ∞¡δÑ ¬ µÑ½δ¼
- Γ¿»á¼. ä«íáó½Ñ¡δ Γá¬ªÑ Γ¿»δ enum ¿ void.
-
- 6.4 àß½¿ αáºαÑΦÑ¡δ ¬½ετÑóδÑ ß½«óá near, far ¿ huge, ó
- »α«úαá¼¼Ñ ¼«úπΓ óßΓαÑτáΓ∞ß∩ π¬áºáΓѽ¿ αạ«⌐ ñ½¿¡δ.
- Ä»Ñαᵿ¿ ¡áñ ¡¿¼¿ ¼«úπΓ óδºδóáΓ∞ ¿σ »αÑ«íαẫóá¡¿Ñ.
-
- 6.6 ÅαÑ«íαẫóá¡¿Ñ Γ¿»«ó »« ßΓáαΦ¿¡ßΓóπ:
- 1. éßÑ float »αÑ«íαáºπεΓß∩ ó double.
- 2. àß½¿ ó óδαáªÑ¡¿¿ ÑßΓ∞ σ«Γ∩ íδ «ñ¿¡ double, óßÑ
- »αÑ«íαáºπÑΓß∩ ó double.
- 3. éßÑ char ¿ short »αÑ«íαáºπεΓß∩ ó int.
- 4. éßÑ unsigned char ¿ unsigned short »αÑ«íαáºπεΓß∩ ó
- unsigned int.
- 5. àß½¿ ó óδαáªÑ¡¿¿ ÑßΓ∞ σ«Γ∩ íδ «ñ¿¡ unsigned long,
- óßÑ »αÑ«íαáºπÑΓß∩ ó unsigned long.
- 6. àß½¿ ó óδαáªÑ¡¿¿ ÑßΓ∞ σ«Γ∩ íδ «ñ¿¡ long, óßÑ
- »αÑ«íαáºπÑΓß∩ ó long.
- 7. àß½¿ ó óδαáªÑ¡¿¿ ÑßΓ∞ σ«Γ∩ íδ «ñ¿¡ unsigned int,
- óßÑ »αÑ«íαáºπÑΓß∩ ó unsigned int.
- ä«»π߬áεΓß∩ »αÑ«íαẫóá¡¿∩ ¼Ñªñπ π¬áºáΓѽ∩¼¿ αạ«⌐
- ñ½¿¡δ ó ß½πτáÑ, Ñß½¿ π»«ΓαÑí½∩εΓß∩ near, far ¿ huge.
-
- 7.2 éßó∩º¿ ß «»ÑαᵿÑ⌐ sizeof ¼«ª¡« ºá¼ÑΓ¿Γ∞, τΓ« íá⌐Γ
- ¿¼ÑÑΓ 8 í¿Γ.
-
- 7.14 àßΓ∞ »α¿ßóá¿óá¡¿Ñ ßΓαπ¬Γπα.
-
- 8.2 æ»Ñµ¿Σ¿µ¿α«óá¡δ ¬½ετÑóδÑ ß½«óá enum ¿ void.
- è½ετÑóδÑ ß½«óá signed ¿ unsigned ¼«úπΓ π»«ΓαÑí½∩Γ∞ß∩
- ß½ÑñπεΘ¿¼ «íαẫ¼:
- signed char
- signed short
- signed short int
- signed int
- signed long
- signed long int
- unsigned char
- unsigned short
- unsigned short int
- unsigned int
- unsigned long
- unsigned long int
-
- 8.4 Æ¿»δ áαúπ¼Ñ¡Γ«ó ¼«úπΓ íδΓ∞ ó¬½ετÑ¡δ ó ß»¿ß«¬ »áαá¼ÑΓα«ó
- Σπ¡¬µ¿¿ ñ½∩ π¬áºá¡¿∩ ¬«¼»¿½∩Γ«απ τ¿ß½á ¿ Γ¿»á áαúπ¼Ñ¡Γ«ó
- »α¿ ó맮óÑ.
-
- 8.5 éßÑ í¿Γ«óδÑ »«½∩ unsigned. ê¼Ñ¡á τ½Ñ¡«ó ßΓαπ¬Γπα ¿
- «íΩÑñ¿¡Ñ¡¿⌐ ¡Ñ «í∩ºáΓѽ∞¡« ñ«½ª¡δ «Γ½¿τáΓ∞ß∩ «Γ ¿¼Ñ¡
- ßἿσ ßΓαπ¬Γπα ¿ «íΩÑñ¿¡Ñ¡¿⌐, á Γá¬ªÑ «Γ ¿¼Ñ¡ »ÑαѼѡ¡δσ
- ìÑ ßπΘÑßΓóπÑΓ óºá¿¼«ßó∩º¿ ¼Ñªñπ τ½Ñ¡á¼¿ ñóπσ αạδσ
- ßΓαπ¬Γπα.
-
- 8.6 ÄíΩÑñ¿¡Ñ¡¿∩ ¿¡¿µ¿á½¿º¿απεΓß∩ π¬áºá¡¿Ñ¼ º¡áτÑ¡¿∩ »Ñαó«ú«
- τ½Ñ¡á.
-
- 9.7 éδαáªÑ¡¿Ñ «»ÑαáΓ«αá switch ¼«ªÑΓ ¿¼ÑΓ∞ αẼÑα int ¿½¿
- ¬«α«τÑ. 髺¼«ª¡δ óδαáªÑ¡¿∩ ß Γ¿»«¼ enum. èáªñ«Ñ
- ¬«ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ ó case »« Γ¿»π ñ«½ª¡« ß«ó»áñáΓ∞ ß
- ß óδαáªÑ¡¿Ñ¼ ó switch.
-
- 10.1 滿߫¬ »áαá¼ÑΓα«ó ó «»αÑñѽѡ¿¿ Σπ¡¬µ¿¿ ¼«ªÑΓ
- ºá¬á¡τ¿óáΓ∞ß∩ ¬«¡ßΓαπ¬µ¿Ñ⌐ ',...' (ó ¬«¡µÑ Γα«ÑΓ«τ¿Ñ)
- ¿½¿ Γ«½∞¬« ', ' ñ½∩ «í«º¡áτÑ¡¿∩ »ÑαѼѡ¡«ú« τ¿ß½á
- »áαá¼ÑΓα«ó π Σπ¡¬µ¿¿. àß½¿ ß»¿ß«¬ ß«ßΓ«¿Γ Γ«½∞¬« ¿º
- φΓ«⌐ ¬«¡ßΓαπ¬µ¿¿, Γ« π Σπ¡¬µ¿¿ ¼«úπΓ íδΓ∞ ¡«½∞ ¿½¿
- í«½ÑÑ »áαá¼ÑΓα«ó.
-
- 12 îѪñπ # ¿ ñ¿αÑ¬Γ¿ó«⌐ »αÑ»α«µÑßß«αá ¼«ªÑΓ íδΓ∞ ½εí«Ñ
- τ¿ß½« »α«íѽ«ó ¿ Γáíπ½∩µ¿⌐.
- ä«íáó½Ñ¡á ñ¿αÑ¬Γ¿óá #pragma.
-
- 12.3 Ä»αÑñÑ½Ñ¡á ¬«¡ßΓαπ¬µ¿∩ defined(¿ñÑ¡Γ¿Σ¿¬áΓ«α) ó
- «»ÑαáΓ«αÑ #if, ΓᬠτΓ« #ifdef ¿ #ifndef ¼«ª¡« ¡Ñ
- ¿ß»«½∞º«óáΓ∞.
- ä«íáó½Ñ¡ #elif (else-if).
-
- 14.1 æΓαπ¬Γπαá ¿½¿ «íΩÑñ¿¡Ñ¡¿Ñ ¼«úπΓ »α¿ßóá¿óáΓ∞ß∩ ¿
- »ÑαÑñáóáΓ∞ß∩ Σπ¡¬µ¿∩¼ ó ¬áτÑßΓóÑ »áαá¼ÑΓα«ó.
- é óδαáªÑ¡¿¿, ó¬½ετáεΘѼ ->, óδαáªÑ¡¿Ñ ß½Ñóá «Γ ßΓαѽ¬¿
- ñ«½ª¡« íδΓ∞ Γ¿»á Γ«⌐ ªÑ ßΓαπ¬Γπαδ, ó ¬«Γ«α«⌐ «»¿ßá¡
- τ½Ñ¡ ß»αáóá «Γ ßΓαѽ¬¿.
-
- 17 ÅÑαÑτ¿ß½Ñ¡¡δÑ á¡áσα«¡¿º¼δ ¡Ñ αáß»«º¡áεΓß∩.
- .º» 2
- Äúαá¡¿τÑ¡¿∩ ¬«¼»¿½∩Γ«αá
- # é« óαѼ∩ Γαá¡ß½∩µ¿¿ ¬«¼»¿½∩Γ«απ ¡πª¡« ñ¿ß¬«ó«Ñ »α«ßΓαá¡ßΓó« ñ½∩
- óαѼѡ¡δσ Σá⌐½«ó, αáó¡«Ñ »« αẼÑαá¼ »α¿¼Ñα¡« ñóπ¼ ¿ßσ«ñ¡δ¼ Σá⌐½á¼.
- # îá¬ß¿¼á½∞¡á∩ ñ½¿¡á ßΓ᫬¿, ó¬½ετá∩ ¡π½Ñó«⌐ ß¿¼ó«½ '\0' ¡Ñ
- ñ«½ª¡á »αÑóδΦáΓ∞ 512 íá⌐Γ.
- # îá¬ß¿¼á½∞¡δ⌐ αẼÑα ¬«¡ßΓá¡Γ ºáó¿ß¿Γ «Γ ¿σ Γ¿»á.
- # îá¬ß¿¼á½∞¡á∩ ñ½¿¡á ¿ñÑ¡Γ¿Σ¿¬áΓ«αá 31 ß¿¼ó«½.
- # îá¬ß¿¼á½∞¡«Ñ τ¿ß½« πα«ó¡Ñ⌐ 󽫪ѡ¡«ßΓ¿ «»αÑñѽѡ¿⌐ ßΓαπ¬Γπα/«íΩÑñѡѡ¿⌐ - 5.
- .º» 2
- Äúαá¡¿τÑ¡¿∩ »αÑ»α«µÑßß«αá
- # îá¬ß¿¼á½∞¡δ⌐ αẼÑα ¼á¬α««»αÑñѽѡ¿∩ 512 íá⌐Γ
- # îá¬ß¿¼á½∞¡«Ñ τ¿ß½« áαúπ¼Ñ¡Γ«ó ó ¼á¬α« - 8.
- # îá¬ß¿¼á½∞¡á∩ ñ½¿¡á áαúπ¼Ñ¡Γ«ó - 256 íá⌐Γ.
- # îá¬ß¿¼á½∞¡δ⌐ πα«óÑ¡∞ 󽫪ѡ¡«ßΓ¿ ñ½∩ ñÑα¿¬Γ¿ó Γ¿»á #if, #ifdef, #ifndef - 32.
- # îá¬ß¿¼á½∞¡δ⌐ πα«óÑ¡∞ 󽫪ѡ¡«ßΓ¿ ó¬½ετáѼδσ Σá⌐½«ó - 10.
- .º» 1
- æΓá¡ñáαΓ¡δÑ ¼«ñѽ¿ »á¼∩Γ¿ ¬«¼»¿½∩Γ«α«ó Turbo-C ¿ MSC
- # Turbo-C ¿ Microsoft C (MSC) ¿¼ÑεΓ »∩Γ∞ «íΘ¿σ ¼«ñѽÑ⌐ »á¼∩Γ¿.
- # ä½∩ óßÑσ »∩Γ¿ ¼«ñѽÑ⌐ »á¼∩Γ¿ ß»αáóÑñ½¿óδ ß½ÑñπεΘ¿Ñ «úαá¡¿τÑ¡¿∩:
- .na
- ì¿ «ñ¿¡ ¿ßσ«ñ¡δ⌐ ¼«ñπ½∞ ¡Ñ ¼«ªÑΓ úÑ¡Ñα¿Γ∞ 64è ¿½¿ í«½∞ΦÑ ¬«¼á¡ñ.
- .na
- àß½¿ ¡Ñ »α¿¼Ñ¡∩ÑΓß∩ «úα«¼¡á∩ (huge) ¼«ñѽ∞ »á¼∩Γ¿, ¿ φ½Ñ¼Ñ¡Γ ñá¡¡δσ (¡á»α¿¼Ñα,
- ¼áßß¿ó) ¡Ñ «»¿ßá¡ ß »«¼«Θ∞ε ¬½ετÑó«ú« ß½«óá huge (ß¼. ¡¿ªÑ),
- «¡ ¡Ñ ¼«ªÑΓ »αÑóδΦáΓ∞ 64è.
- .ym îá½á∩ (small) ¼«ñѽ∞
- 鬽ετÑ¡á »« π¼«½τá¡¿ε. Åα¿ φΓ«¼ »α«úαá¼¼á Σ«α¼¿απÑΓß∩ ß «ñ¡¿¼
- ßÑú¼Ñ¡Γ«¼ ñá¡¡δσ ¿ «ñ¡¿¼ ßÑú¼Ñ¡Γ«¼ ¬«¼á¡ñ (ßÑú¼Ñ¡Γ αáóÑ¡ 64è).
- æ½Ññ«óáΓѽ∞¡«, »α«úαá¼¼δ ó φΓ«⌐ ¼«ñѽ¿ ¡Ñ ¼«úπΓ »αÑóδΦáΓ∞ 128è.
- Å« π¼«½τá¡¿ε ó ñá¡¡«⌐ ¼«ñѽ¿ óßÑ π¬áºáΓѽ¿ ¿¼ÑεΓ Γ¿» 'near',
- ¡« ¼«ª¡« óó«ñ¿Γ∞ ¿ ñαπú¿Ñ ¬½ετÑó묨 ß½«óἿ far ¿ huge (ß¼. ¡¿ªÑ).
- .ym æαÑñ¡∩∩ (medium) ¼«ñѽ∞
- Åα«úαá¼¼á Σ«α¼¿απÑΓß∩ ß ¡Ñ߬«½∞¬¿¼¿ ßÑú¼Ñ¡ΓἿ ¬«¼á¡ñ ¿ «ñ¡¿¼ ßÑú¼Ñ¡Γ«¼ ñá¡¡δσ.
- Äíδτ¡« »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ »α«úαá¼¼ ß í«½∞Φ¿¼ αẼÑα«¼ ¬«¼á¡ñ ¿ ¼á½δ¼ αẼÑα«¼
- ñá¡¡δσ, »α¿ φΓ«¼ ¬áªñδ⌐ ¿ßσ«ñ¡δ⌐ ¼«ñπ½∞ ¿¼ÑÑΓ ßó«⌐ ß«íßΓóÑ¡¡δ⌐ ßÑú¼Ñ¡Γ ¬«¼á¡ñ.
- .ym 諼»á¬Γ¡á∩ (compact) ¼«ñѽ∞
- Åα«úαá¼¼á Σ«α¼¿απÑΓß∩ ß ¡Ñ߬«½∞¬¿¼¿ ßÑú¼Ñ¡ΓἿ ñá¡¡δσ ¿ «ñ¡¿¼ ßÑú¼Ñ¡Γ«¼ ¬«¼á¡ñ.
- Å« π¼«½τá¡¿ε ó φΓ«⌐ ¼«ñѽ¿ óßÑ π¬áºáΓѽ¿ ¡á ¬«ñ ¿¼ÑÑεΓ Γ¿» 'near',
- á ¡á ñá¡¡δÑ - 'far'. ¡« óó«ñ¿Γ∞ ñαπú¿Ñ π¬áºáΓѽ¿ ¡á ¬«ñ ¬½ετÑóδ¼
- ß½«ó«¼ 'far' ¿ ¡á ñá¡¡δÑ ¬½ετÑó묨 ß½«óἿ 'near' ¿ 'huge' (ß¼. ¡¿ªÑ).
- .ym ü«½∞Φá∩ (large) ¼«ñѽ∞
- Åα«úαá¼¼á Σ«α¼¿απÑΓß∩ ß ¡Ñ߬«½∞¬¿¼¿ ßÑú¼Ñ¡ΓἿ ¬«¼á¡ñ ¿ ¡Ñ߬«½∞¬¿¼¿ ßÑú¼Ñ¡ΓἿ
- ñá¡¡δσ. Å« π¼«½τá¡¿ε ó φΓ«⌐ ¼«ñѽ¿ φ½Ñ¼Ñ¡Γδ ¬«ñá ¿ ñá¡¡δσ ¿¼ÑεΓ áñαÑßá Γ¿»á
- 'far'. ¡« óó«ñ¿Γ∞ ñαπú¿Ñ π¬áºáΓѽ¿ ¡á ¬«ñ ¬½ετÑóδ¼ ß½«ó«¼ 'near'
- ¿ ¡á ñá¡¡δÑ ¬½ετÑó묨 ß½«óἿ 'near' ¿ 'huge' (ß¼. ¡¿ªÑ).
- .ym Äúα«¼¡á∩ (huge) ¼«ñѽ∞
- Åα«úαá¼¼á Σ«α¼¿απÑΓß∩ ß «íΘ¿¼¿ ßÑú¼Ñ¡ΓἿ ¬«¼á¡ñ ¿ ñá¡¡δσ. Æá¬¿σ ßÑú¼Ñ¡Γ«ó
- ¼«ªÑΓ íδΓ∞ ߬«½∞¬« πú«ñ¡«.
- # é φΓ«⌐ ¼«ñѽ¿ ß¡¿¼áÑΓß∩ «úαá¡¿τÑ¡¿Ñ ¡á αẼÑα φ½Ñ¼Ñ¡Γá ñá¡¡δσ (¡á»α¿¼Ñα,
- ¼áßß¿óá) ó 64è, ¡« «ßΓáεΓß∩ ß½ÑñπεΘ¿Ñ «úαá¡¿τÑ¡¿∩ ßÑú¼Ñ¡Γᵿ¿:
- .na
- Äñ¿¡«τ¡δ⌐ φ½Ñ¼Ñ¡Γ ñá¡¡δσ (¡á»α¿¼Ñα, φ½Ñ¼Ñ¡Γ ¼áßß¿óá) ¡Ñ ¼«ªÑΓ íδΓ∞ í«½ÑÑ 64è.
- .na
- ä½∩ ½εí«ú« ¼áßß¿óá αẼÑα«¼ í«½∞ΦÑ 128è óßÑ φ½Ñ¼Ñ¡Γδ ñ«½ª¡δ ¿¼ÑΓ∞ αẼÑα,
- ¬αáΓ¡δ⌐ 2.
- # Æá¬ ¬á¬ αѺπ½∞ΓáΓ «»ÑαáΓ«αá sizeof ¿ αạ«ßΓ¿ ñóπσ π¬áºáΓѽÑ⌐ ÑßΓ∞
- óѽ¿τ¿¡á Γ¿»á int, á ó ß½πτáÑ í«½∞Φ¿σ φ½Ñ¼Ñ¡Γ«ó φΓ« ¼«ªÑΓ ¡Ñ ß«í½εñáΓ∞ß∩,
- MSC »«ºó«½∩ÑΓ »«½πτáΓ∞ ¬«ααÑ¬Γ¡δÑ º¡áτÑ¡¿∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
- τΓ«íδ »«½πτ¿Γ∞ αẼÑα í«½∞Φ«ú« φ½Ñ¼Ñ¡Γá «»ÑαáΓ«α«¼ sizeof,
- ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘπε ¬«¡ßΓαπ¬µ¿ε:
- # (long) sizeof (huge_item),
- # úñÑ huge_item - ΓαÑíπѼδ⌐ φ½Ñ¼Ñ¡Γ. ä½∩ »«½πτÑ¡¿∩ αạ«ßΓ¿ ñóπσ
- π¬áºáΓѽÑ⌐ ¡á 'huge' φ½Ñ¼Ñ¡Γδ ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘπε ¬«¡ßΓαπ¬µ¿ε:
- # (long) (huge_ptr1 - huge_ptr2).
- .º» 2
- î«ñѽ∞ »á¼∩Γ¿ tiny
- # Turbo-C ¿¼ÑÑΓ ó ñ«»«½¡Ñ¡¿¿ ¬ π¬áºá¡¡δ¼ óδΦÑ ÑΘÑ «ñ¡π ¼«ñѽ∞
- »á¼∩Γ¿ - tiny.
- ¥Γ« ßá¼á∩ ¼á½á∩ ¼«ñѽ∞ »á¼∩Γ¿. éßÑ τÑΓδαÑ αÑú¿ßΓαá
- ( CS, DS, SS, ES) ß«ñÑαªáΓ «ñ¿¡ ¿ ëà ªÑ áñαÑß, »«φΓ«¼π
- 64è óδñѽ∩εΓß∩ ñ½∩ σαá¡Ñ¡¿∩ ¬«ñá, ñá¡¡δσ ¿ ¼áßß¿ó«ó.
- éßÑúñá ¿ß»«½∞ºπεΓß∩ π¬áºáΓѽ¿ Γ¿»á near.
- Åα«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ ¼«ñѽ∞ »á¼∩Γ¿ tiny, ¼«úπΓ íδΓ∞
- »αÑ«íαẫóá¡δ ¬ Σ«α¼áΓπ .COM.
- .º» 2 êß»«½∞º«óá¡¿Ñ ¬½ετÑóδσ ß½«ó 'near', 'far' ¿ 'huge'
- # Äñ¿¡ ¿º ¡Ñ»α¿∩Γ¡δσ ¼«¼Ñ¡Γ«ó ó ¿ß»«½∞º«óá¡¿¿ ¼«ñѽÑ⌐ »á¼∩Γ¿ ºá¬½ετáÑΓß∩
- ó Γ«¼, τΓ« »« αẽ¿τ¡δ¼ »α¿τ¿¡á¼ (¡á»α¿¼Ñα, ñ½∩ πóѽ¿τÑ¡¿∩ íδßΓα«ñÑ⌐ßΓó¿∩)
- »α¿σ«ñ¿Γß∩ ¿ß»«½∞º«óáΓ∞ π¬áºáΓѽ¿ αạ«ú« αẼÑαá, á ¡Ñ Γ«½∞¬«
- «»αÑñѽѡ¡«ú« »α¿ ñá¡¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿. Äñ¡á¬«, MSC »«ºó«½∩ÑΓ π½áñ¿Γ∞ φΓ«
- ß »«¼«Θ∞ε ¿ß»«½∞º«óá¡¿∩ ¬½ετÑóδσ ß½«ó near, far ¿ huge.
- ¥Γ¿ ¬½ετÑóδÑ ß½«óá ñÑ⌐ßΓó¿Γѽ∞¡δ Γ«½∞¬« »α¿ αáí«ΓÑ ß Äæ MS DOS ¡á
- »α«µÑßß«αáσ ßѼÑ⌐ßΓóá 8086, ¿ ¼«úπΓ íδΓ∞ πñá½Ñ¡δ ß »«¼«Θ∞ε ¬½ετá /ZA ó MSC.
- .º» 3 è½ετÑó«Ñ ß½«ó« near
- # ¥½Ñ¼Ñ¡Γ, ¡á ¬«Γ«αδ⌐ ßßδ½áÑΓß∩ π¬áºáΓѽ∞, αѺ¿ñÑ¡ΓÑ¡ ó ΓѬπΘѼ ßÑú¼Ñ¡ΓÑ
- ¬«¼á¡ñ ¿½¿ ó ßΓá¡ñáαΓ¡«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ. ô¬áºáΓѽѼ ∩ó½∩ÑΓß∩ 16-í¿Γ¡δ⌐
- áñαÑß ñá¡¡δσ ¿½¿ Σπ¡¬µ¿¿ ó ¬«ñÑ. é áñαÑß¡«⌐ áα¿Σ¼ÑΓ¿¬Ñ ¿ß»«½∞ºπÑΓ 16 í¿Γ.
- .º» 3 è½ετÑó«Ñ ß½«ó« far
- # ¥½Ñ¼Ñ¡Γ, ¡á ¬«Γ«αδ⌐ ßßδ½áÑΓß∩ π¬áºáΓѽ∞, ¼«ªÑΓ αáß»«½áúáΓ∞ß∩ úñÑ πú«ñ¡«,
- ¡Ñ «í∩ºáΓѽ∞¡« ó ΓѬπΘѼ ßÑú¼Ñ¡ΓÑ ¬«¼á¡ñ ¿½¿ ßΓá¡ñáαΓ¡«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.
- ô¬áºáΓѽѼ ∩ó½∩ÑΓß∩ 32-í¿Γ¡δ⌐ áñαÑß ñá¡¡δσ ¿½¿ Σπ¡¬µ¿¿ ó ¬«ñÑ.
- é áñαÑß¡«⌐ áα¿Σ¼ÑΓ¿¬Ñ ¿ß»«½∞ºπÑΓ 16 í¿Γ.
- .º» 3
- è½ετÑó«Ñ ß½«ó« huge
- # ¥½Ñ¼Ñ¡Γ ¡á ¬«Γ«αδ⌐ ßßδ½áÑΓß∩ π¬áºáΓѽ∞ ¼«ªÑΓ αáß»«½áúáΓ∞ß∩
- ó ñá¡¡δσ úñÑ πú«ñ¡«, ¡Ñ «í∩ºáΓѽ∞¡« ó ßΓá¡ñáαΓ¡«¼ ßÑú¼Ñ¡ΓÑ.
- Äñ¿¡«τ¡δ⌐ φ½Ñ¼Ñ¡Γ ñá¡¡δσ (¡á»α¿¼Ñα, φ½Ñ¼Ñ¡Γ ¼áßß¿óá) ¡Ñ ¼«ªÑΓ
- ¿¼ÑΓ∞ αẼÑα í«½∞ΦÑ 64 èí. ô¬áºáΓѽѼ ∩ó½∩ÑΓß∩ 32-í¿Γ¡δ⌐ áñαÑß ñá¡¡δσ.
- é áñαÑß¡«⌐ áα¿Σ¼ÑΓ¿¬Ñ ¿ß»«½∞ºπÑΓß∩ 32 í¿Γá.
- # æΓá¡ñáαΓ¡á∩ æ-í¿í½¿«ΓѬá, ñ«½ª¡á ß««ΓóÑΓßΓó«óáΓ∞ ¼«ñѽ¿ »á¼∩Γ¿
- éáΦÑ⌐ »α«úαá¼¼δ: (¼á½«⌐ (small) »« π¼«½τá¡¿ε, ¬«¼»á¬Γ¡«⌐ (compact),
- ßαÑñ¡Ñ⌐ (medium), í«½∞Φ«⌐ (large)).(XLIBC.LIB, úñÑ X - »Ñαóá∩ íπ¬óá
- ¡áºóá¡¿∩ ¼«ñѽ¿ »á¼∩Γ¿). æΓá¡ñáαΓ¡á∩ í¿í½¿«ΓѬá ñ½∩ í«½∞Φ«⌐ ¼«ñѽ¿
- »á¼∩Γ¿ ¼«ªÑΓ »α¿¼Ñ¡∩Γ∞ß∩ Γá¬ªÑ ¿ ñ½∩ «úα«¼¡«⌐ (huge) ¼«ñѽ¿.
- é «íΘѼ ß½πτáÑ ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞ 'far' ¿ 'huge' Σπ¡¬µ¿¿ í¿í½¿«ΓѬ¿
- »α¿ ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
- # ä½∩ ¼«ñ¿Σ¿¬áµ¿¿ φ½Ñ¼Ñ¡Γ«ó ¿½¿ π¬áºáΓѽÑ⌐ ¡á φ½Ñ¼Ñ¡Γδ ß »«¼«Θ∞ε
- ¬½ετÑóδσ ß½«ó near, far ¿ huge ¡Ñ«íσ«ñ¿¼« »«¼¡¿Γ∞ ß½ÑñπεΘ¿Ñ »αáó¿½á:
- .na
- è½ετÑó«Ñ ß½«ó« ¼«ñ¿Σ¿µ¿απÑΓ φ½Ñ¼Ñ¡Γ ¿½¿ π¬áºáΓѽ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡« ß»αáóá.
- ìá»α¿¼Ñα, char far* *p; «º¡áτáÑΓ, τΓ« p φΓ« π¬áºáΓѽ∞ ¡á 'far' π¬áºáΓѽ∞
- ¡á char.
- .na
- àß½¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« ß»αáóá ºá ¬½ετÑóδ¼ ß½«ó«¼ ¿ñÑΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«α,
- Γ« «¡« «»αÑñѽ∩ÑΓ, úñÑ íπñÑΓ αáß»«½áúáΓ∞ß∩ φëà φ½Ñ¼Ñ¡Γ, ó ßΓá¡ñáαΓ¡«¼
- ßÑú¼Ñ¡ΓÑ ñá¡¡δσ (near) ¿½¿ ó ñαπú¿σ ßÑú¼Ñ¡Γáσ (far ¿½¿ huge).
- ìá»α¿¼Ñα: char far Ç; ºñÑß∞ Ç »αÑñßΓáó½∩ÑΓ ß«í«⌐ φ½Ñ¼Ñ¡Γ Γ¿»á
- char ß áñαÑß«¼ 'far'.
- .na
- àß½¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« ß»αáóá ºá ¬½ετÑóδ¼ ß½«ó«¼ ¿ñÑΓ π¬áºáΓѽ∞,
- Γ« «¡« «»αÑñѽ∩ÑΓ αẼÑα áñαÑßá: 16 í¿Γ (near) ¿½¿ 32 (huge ¿½¿ far).
- ìá»α¿¼Ñα, char far *p; ºñÑß∞ p αáßß¼áΓα¿óáÑΓß∩ ¬á¬ 'far'
- π¬áºáΓѽ∞ (32 í¿Γá) ¡á φ½Ñ¼Ñ¡Γ Γ¿»á char.
- .«Σ
- Åα¿¼Ñαδ:
- char a[3000]; /* ¼á½á∩ (small) ¼«ñѽ∞ */
- - á αáß»«½áúáÑΓß∩ ó ßΓá¡ñáαΓ«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.
-
- char far b[30000]; /* ¼á½á∩ (small) ¼«ñѽ∞ */
- - b ¼«ªÑΓ αáß»«½áúáΓ∞ß∩ ó ½εí«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.
- àß½¿ ¿¼ÑÑΓß∩ ¼á½« Γᬿσ ¼áßß¿ó«ó, ñπτΦÑ ¿ß»«½∞º«óáΓ∞
- 'far', τѼ í«½∞Φπε ¼«ñѽ∞ »á¼∩Γ¿ ñ½∩ π߬«αÑ¡¿∩ ñ«ßΓπ»á
- ¬ ñαπú¿¼ ñá¡¡δ¼.
-
- char a[3000]; /* í«½∞Φá∩ (large) ¼«ñѽ∞ */
- - ñáªÑ Ñß½¿ á αáß»«½«ªÑ¡ ó ßΓá¡ñáαΓ¡«¼ ßÑú¼Ñ¡ΓÑ
- ñá¡¡δσ, ñ«ßΓπ» ¬ ¡Ñ¼π íπñÑΓ «ßπΘÑßΓó½∩Γ∞ß∩ ß ¿ß»«½∞º«-
- ó᡿Ѽ 32-í¿Γ¡«ú« π¬áºáΓѽ∩.
-
- char near b[30000]; /* í«½∞Φá∩ (large) ¼«ñѽ∞ */
- - ñ«ßΓπ» ¬ b íπñÑΓ «ßπΘÑßΓó½∩Γ∞ß∩ ß ¿ß»«½∞º«ó᡿Ѽ
- 16-í¿Γ¡«ú« π¬áºáΓѽ∩ (near), τΓ« íπñÑΓ ¡Ñ߬«½∞¬«
- íδßΓαÑÑ, τѼ ó »αÑñδñπΘѼ ß½πτáÑ.
-
- char huge a[70000]; /* ¼á½á∩ (small) ¼«ñѽ∞ */
- - á ñ«½ªÑ¡ íδΓ∞ Γᬠ«»¿ßá¡, Γᬠ¬á¬ «¡ ºá¡¿¼áÑΓ í«½ÑÑ
- 64 èí. êß»«½∞º«óá¡¿Ñ ¬½ετÑó«ú« ß½«óá huge ó¼ÑßΓ«
- «úα«¼¡«⌐ (huge) ¼«ñѽ¿ »á¼∩Γ¿ »«ºó«½∩ÑΓ «íαáΘáΓ∞ß∩ ¬
- ñαπú¿¼ ñá¡¡δ¼, ¡áσ«ñ∩Θ¿¼ß∩ ó ßΓá¡ñáαΓ¡«¼ ßÑú¼Ñ¡ΓÑ
- ú«αáºñ« íδßΓαÑÑ »« 'near' π¬áºáΓѽ∩¼.
-
- char huge *pa; /* ¼á½á∩ (small) ¼«ñѽ∞ */
- - pa ¼«ªÑΓ »α¿¼Ñ¡∩Γ∞ß∩, ΓᬪÑ, ¬á¬ á ¿º »αÑñδñπΘÑú«
- »α¿¼Ñαá. éß∩ áñαÑß¡á∩ áα¿Σ¼ÑΓ¿¬áß ¡¿¼ (¡á»α¿¼Ñα, pa++)
- ¿ß»«½∞ºπÑΓ 32 í¿Γá.
-
- char *pa; /* ¼á½á∩ (small) ¼«ñѽ∞ */
- - 'near' π¬áºáΓѽ∞ ¡á char;
-
- char far *pa; /* ¼á½á∩ (small) ¼«ñѽ∞ */
- - 'far' π¬áºáΓѽ∞ ¡á char;
-
- char far* *pa; /* ¼á½á∩ (small) ¼«ñѽ∞ */
- - 'near' π¬áºáΓѽ∞ ¡á ¼áßß¿ó 'far' π¬áºáΓѽÑ⌐ ¡á char;
-
- char far* *pa; /* í«½∞Φá∩ (large) ¼«ñѽ∞ */
- - 'far' π¬áºáΓѽ∞ ¡á ¼áßß¿ó 'far' π¬áºáΓѽÑ⌐ ¡á char
-
- char far* near *pb; /* ½εíá∩ ¼«ñѽ∞ »á¼∩Γ¿ */
- - 'near' π¬áºáΓѽ∞ ¡á ¼áßß¿ó 'far' π¬áºáΓѽÑ⌐ ¡á char
-
- char far* far *pb; /* ½εíá∩ ¼«ñѽ∞ »á¼∩Γ¿ */
- - 'far' π¬áºáΓѽ∞ ¡á ¼áßß¿ó 'far' π¬áºáΓѽÑ⌐ ¡á char
- # Åαáó¿½á ¿ß»«½∞º«óá¡¿∩ 'near' ¿ 'far' ñ½∩ Σπ¡¬µ¿⌐ Γá¬¿Ñ ªÑ, ¬á¬
- ¿ ñ½∩ ñá¡¡δσ.
- .na
- è½ετÑó«Ñ ß½«ó« ¼«ñ¿Σ¿µ¿απÑΓ Σπ¡¬µ¿ε ¿½¿ π¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε
- ¡Ñ»«ßαÑñßΓóÑ¡¡« ß»αáóá.
- .na
- àß½¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« ß»αáóá ºá ¬½ετÑóδ¼ ß½«ó«¼ ¿ñÑΓ Σπ¡¬µ¿∩,
- Γ« «¡« «»αÑñѽ∩ÑΓ, úñÑ íπñÑΓ αáß»«½áúáΓ∞ß∩ φëà φ½Ñ¼Ñ¡Γ,
- ó ΓѬπΘѼ ßÑú¼Ñ¡ΓÑ ¬«¼á¡ñ (near) ¿½¿ ó ñαπú¿σ ßÑú¼Ñ¡Γáσ (far).
- ìá»α¿¼Ñα: char far fun(); ºñÑß∞ fun
- »αÑñßΓáó½∩ÑΓ ß«í«⌐ Σπ¡¬µ¿ε, óδºδóáѼπε »« 32-í¿Γ¡«¼π áñαÑßπ ¿
- ó«ºóαáΘáεΘπε φ½Ñ¼Ñ¡Γ Γ¿»á char;
- .na
- àß½¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« ß»αáóá ºá ¬½ετÑóδ¼ ß½«ó«¼ ¿ñÑΓ π¬áºáΓѽ∞
- ¡á Σπ¡¬µ¿ε, Γ« «¡« «»αÑñѽ∩ÑΓ αẼÑα áñαÑßá: 16 í¿Γ (near) ¿½¿ 32 (far).
- ìá»α¿¼Ñα: char (far *pfun)(); ºñÑß∞ pfun αáßß¼áΓα¿óáÑΓß∩
- ¬á¬ 'far' π¬áºáΓѽ∞ (32 í¿Γá) ¡á Σπ¡¬µ¿ε, ó«ºóαáΘáεΘπε φ½Ñ¼Ñ¡Γ Γ¿»á
- char.
- .na
- ÄíΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐ ñ«½ª¡δ ß««ΓóÑΓßΓó«óáΓ∞ ¿σ «»αÑñѽѡ¿∩¼.
- .na
- è½ετÑó«Ñ ß½«ó« 'huge' ¡Ñ ¼«ªÑΓ »α¿¼Ñ¡∩Γ∞ß∩ ñ½∩ Σπ¡¬µ¿⌐.
- # ÅÉêîàÉ¢:
- .«Σ
- char far fun(); /* ¼á½á∩ (small) ¼«ñѽ∞ */
- char far fun() { /* ... */ }
-
- - ºñÑß∞ fun - φΓ« Σπ¡¬µ¿∩, ó«ºóαáΘáεΘá∩ φ½Ñ¼Ñ¡Γ Γ¿»á char,
- ¿ óδºδóáѼá∩ »« 32-í¿Γ¡«¼π áñαÑßπ.
-
-
- static char far* near fun(); /* í«½∞Φá∩ (large) ¼«ñѽ∞ */
- static char far* near fun() { /* ... */ }
-
- - ºñÑß∞ fun φΓ« 'near' Σπ¡¬µ¿∩, ó«ºóαáΘáεΘá∩ 'far'
- π¬áºáΓѽ∞ ¡á char. ìá»α¿¼Ñα, φΓá Σπ¡¬µ¿∩ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩
- ñ«ó«½∞¡« τáßΓ« Γ«½∞¬« ó Γ«¼ ¼«ñπ½Ñ, úñÑ «¡á «»¿ßá¡á. Æá¬ ¬á¬
- «¡á 'near', φΓ« íπñÑΓ »α«¿ßσ«ñ¿Γ∞ íδßΓαÑÑ.
-
-
- void far fun(); /* ¼á½á∩ (small) ¼«ñѽ∞ */
- void (far* pfun)() = fun;
-
- - ºñÑß∞ pfun φΓ« 'far' π¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε, ¡Ñ ó«ºóαáΘáεΘπε
- º¡áτÑ¡¿∩.
-
-
- double far* (far fun)(); /* ¬«¼»á¬Γ¡á∩ (compact) ¼«ñѽ∞ */
- double far* (far *pfun)() = fun;
-
- - ºñÑß∞ pfun φΓ« 'far' π¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε, ó«ºóαáΘáεΘπε
- 'far' π¬áºáΓѽ∞ ¡á Γ¿» double.
- # Åα¿ ¿ß»«½∞º«óá¡¿¿ 'near', 'far' ¿ 'huge' ¡áñ« »«¼¡¿Γ∞, τΓ« π¬áºáΓѽ¿
- ¼Ñ¡∞ΦÑ⌐, τѼ »αÑñπß¼«ΓαÑ¡« ¼«ñѽ∞ε »á¼∩Γ¿ ñ½¿¡δ »α¿ ¿ß»«½∞º«óá¡¿¿ »α¿ó«ñ∩Γß∩
- ¬ »α¿¡∩Γδ¼ ó ñá¡¡«⌐ ¼«ñѽ¿.
-
- .ºα 諼»¿½∩Γ«αδ ∩ºδ¬á æ¿ Äæ äàîÄæ ¿ UNIX 2.9BSD, 4.2BSD
- # é Äæ äѼ«ß-2 (UNIX 2.9BSD) ¿ äѼ«ß-32 (UNIX 4.2BSD) «ß¡«ó¡δ¼¿
- ¬«¼»¿½∩Γ«αἿ ∩ºδ¬á æ¿ ∩ó½∩εΓß∩ CC ¿ PCC. é «ß¡«óπ »Ñαó«ú« »«½«ªÑ¡ ¬«¼»¿½∩Γ«α,
- αáºαáí«Γá¡¡δ⌐ «ñ¡¿¼ ¿º áóΓ«α«ó ∩ºδ¬á æ¿ äÑ¡¿ß«¼ É¿τ¿. ƒºδ¬ φΓ«ú« ¬«¼»¿½∩Γ«αá
- »«½¡«ßΓ∞ε ß««ΓóÑΓßΓóπÑΓ «»¿ßá¡¡«¼π ó K&R. éΓ«α«⌐ ¬«¼»¿½∩Γ«α - φΓ« Γᬠ¡áºδóѼδ⌐
- "¼«í¿½∞¡δ⌐" ¬«¼»¿½∩Γ«α ∩ºδ¬á æ¿, αáºαáí«Γá¡¡δ⌐ ô. 䪫¡ß«¡«¼. ƒºδ¬, αÑ὿º«óá¡¡δ⌐
- φΓ¿¼ ¬«¼»¿½∩Γ«α«¼, ¡Ñ «Γ½¿τáÑΓß∩ «Γ ∩ºδ¬á, «»¿ßá¡¡«ú« ó K&R. æ½ÑñπÑΓ ¿¼ÑΓ∞ óó¿ñπ
- τΓ« ¡á «ß¡«óÑ φΓ«ú« ¬«¼»¿½∩Γ«αá ßñѽᡠóÑα¿Σ¿¬áΓ«α »α«úαá¼¼ LINT, »«φΓ«¼π
- φëà ¬«¼»¿½∩Γ«α ú«αáºñ« ßΓα«ªÑ »α«ó«ñ¿Γ ¬«¡Γα«½∞ Γ¿»«ó ñá¡¡δσ ¿ óδñáÑΓ ú«αáºñ«
- í«½∞ΦÑ »αÑñπ»αѪñÑ¡¿⌐ « 󫺼«ª¡«⌐ ¡Ñ¼«í¿½∞¡«ßΓ¿ »α«úαá¼¼.
- .º» 1
- ìѬ«Γ«αδÑ «ß«íÑ¡¡«ßΓ¿ ¡á»¿ßá¡¿∩ »α«úαá¼¼ ¡á ∩ºδ¬Ñ æ¿ ó Äæ äѼ«ß-2
- .na
- ¡Ññ«»πßΓ¿¼δ 󽫪ѡ¡δÑ ¬«¼¼Ñ¡Γáα¿¿: /*.../*...*/...*/
- .na
- ßΓαá¡¡δÑ »α¿«α¿ΓÑΓδ: Ç&1==0 »«⌐¼ÑΓ ¬á¬: Ç & (1==0)
- .na
- ¡Ñ¿ºóÑßΓÑ¡ ¼«¼Ñ¡Γ óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ ++: B = (Ç++) + (Ç++);
- .na
- ¼«ª¡« «»¿ßáΓ∞ «ñ¿¡á¬«óδÑ ó¡ÑΦ¡¿Ñ ¿¼Ñ¡á ó αạδσ Σá⌐½áσ - íπñÑΓ 1 ∩τÑ⌐¬á
- .na
- ¿¼Ñ¡á Γ«½∞¬« 7 (8) íπ¬ó, αẽ¿τ¿∩ »«ß½Ñ 7 íπ¬ó ¿ú¡«α¿απÑΓ
- .na
- case - αáí«ΓáεΓ ¡Ñ ¬á¬ á½∞ΓÑα¡áΓ¿óδ, á ¬á¬ ¼ÑΓ¬¿
- .na
- π¬áºáΓѽ∞ != µÑ½«¼π, úáαá¡Γ¿α«óá¡« Γ«½∞¬« 0==null, ñá ¿ Γ« ¡Ñ óßÑúñá
- .na
- ñ½¿¡¡δÑ ß¿¼ó«½∞¡δÑ ¬«¡ßΓá¡Γδ Ç='ÇB' ºáó¿ß∩Γ «Γ »«α∩ñ¬á íá⌐Γ ó ß½«óÑ
- .na
- ¡Ñ¿ºóÑßΓÑ¡ »«α∩ñ«¬ óδτ¿ß½Ñ¡¿∩ B: F(G(),K()) ¿ Ç=F()+G()
- .na
- ¼«ª¡« «íαáΘáΓ∞ß∩ ¬ Σπ¡¬µ¿¿ ß ¡Ñ»αáó¿½∞¡δ¼ τ¿ß½«¼ áαúπ¼Ñ¡Γ«ó
- .na
- ¡Ñ½∞º∩ »α¿¼Ñ¡¿Γ∞ & ¬ register »ÑαѼѡ¡«⌐
- .na
- «í'ѬΓδ ó »á¼∩Γ¿ ¿ñπΓ ¡Ñ »«ñα∩ñ (¡Ñ ó »«α∩ñ¬Ñ «»¿ßá¡¿∩)
- .na
- ¡Ñ¿ºóÑßΓ¡« αáß»«½«ªÑ¡¿Ñ íá⌐Γ ó¡πΓα¿ ß½«óá (nuxi-»α«í½Ñ¼á)
- .na
- ¡Ñ¿ºóÑßΓÑ¡ »«α∩ñ«¬ αáß»αÑñѽѡ¿∩ í¿Γ«óδσ »«½Ñ⌐ ó¡πΓα¿ ß½«óá
- .na
- ó ¿¡¿µ¿á½¿ºáΓ«αáσ ¡áñ« π¬áºδóáΓ∞ Γ¿» ¬«¡ßΓá¡Γ
- .na
- ¼«úπΓ íδΓ∞ «ñ¿¡á¬«óδÑ ¿¼Ñ¡á »ÑαѼѡ¡δσ ó í½«¬Ñ ¿ ó¡Ñ Ñú«
- .na
- ½πτΦÑ ¡Ñ C&0377 A (unsigned)C
- .na
- º¡áτáΘ¿Ñ »α«íѽδ: A =-B ¿ A = -B
- .na
- ¬«¡ßΓá¡Γá 40000 íπñÑΓ óº∩Γá ¬á¬ unsigned, á ¡Ñ long
- .na
- ñ«»πßΓ¿¼δ ¬á¬ '"' Γᬠ¿ "'" ¬«¡ßΓαπ¬µ¿∩
- .na
- »πΓáεΓ: putc('A') ¿ putc("A")
- .na
- ¼«ª¡«: \1 \01 \001, ¡« ¡Ñ«ñ¡«º¡áτ¡«: "\12345"
- .na
- ¡á ¬«¡µÑ ßΓ᫬¿ ñ«½ªÑ¡ íδΓ∞ \<BK>, á ¡Ñ \(»α«íѽδ)<BK>
- .na
- char ¡Ñ µÑ½«Ñ: 0377 != '\0377'
- .na
- ñ½∩ απß߬¿σ íπ¬ó ¡ÑóÑα¡«: 'A' < 'ƒ'
- .na
- óß∩ áα¿Σ¼ÑΓ¿¬á ¼«ªÑΓ ¿ñΓ¿ ó double, Γ«½∞¬« σαá¡Ñ¡¿Ñ ó float
- .na
- ¼áßß¿ó != π¬áºáΓѽ∞ - ¡Ñ½∞º∩: char A[5],*P; A=P; ¼«ª¡«: P=A;
- .na
- ¿¼∩ Σπ¡¬µ¿¿ íѺ ߬«í«¬ - ºá¬«¡¡«Ñ óδαáªÑ¡¿Ñ(!?): exit(0); ¿ exit;
- .na
- ¼«ª¡« ó«ºóαáΘáΓ∞ Γ«½∞¬« π¬áºáΓѽ¿ ¡á static
- .na
- ¡Ñ½∞º∩ ¡á»¿ßáΓ∞ αѬπαß¿ó¡δ⌐ ¬½áßΓÑα
- .na
- ++++Ç ¡Ñºá¬«¡¡« (Ç - L=º¡áτÑ¡¿Ñ, ++Ç - ¡ÑΓ), ñáªÑ ++(++Ç)
- .na
- -Ç ñ½∩ unsigned ñáÑΓ 2**N-Ç
- .na
- Γ«½∞¬«: π¬áºáΓѽ∞+/-µÑ½«Ñ ¿ π¬áºáΓѽ∞-π¬áºáΓѽ∞, ¿¡áτÑ - τπΦ∞
- .na
- π¬áºáΓѽ∞ & (^1) ¼áßΦΓáí¿απÑΓß∩
- .na
- if( A < B < C ) ñáßΓ ß«óßѼ ¡Ñ Γ«, τΓ« ºáñπ¼á¡«
- .na
- ¿ß»«½∞º«óá¡¿Ñ ºá»∩Γ«⌐ if'ax ¿ Σπ¡¬µ¿∩σ: F(A,(B,C),D)
- .na
- ¼«ª¡« ßñѽáΓ∞ ¼«ñπ½∞ íѺ Σπ¡¬µ¿⌐ ó ¡Ñ¼ - Γ«½∞¬« ñá¡¡δÑ
- .na
- ¼áßß¿óδ íѺ úαá¡¿µ »«½¡«ßΓ∞ε φ¬ó¿óá½Ñ¡Γ¡δ π¬áºáΓѽ∩¼: char P[];
- .na
- ¼¡«ú«¼Ñα¡δ⌐ ¼áßß¿ó íѺ úαá¡¿µ - ¼«ª¡«: A[] [20], ¡Ñ½∞º∩: A[] []
- .na
- ¼«ª¡« «ñ¿¡á¬«óδÑ ¿¼Ñ¡á π »ÑαѼѡ¡δσ, ßΓαπ¬Γπα ¿ ¿σ »«½Ñ⌐
- .na
- ¡¿¬á¬ ¡Ñ½∞º∩ ¿¡¿µ¿á½¿º¿α«óáΓ∞ union'δ ¿ í¿Γ«óδÑ »«½∩
- .na
- »α¿ »ÑαÑñáτÑ π»αáó½Ñ¡¿∩ ó¡πΓα∞ í½«¬á »« ¼Ñ⪥ ¡ÑΓ ¿¡¿µ¿á½¿ºáµ¿¿
- .na
- ñóπß¼δ߽ѡ¡«ßΓ∞: if(...)...if(...)...else...;
- .na
- extern ¿ ¡Ñ extern ¼«ª¡« ß¼ÑΦ¿óáΓ∞
- .na
- static »ÑαѼѡ¡δÑ ¿ Σπ¡¬µ¿¿ ¡Ññ«ßΓπ»¡δ ¿º ñαπú¿σ Σá⌐½«ó
- .na
- #define...; - Γ¿»¿τ¡á∩ «Φ¿í¬á
- .na
- #defin'δ ¼«ª¡« »¿ßáΓ∞ »«ßαÑñ¿ ß-¬«¡ßΓαπ¬µ¿⌐
- .na
- ¡Ñ½∞º∩: #define A (...)... - ¡Ññ«»πßΓ¿¼ »α«íѽ
- .na
- ¬«¡ßΓαπ¬µ¿∩ µÑ½«Ñ->»«½Ñ ¡Ñ»ÑαÑ¡«ß¿¼á, ¡« »α¿¼Ñ¡∩ÑΓß∩ ó ñαá⌐óÑαáσ
- .na
- π¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε ¼«ª¡« »¿ßáΓ∞ íѺ &: exit;
- .na
- ¼«ª¡« »¿ßáΓ∞ óδαáªÑ¡¿Ñ íѺ »α¿ßóá¿óá¡¿∩: A+B;
- .na
- »αÑ«íαẫóá¡¿Ñ π¬áºáΓѽÑ⌐: (double*)malloc(...) - ¡Ñ íπñÑΓ óδαáó¡¿óá¡¿∩ !!
- .na
- ¡Ñ»ÑαÑ¡«ß¿¼δ ñ½¿¡¡δÑ ß¿¼ó«½∞¡δÑ ¬«¡ßΓá¡Γδ: 'AB' 'ABC'...
- .na
- ßΓαπ¬Γπαδ ó«ºóαáΘáεΓß∩ ¿º Σπ¡¬µ¿⌐ ¡ÑαÑÑ¡ΓÑαáíѽ∞¡«, ¬á¬ π¬áºáΓѽ¿
- .na
- ¼«ª¡« A=B ñ½∩ »ÑαѼѡ¡δσ ¿ ßΓαπ¬Γπα, ¡Ñ½∞º∩ ñ½∩ ¼áßß¿ó«ó
- .na
- Ñß½¿: unsigned A,B,C; Γ« ¡Ñφ¬ó¿óá½Ñ¡Γ¡«: A-C<B ¿ A<B+C
- .ºα 諼»¿½∩Γ«α ∩ºδ¬á æ¿ Äæ XENIX
- .Γ¼ 4 ÉÇçïêùêƒ îàåäô K&R ê èÄîÅêïƒÆÄÉÄî æê Äæ XENIX
- ---------------------------------------------------------------
- â½áóá ÄΓ½¿τ¿∩
- ó K&R
- ---------------------------------------------------------------
- 2.2 êñÑ¡Γ¿Σ¿¬áΓ«αδ αáß»«º¡áεΓß∩ »« »Ñαóδ¼ 31 ß¿¼ó«½á¼.
-
- 2.3 asm ¿ entry í«½∞ΦÑ ¡Ñ ¬½ετÑóδÑ ß½«óá. ì«óδÑ ¬½ετÑóδÑ
- ß½«óá: const, enum, void.
- 潫óá far, fortran, huge, near, pascal ¼«úπΓ
- íδΓ∞, á ¼«úπΓ ¿ ¡Ñ íδΓ∞ ¬½ετÑó묨 ß½«óἿ.
-
- 2.4.1 é »αÑ«íαẫóá¡¿¿ Γ¿»«ó ΦÑßΓ¡áñµáΓÑα¿τ¡δÑ ¿ ó«ß∞¼Ñα¿τ¡δÑ
- ¬«¡ßΓá¡Γδ óßÑúñá αáßß¼áΓα¿óáεΓß∩ ¬á¬ íѺº¡á¬«óδÑ µÑ½δÑ.
-
- 2.4.3 ä«»«½¡¿Γѽ∞¡« óóÑñÑ¡δ ß¿¼ó«½∞¡δÑ ¬«¡ßΓá¡Γδ: '\V', '\A',
- '\Xτ¿ß½«', úñÑ τ¿ß½« »αÑñßΓáó½∩ÑΓ ß«í«⌐ «ñ¡π, ñóÑ ¿½¿
- Γα¿ ΦÑßΓ¡áñµáΓÑα¿τ¡δÑ µ¿Σαδ.
- éßÑ ß¿¼ó«½∞¡δÑ ¬«¡ßΓá¡Γδ ¿¼ÑεΓ Γ¿» int, ¿ »α¿
- »αÑ«íαẫóá¡¿¿ Γ¿»«ó »α«¿ßσ«ñ¿Γ αáßΦ¿αÑ¡¿Ñ º¡á¬á.
-
- 2.6 Æ¿» short óßÑúñá ºá¡¿¼áÑΓ 16 í¿Γ, long - 32 í¿Γá.
- Æ¿» int ¡á »α«µÑßß«αáσ 8086/8088, 80186, 80286 ºá¡¿¼áÑΓ
- 16 í¿Γ, á ¡á 80386 ¿ 68000 - 32.
-
- 4 Æ¿» char º¡á¬«óδ⌐. Åα¿ »αÑ«íαẫóá¡¿¿ Γ¿»«ó π
- ¡Ñú« »α«¿ßσ«ñ¿Γ αáßΦ¿αÑ¡¿Ñ º¡á¬á. Å«ññÑনóáεΓß∩
- ñóá ¡«óδσ Γ¿»á: unsigned char ¿ unsigned long.
- ä«íáó½Ñ¡δ Γ¿»δ enum (»ÑαÑτ¿ß½¿¼δ⌐) ¿ void (»πßΓ«⌐).
-
- 6.4 àß½¿ αáºαÑΦÑ¡δ ¬½ετÑóδÑ ß½«óá near, far ¿ huge, ó
- »α«úαá¼¼Ñ ¼«úπΓ óßΓαÑτáΓ∞ß∩ π¬áºáΓѽ¿ αạ«⌐ ñ½¿¡δ.
- Ä»Ñαᵿ¿ ¡áñ ¡¿¼¿ ¼«úπΓ óδºδóáΓ∞ ¿σ »αÑ«íαẫóá¡¿Ñ.
-
- 6.5 è½ετÑó«Ñ ß½«ó« unsigned ¼«ªÑΓ π»«ΓαÑí½∩Γ∞ß∩ ¬á¬
- »α¿½áúáΓѽ∞¡«Ñ ¬ µÑ½δ¼ Γ¿»á¼ (int, long, short
- ¿ char). è«úñá ¿ß»«½∞ºπÑΓß∩ »α«ßΓ« ß½«ó« unsigned,
- Γ« »«ñαπºá¼ÑóáÑΓß∩ unsigned int.
-
- 6.6 ÅαÑ«íαẫóá¡¿Ñ Γ¿»«ó »« ßΓáαΦ¿¡ßΓóπ:
- 1. éßÑ float »αÑ«íαáºπεΓß∩ ó double.
- 2. àß½¿ ó óδαáªÑ¡¿¿ ÑßΓ∞ σ«Γ∩ íδ «ñ¿¡ double, óßÑ
- »αÑ«íαáºπÑΓß∩ ó double.
- 3. éßÑ char ¿ short »αÑ«íαáºπεΓß∩ ó int.
- 4. éßÑ unsigned char ¿ unsigned short »αÑ«íαáºπεΓß∩ ó
- unsigned int.
- 5. àß½¿ ó óδαáªÑ¡¿¿ ÑßΓ∞ σ«Γ∩ íδ «ñ¿¡ unsigned long,
- óßÑ »αÑ«íαáºπÑΓß∩ ó unsigned long.
- 6. àß½¿ ó óδαáªÑ¡¿¿ ÑßΓ∞ σ«Γ∩ íδ «ñ¿¡ long, óßÑ
- »αÑ«íαáºπÑΓß∩ ó long.
- 7. àß½¿ ó óδαáªÑ¡¿¿ ÑßΓ∞ σ«Γ∩ íδ «ñ¿¡ unsigned int,
- óßÑ »αÑ«íαáºπÑΓß∩ ó unsigned int.
- ä«»π߬áεΓß∩ »αÑ«íαẫóá¡¿∩ ¼Ñªñπ π¬áºáΓѽ∩¼¿ αạ«⌐
- ñ½¿¡δ ó ß½πτáÑ, Ñß½¿ π»«ΓαÑí½∩εΓß∩ near, far ¿ huge.
-
- 7.2 éßó∩º¿ ß «»ÑαᵿÑ⌐ sizeof ¼«ª¡« ºá¼ÑΓ¿Γ∞, τΓ« íá⌐Γ
- ¿¼ÑÑΓ 8 í¿Γ.
-
- 7.14 àßΓ∞ »α¿ßóá¿óá¡¿Ñ ßΓαπ¬Γπα.
-
- 8.2 æ»Ñµ¿Σ¿µ¿α«óá¡δ ¬½ετÑóδÑ ß½«óá enum ¿ void.
- è½ετÑó«Ñ ß½«ó« unsigned ¼«ªÑΓ π»«ΓαÑí½∩Γ∞ß∩
- ß½ÑñπεΘ¿¼ «íαẫ¼:
- unsigned char
- unsigned short
- unsigned short int
- unsigned int
- unsigned long
- unsigned long int
-
- 8.4 Æ¿»δ áαúπ¼Ñ¡Γ«ó ¼«úπΓ íδΓ∞ ó¬½ετÑ¡δ ó ß»¿ß«¬ »áαá¼ÑΓα«ó
- Σπ¡¬µ¿¿ ñ½∩ π¬áºá¡¿∩ ¬«¼»¿½∩Γ«απ τ¿ß½á ¿ Γ¿»á áαúπ¼Ñ¡Γ«ó
- »α¿ ó맮óÑ.
-
- 8.5 éßÑ í¿Γ«óδÑ »«½∩ unsigned. ê¼Ñ¡á τ½Ñ¡«ó ßΓαπ¬Γπα ¿
- «íΩÑñ¿¡Ñ¡¿⌐ ¡Ñ «í∩ºáΓѽ∞¡« ñ«½ª¡δ «Γ½¿τáΓ∞ß∩ «Γ ¿¼Ñ¡
- ßἿσ ßΓαπ¬Γπα ¿ «íΩÑñ¿¡Ñ¡¿⌐, á Γá¬ªÑ «Γ ¿¼Ñ¡ »ÑαѼѡ¡δσ
- ìÑ ßπΘÑßΓóπÑΓ óºá¿¼«ßó∩º¿ ¼Ñªñπ τ½Ñ¡á¼¿ ñóπσ αạδσ
- ßΓαπ¬Γπα.
-
- 8.6 ÄíΩÑñ¿¡Ñ¡¿∩ ¿¡¿µ¿á½¿º¿απεΓß∩ π¬áºá¡¿Ñ¼ º¡áτÑ¡¿∩ »Ñαó«ú«
- τ½Ñ¡á.
-
- 9.7 éδαáªÑ¡¿Ñ «»ÑαáΓ«αá switch ¼«ªÑΓ ¿¼ÑΓ∞ αẼÑα int ¿½¿
- ¬«α«τÑ. 髺¼«ª¡δ óδαáªÑ¡¿∩ ß Γ¿»«¼ enum. èáªñ«Ñ
- ¬«ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ ó case »« Γ¿»π ñ«½ª¡« ß«ó»áñáΓ∞ ß
- ß óδαáªÑ¡¿Ñ¼ ó switch.
-
- 12 îѪñπ # ¿ ñ¿αÑ¬Γ¿ó«⌐ »αÑ»α«µÑßß«αá ¼«ªÑΓ íδΓ∞ ½εí«Ñ
- τ¿ß½« »α«íѽ«ó ¿ Γáíπ½∩µ¿⌐.
- ä«íáó½Ñ¡á ñ¿αÑ¬Γ¿óá #pragma.
-
- 12.3 Ä»αÑñÑ½Ñ¡á ¬«¡ßΓαπ¬µ¿∩ #Φá defined(¿ñÑ¡Γ¿Σ¿¬áΓ«α) ó
- «»ÑαáΓ«αÑ #if, ΓᬠτΓ« #ifdef ¿ #ifndef ¼«ª¡« ¡Ñ
- ¿ß»«½∞º«óáΓ∞.
- ä«íáó½Ñ¡ #elif (else-if).
-
- 14.1 æΓαπ¬Γπαá ¿½¿ «íΩÑñ¿¡Ñ¡¿Ñ ¼«úπΓ »α¿ßóá¿óáΓ∞ß∩ ¿
- »ÑαÑñáóáΓ∞ß∩ Σπ¡¬µ¿∩¼ ó ¬áτÑßΓóÑ »áαá¼ÑΓα«ó.
- é óδαáªÑ¡¿¿, ó¬½ετáεΘѼ ->, óδαáªÑ¡¿Ñ ß½Ñóá «Γ ßΓαѽ¬¿
- ñ«½ª¡« íδΓ∞ Γ¿»á Γ«⌐ ªÑ ßΓαπ¬Γπαδ, ó ¬«Γ«α«⌐ «»¿ßá¡
- τ½Ñ¡ ß»αáóá «Γ ßΓαѽ¬¿.
-
- 17 ÅÑαÑτ¿ß½Ñ¡¡δÑ á¡áσα«¡¿º¼δ ¡Ñ αáß»«º¡áεΓß∩.
- # 髺¼«ª¡« ¿ß»«½∞º«óá¡¿Ñ ΓÑσ ªÑ ¼«ñѽÑ⌐ »á¼∩Γ¿, τΓ« ¿ ó MSC.
- ä½∩ ß«ºñá¡¿∩ »α«úαá¼¼, óδ»«½¡∩Ѽδσ »«ñ π»αáó½Ñ¡¿Ñ¼ MS-DOS,
- ßπΘÑßΓóπÑΓ «»µ¿∩ ¬«¼»¿½∩Γ«αá -dos.
-
- .ºα 諼»¿½∩Γ«α ∩ºδ¬á æê Äæ AIX
- # Ä»Ñαᵿ«¡¡δ∩ ß¿ΓѼá AIX »αÑñßΓáó½∩ÑΓ ß«í«⌐ óáα¿á¡Γ Äæ UNIX SYSTEM V,
- ß ¡Ñ¬«Γ«α묨 ñ«íáó½Ñ¡¿∩¼¿ ¿º OC UNIX 4.2BSD, αÑ὿º«óá¡¡á∩ Σ¿α¼«⌐ IBM
- ñ½∩ ßó«Ñ⌐ ¥éî IBM RT PC (IBM 6150).
- # é Äæ AIX ¿¼ÑÑΓß∩ 4 ó¿ñá ¬«¼»¿½∩Γ«αá ∩ºδ¬á æ¿: ææ, FCC, VCC, SCC.
- Äß¡«ó¡δ¼ ¬«¼»¿½∩Γ«α«¼ ∩ó½∩ÑΓß∩ ¬«¼»¿½∩Γ«α ææ. ÄßΓá½∞¡δÑ ¬«¼»¿½∩Γ«αδ ¿ß»«½∞ºπεΓß∩ ñ½∩ ߻ѵ¿á½∞¡δσ »α¿½«ªÑ¡¿⌐.
- (FCC - ñ½∩ »«½πτÑ¡¿∩ »α«úαá¼¼, αáí«ΓáεΘ¿σ ß á»»áαáΓ¡δ¼ π߬«α¿ΓѽѼ »½áóáεΘÑ⌐ Γ«τ¬¿;
- VCC - ñ½∩ »«½πτÑ¡¿∩ «íΩÑ¬Γ¡δσ Σá⌐½«ó ó Σ«α¼áΓÑ VRM, SCC - ñ½∩ »«½πτÑ¡¿∩
- stand-alone-«¡«ó߬¿σ »α«úαá¼¼.
- # Å« Σ«α¼áΓπ ó맮óá ¬«¼»¿½∩Γ«α ææ »αá¬Γ¿τÑ߬¿ ¡Ñ «Γ½¿τáÑΓß∩ «Γ
- á¡á½«ú¿τ¡«ú« ¬«¼»¿½∩Γ«αá Äæ äѼ«ß-2. æ«ßΓáó í¿í½¿«ΓѬ¿ ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐
- »αá¬Γ¿τÑ߬¿ ¡Ñ «Γ½¿τáÑΓß∩ «Γ í¿í½¿«ΓѬ¿ ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐ Äæ äàîÄæ-2.
- Åα¿ ¡á»¿ßá¡¿¿ φ¬αá¡¡δσ »α«úαá¼¼, ß½ÑñπÑΓ ¿¼ÑΓ∞ óó¿ñπ, τΓ« Σá⌐½á /etc/termcap
- ó ßΓá¡ñáαΓ¡«⌐ »«ßΓáó¬Ñ Äæ AIX ¡ÑΓ, σ«Γ∩ ¿¼ÑÑΓß∩ í¿í½¿«ΓѬá CURSES,
- á¡á½«ú¿τ¡á∩ φΓ¿¼ ªÑ í¿í½¿«ΓÑ¬á¼ Äæ äàîÄæ-2 ¿ Äæ XENIX.
- ìá ¥éî IBM RT PC
- αÑ὿º«óá¡δ ß½ÑñπεΘ¿Ñ ß¬á½∩α¡δÑ Γ¿»δ ñá¡¡δσ:
- .Γ¼ 3 ÉẼÑα ߬á½∩α¡δσ Γ¿»«ó ñá¡¡δσ ¥éî IBM RT PC
- {
- 3
- $ 8 Æ¿»
- $ 12 ÉẼÑα
- $ 20 ìáτá½∞¡á∩ úαá¡¿µá
- &
- @ char
- @ 8 αáºαáñ«ó
- @ úαá¡¿µá íá⌐Γá
- &
- @ short
- @ 16 αáºα∩ñ«ó
- @ »«½πß½«ó«
- &
- @ int
- @ 32 αáºα∩ñá
- @ ß½«ó«
- &
- @ long
- @ 32 αáºα∩ñá
- @ ß½«ó«
- &
- @ float
- @ 32 αáºα∩ñá
- @ ß½«ó«
- &
- @ double
- @ 64 αáºα∩ñá
- @ ß½«ó«
- }
- # æ¿¡Γá¬ß¿ß αÑ὿º«óá¡¡«ú« ∩ºδ¬á æ¿ »αá¬Γ¿τÑ߬¿ ¡Ñ «Γ½¿τáÑΓß∩ «Γ
- «»¿ßá¡¡«ú« ó K&R. æ¿¡Γá¬ß¿ß ∩ºδ¬«ó YACC ¿ LEX á¡á½«ú¿τÑ¡
- αÑ὿ºáµ¿∩¼ Äæ äѼ«ß-2.
- .ºα 諼»¿½∩Γ«α ∩ºδ¬á æê ñ½∩ HP9000
- # é φΓ«¼ αáºñÑ½Ñ «»¿ßá¡δ ¼áΦ¿¡¡«-ºáó¿ß¿¼δÑ «ß«íÑ¡¡«ßΓ¿ αÑ὿ºáµ¿¿ ∩ºδ¬á æ¿
- ¡á ¥éî HP 9000 (ñá½ÑÑ »« ΓѬßΓπ
- HP-C).
- # é
- HP-C
- αÑ὿º«óá¡δ ß½ÑñπεΘ¿Ñ ß¬á½∩α¡δÑ Γ¿»δ ñá¡¡δσ:
- .Γ¼ 3 ÉẼÑα ߬á½∩α¡δσ Γ¿»«ó ñá¡¡δσ ¥éî HP9000
- {
- 3
- $ 8 Æ¿»
- $ 12 ÉẼÑα
- $ 20 ìáτá½∞¡á∩ úαá¡¿µá
- &
- @ char
- @ 8 αáºαáñ«ó
- @ úαá¡¿µá íá⌐Γá
- &
- @ short
- @ 16 αáºα∩ñ«ó
- @ »«½πß½«ó«
- &
- @ int
- @ 32 αáºα∩ñá
- @ ß½«ó«
- &
- @ long
- @ 32 αáºα∩ñá
- @ ß½«ó«
- &
- @ float
- @ 32 αáºα∩ñá
- @ ß½«ó«
- &
- @ double
- @ 64 αáºα∩ñá
- @ ß½«ó«
- }
- # Æ¿» char ¿¼ÑÑΓ º¡á¬«ó«Ñ αáßΦ¿αÑ¡¿Ñ (¬á¬ ¡á æî-4).
- ÅαÑΣ¿¬ß register »ÑαÑñ «»¿ß᡿Ѽ »ÑαѼѡ¡«⌐ ¿ú¡«α¿απÑΓß∩, Γᬠ¬á¬
- ¥éî HP9000 ¿¼ÑÑΓ ßΓѬ«óπε áασ¿ΓѬΓπαπ. ÅÑαÑ»«½¡Ñ¡¿Ñ µÑ½δσ ¡Ñ óδºδóáÑΓ
- «Φ¿í¬¿, á ñѽѡ¿Ñ ¡á 0 Σ¿¬ß¿απÑΓß∩ ¬á¬ «Φ¿í¬á. Éáºα∩ñδ ó »«½∩σ
- ¡π¼ÑαπεΓß∩ ß½Ñóá ¡á»αáó«.
- # é
- HP-C ¿¼ÑεΓß∩ ß½ÑñπεΘ¿Ñ «úαá¡¿τÑ¡¿∩:
- .φí 1
- ñ½¿¡á ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ñ« 16 ½¿ΓÑα (ó¡ÑΦ¡Ñú« - ñ« 15 ½¿ΓÑα);
- .φí 1
- «í½áßΓ∞ »«ñ »ÑαѼѡ¡δÑ »α«µÑñπαδ ¿ «í½áßΓ∞ »«ñ »áαá¼ÑΓαδ ó맮óá ¡Ñ
- »αÑó«ßσ«ñ¿Γ ¬áªñá∩ 2**19 (2 ó 19 ßΓѻѡ¿) íá⌐Γ«ó;
- .φí 1
- ¬«ñ óÑΓó∩ΘÑ⌐ß∩ ¬«¡ßΓαπ¬µ¿¿ ¡Ñ »αÑó«ßσ«ñ¿Γ 2**18 íá⌐Γ«ó;
- .φí 1
- Σπ¡¬µ¿∩ ¡Ñ ¼«ªÑΓ ó«ºóαáΘáΓ∞ ßΓαπ¬Γπαπ, í«½∞Φπε τѼ 2**24 íá⌐Γá;
- .φí 1
- ó «ñ¡π ¬«¼»¿½∩µ¿ε ñ«»πßΓ¿¼« ó¬½ετáΓ∞ ¡Ñ í«½ÑÑ 255 »α«µÑñπα;
- .φí 1
- æ-¬«¼»¿½∩Γ«α »«α«ªñáÑΓ ¡Ñ í«½ÑÑ 32767 ßΓ᫬ áßßѼí½Ñα¡«ú« ¬«ñá;
- .φí 1
- »«ñ ú½«íá½∞¡δÑ ß¬á½∩α¡δÑ ñá¡¡δÑ (ó¬½ετá∩ ßΓáΓ¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ)
- «Γó«ñ¿Γß∩ ¡Ñ í«½ÑÑ 2**19 íá⌐Γ«ó.
- # ÉѪ¿¼ ¬«¼»¿½∩Γ«αá -v »«ºó«½∩ÑΓ ¡áí½εñáΓ∞ ºá »α«µÑßß«¼ ¬«¼»¿½∩µ¿¿.
- ÄΦ¿í¬¿ »Ñα¿«ñá áßßÑ¼í½¿α«óá¡¿∩ »«¼ÑΘáεΓß∩ ó Σá⌐½ /tmp/ctm3x.
- # Åα¿ »ÑαÑ¡«ßÑ æ-»α«úαá¼¼ ¡á HP9000 ß ñαπú¿σ ¥éî ¡Ñ«íσ«ñ¿¼« πτ¿ΓδóáΓ∞
- ß½ÑñπεΘÑÑ:
- .φí 1
- ¡á HP9000 «ΓßπΓßΓóπÑΓ »ÑαÑß佬á íá⌐Γ«ó;
- .φí 1
- αế¼Ñ¡«óá¡¿Ñ ¡π½Ñó«ú« ¿¼Ñ¡¿ ¬á¬ ñ½∩ τΓÑ¡¿∩, Γᬠ¿ ñ½∩ ºá»¿ß¿ »«α«ªñáÑΓ
- «Φ¿í¬π ¿ß»«½¡Ñ¡¿∩ (Γ«úñá ¬á¬ ¡á ñαπú¿σ ¥éî »α¿ τΓÑ¡¿¿ óδñáÑΓß∩ 0);
- .φí 1
- ß½ÑñπÑΓ «ßΓÑαÑúáΓ∞ß∩ áíß«½εΓ¡«⌐ áñαÑßᵿ¿, Γ.¬. á»»áαΓ¡á∩ áñαÑßᵿ∩
- ¡á HP9000 «Γ½¿τáÑΓß∩ «Γ ñαπú¿σ ¥éî;
- .φí 1
- σ«Γ∩ ßΓѬ αáß»«½áúáÑΓß∩ »« ó«ºαáßΓá¡¿ε áñαÑß«ó, ¡« »áαá¼ÑΓαδ ºáúαπªáεΓß∩
- ó ßΓѬ »« πíδóá¡¿ε áñαÑß«ó, Γ.Ñ. »α¿ ¿ß»«½∞º«óá¡¿¿ ¿¼Ñ¡¿ ¡á ß»¿ß«¬
- »áαá¼ÑΓα«ó ¡Ñ«íσ«ñ¿¼« ¿¼∩ »«Φáú«ó« π¼Ñ¡∞ΦáΓ∞.
- .ºα æ«óÑΓδ »« ¡á»¿ßá¡¿ε ¼«í¿½∞¡δσ »α«úαá¼¼
- .º» 1
- î«í¿½∞¡«ßΓ∞ »α«úαá¼¼
- # Åα«úαá¼¼á ¼«í¿½∞¡á, Ñß½¿ «¡á ¼«ªÑΓ íδΓ∞ πß»ÑΦ¡« «Γ¬«¼»¿½¿α«óá¡á ¿
- óδ»«½¡Ñ¡á ¡á αẽ¿τ¡δσ ¥éî íѺ »ÑαÑñѽ¬¿. æπΘÑßΓóπÑΓ ¡Ñ߬«½∞¬« ß»«ß«í«ó ¡á»¿ßá¡¿∩
- ¼«í¿½∞¡δσ »α«úαá¼¼. ÅÑαóδ⌐ - ¿ºíÑúáΓ∞. »α¿ßπΘ¿Ñ ∩ºδ¬π ¡Ñ ¿«í¿½∞¡δÑ «ß«íÑ¡¡«ßΓ¿.
- éΓ«α«⌐ - ¿ºíÑúáΓ∞ ¡Ñ¼«í¿½∞¡«ú« óºá¿¼«ñÑ⌐ßΓó¿∩ ß «¬απªÑ¡¿Ñ¼, Γᬿ¼
- ¬á¬ óó«ñ/óδó«ñ ¡á ¡ÑßΓá¡ñáαΓ¡δÑ πßΓα«⌐ßΓóá. ìá»α¿¼Ñα, »α«úαá¼¼δ ¡Ñ ñ«½ª¡δ
- ß«ñÑαªáΓ∞ ó¡πΓα¿ ßÑí∩ »«½¡δÑ ¿¼Ñ¡á Σá⌐½«ó, ºá ¿ß¬½ετÑ¡¿Ñ¼ «íΘ¿σ ó« óßÑσ
- ß¿ßΓѼáσ (Γᬿσ ¬á¬ /etc/passwd).
- # öá⌐½δ ΓαÑíπѼδÑ ó« óαѼ∩ ¬«¼»¿½∩µ¿¿¿ (Γ.Ñ. include files) Γá¬ªÑ ¼«úπΓ íδ∞
- ¡Ñ ¼«í¿½∞¡δ¼¿, Γᬠ¡Ñ óßÑ «¡¿ ¼«úπΓ íδΓ∞ ¡á αạδσ ¼áΦ¿¡áσ.
- é ¡Ñ¬«Γ«αδσ ß½πτá∩σ include-Σá⌐½δ ß«ñÑαªáΓ ¼áΦ¿¡¡δÑ »áαá¼ÑΓαδ, ¬«Γ«αδÑ ¼«úπΓ
- ¿ß»«½∞º«óá¡δ ñ½∩ ß«ºñá¡¿∩ ¿ßσ«ñ¡δσ ¼«í¿½∞¡δσ »α«úαá¼¼.
- .º» 1
- Ç»»áαáΓ¡«Ñ «íÑß»ÑτÑ¡¿Ñ
- # Éẽ¿τ¿∩ ó á»»áαáΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ ¿ß»«½∞ºπѼδσ ¼áΦ¿¡ ¿ αẽ¿τ¿∩
- ó ß««ΓóÑΓßΓóπεΘ¿σ æ-¬«¼»¿½∩Γ«αáσ óδºδóáεΓ í«½∞Φ«Ñ ¬«½¿τÑßΓó« »α«í½Ñ¼
- »« »ÑαÑ¡«ß¿¼«ßΓ¿. äá¡¡δ⌐ »«ñαáºñѽ »«ßó∩ΘÑ¡ »ÑαÑτ¿ß½Ñ¡¿ε Γᬿσ «íΘ¿σ
- »α«í½Ñ¼ »ÑαÑ¡«ß¿¼«ßΓ¿ ñ½∩ ß¿ßΓѼ XENIX.
- .º» 2
- 使¡á íá⌐Γá
- # Å« «»αÑñѽѡ¿ε, Γ¿» ñá¡¡δσ char ó C ñ«½ªÑ¡ íδΓ∞ ñ«ßΓáΓ«τ¡« í«½∞Φ¿¼ ñ½∩
- σαá¡Ñ¡¿∩ ó ó¿ñÑ »«½«ª¿Γѽ∞¡«ú« µÑ½«ú« ½εí«ú« τ½Ñ¡á ¼¡«ªÑßΓóá ¼áΦ¿¡¡δσ
- ß¿¼ó«½«ó. ä½∩ ¼áΦ¿¡, «»¿ßá¡¡δσ ó ñá¡¡«¼ »α¿½«ªÑ¡¿¿, αẼÑα char αáóÑ¡
- 8-í¿Γ¡«¼π íá⌐Γπ.
- .º» 2
- 使¡á ß½«óá
- # é æ αẼÑαδ «ß¡«ó¡δσ Γ¿»«ó ñá¡¡δσ ñ½∩ ºáñá¡¡«⌐ αÑ὿ºáµ¿¿ Σ«α¼á½∞¡« ¡Ñ
- «»αÑñѽѡδ. Æá¬¿¼ «íαẫ¼, «¡¿ «íδτ¡« ß½ÑñπεΓ ¡á¿í«½ÑÑ ÑßΓÑßΓóÑ¡¡«¼π
- αẼÑαπ ñ½∩ ¿ß»«½∞ºπѼ«⌐ ¼áΦ¿¡δ. æ πóÑαÑ¡¡«ßΓ∞ε ¼«ª¡« »αÑñ»«½«ª¿Γ∞,
- τΓ« short ¡Ñ íπñÑΓ ñ½¿¡¡ÑÑ, τѼ long. èα«¼Ñ φΓ«ú« ¡¿τÑú« ß πóÑαÑ¡¡«ßΓ∞ε
- ߬áºáΓ∞ ¡Ñ½∞º∩. ìá»α¿¼Ñα, ¡á ¡Ñ¬«Γ«αδσ ¼áΦ¿¡áσ short »« ñ½¿¡Ñ ß«ó»áñáÑΓ
- ß int, Γ«úñá ¬á¬ ñ½∩ ñαπú¿σ »« ñ½¿¡Ñ ß«ó»áñáεΓ long ¿ int.
- # Åα«úαá¼¼δ, ñ½∩ ¬«Γ«αδσ ¡Ñ«íσ«ñ¿¼« º¡áΓ∞ αẼÑα τáßΓ¡«ú« Γ¿»á ñá¡¡δσ,
- ñ«½ª¡δ »« 󫺼«ª¡«ßΓ¿ ¿ºíÑúáΓ∞ ¼áΦ¿¡¡«-ºáó¿ß¿¼δσ ¬«¡ßΓá¡Γ.
- Æá¬á∩ ¿¡Σ«α¼áµ¿∩ «íδτ¡« ¼«ªÑΓ íδΓ∞ ¡á»¿ßá¡á ñ«ßΓáΓ«τ¡« »ÑαÑ¡«ß¿¼δ¼ ß»«ß«í«¼.
- ìá»α¿¼Ñα, ¼á¬ß¿¼á½∞¡«Ñ »«½«ª¿Γѽ∞¡«Ñ µÑ½«Ñ (ñ½∩ ñóπσ ¬«¼»½Ñ¬Γ«ó ¼áΦ¿¡)
- ¼«ªÑΓ íδΓ∞ »«½πτÑ¡« ß½ÑñπεΘ¿¼ «íαẫ¼:
- # #define MAXPOS ((int)(((unsigned)-1)>>1))
- # ¥Γ« »αÑñ»«τΓ¿Γѽ∞¡Ñ⌐, τѼ, ¡á»α¿¼Ñα, ß½ÑñπεΘÑÑ:
- .«Σ
- #ifdef PDP11
- #define MAXPOS 32767
- #else
- ...
- #endif
-
- # ä½∩ «»αÑñѽѡ¿∩ τ¿ß½á íá⌐Γ«ó ó int ¿ß»«½∞ºπ⌐ΓÑ ½πτΦÑ "sizeof(int)",
- τѼ 2, 4 ¿½¿ ¬á¬¿Ñ-Γ« ñαπú¿Ñ ¡Ñ»ÑαÑ¡«ß¿¼δÑ ¬«¡ßΓá¡Γδ.
- .º» 2
- éδαáó¡¿óá¡¿Ñ »α¿ σαá¡Ñ¡¿¿
- # ƒºδ¬ æ ¡Ñ «»αÑñѽ∩ÑΓ τáßΓ¡«⌐ ßσѼδ ñ½∩ σαá¡Ñ¡¿∩ φ½Ñ¼Ñ¡Γ«ó ñá¡¡δσ
- «Γ¡«ß¿Γѽ∞¡« «ñ¿¡ ñαπú«ú«, ¿½¿ ñ½∩ σαá¡Ñ¡¿∩ φ½Ñ¼Ñ¡Γ«ó ßΓαπ¬Γπα ¿½¿
- «íΩÑñ¿¡Ñ¡¿⌐ ó¡πΓα¿ ßΓαπ¬Γπαδ ¿½¿ «íΩÑñ¿¡Ñ¡¿∩.
- # ìѬ«Γ«αδÑ CPU, Γá¬¿Ñ ¬á¬ PDP-11 ¿ M68000, ΓαÑíπεΓ, τΓ«íδ Γ¿»δ ñá¡¡δσ
- ñ½¿¡¡ÑÑ «ñ¡«ú« íá⌐Γá í뫨 óδαáó¡Ñ¡δ »« «ñ¿¡á¬«óδ¼ úαá¡¿µá¼ áñαÑß«ó íá⌐Γ«ó.
- äαπú¿Ñ, Γá¬¿Ñ ¬á¬ 8086 ¿ VAX-11, ¡Ñ ¿¼ÑεΓ Γᬿσ «úαá¡¿τÑ¡¿⌐ »« á»»áαáΓπαÑ.
- Äñ¡á¬«, ñáªÑ ¡á φΓ¿σ ¼áΦ¿¡áσ í«½∞Φ¿¡ßΓó« ¬«¼»¿½∩Γ«α«ó úÑ¡Ñα¿απÑΓ ¬«ñ,
- ¬«Γ«αδ⌐ óδαáó¡¿óáÑΓ ß½«óá, ßΓαπ¬Γπαδ, ¼áßß¿óδ ¿ ñ½¿¡¡δÑ ß½«óá »«
- αáó¡δ¼ áñαÑßá¼ ¿½¿ αáó¡δ¼ ñ½¿¡¡δ¼ áñαÑßá¼. Æá¬¿¼ «íαẫ¼, ¡á VAX-11
- ß½ÑñπεΘá∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ¬«ñá ñáßΓ 8, σ«Γ∩ á»»áαáΓπαá VAX »«ºó«½∩ÑΓ
- «ßπΘÑßΓó¿Γ∞ ñ«ßΓπ» ¬ int (4-íá⌐Γ¡«¼π ß½«óπ) ß ½εí«ú« ¡áτá½∞¡«ú«
- Σ¿º¿τÑ߬«ú« áñαÑßá:
- .«Σ
- struct s_tag {
- char c;
- int i;
- };
- printf("%d\n",sizeof(s_tag));
-
- # ¥Γ« ¿º¼Ñ¡Ñ¡¿Ñ ó σαá¡Ñ¡¿¿ ñá¡¡δσ ó «ß¡«ó¡«¼ »«ñαáºπ¼ÑóáÑΓ,
- τΓ« ñá¡¡δÑ, ¬ ¬«Γ«αδ¼ «ßπΘÑßΓó½∩ÑΓß∩ ñ«ßΓπ» ¬á¬ ¬ ¡Ñ»α«ßΓδ¼ Γ¿»á¼ ñá¡¡δσ,
- ∩ó½∩εΓß∩ ¡Ñ»ÑαÑ¡«ß¿¼δ¼¿, ¿ ¬«ñ, ¬«Γ«αδ⌐ »«½πτáÑΓ »αÑ¿¼πΘÑßΓóá «Γ
- áασ¿ΓѬΓπαδ τáßΓ¡«⌐ ¼áΦ¿¡δ, Γá¬ªÑ ¡Ñ»ÑαÑ¡«ß¿¼.
- # Æá¬¿¼ «íαẫ¼, «íΩÑñ¿¡Ñ¡¿∩, ß«ñÑαªáΘ¿Ñ ßΓαπ¬Γπαδ, ∩ó½∩εΓß∩ ¡Ñ»ÑαÑ¡«ß¿¼δ¼¿,
- Ñß½¿ «íΩÑñ¿¡Ñ¡¿Ñ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «ßπΘÑßΓó½Ñ¡¿∩ ñ«ßΓπ»á ¬ «ñ¡¿¼ ¿ ΓѼ ªÑ ñá¡¡δ¼
- αẽ¿τ¡δ¼¿ ß»«ß«íἿ. ÄíΩÑñ¿¡Ñ¡¿∩ ¼«úπΓ íδΓ∞ »ÑαÑ¡«ß¿¼δ, Ñß½¿
- «¡¿ ¿ß»«½∞ºπεΓß∩ ñ½∩ αẼÑΘÑ¡¿∩ αẽ¿τ¡δσ ñá¡¡δσ ó «ñ¡«¼ ¿ Γ«¼ ªÑ
- »α«ßΓαá¡ßΓóÑ ó αẽ¿τ¡δÑ ¼«¼Ñ¡Γδ óαѼѡ¿. ìá»α¿¼Ñα, Ñß½¿ ß½ÑñπεΘÑÑ «íΩÑñ¿¡Ñ¡¿Ñ
- íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ »«½πτÑ¡¿∩ 4 íá⌐Γ ¿º ñ½¿¡¡«ú« ß½«óá, ¬«ñ ¡Ñ íπñÑΓ
- »Ñα¡«ß¿¼:
- .«Σ
- union {
- char c[4];
- long lw;
- }u;
-
- # Ä»ÑαáΓ«α sizeof ñ«½ªÑ¡ óßÑúñá ¿ß»«½∞º«óáΓ∞ß∩ »α¿ τΓÑ¡¿¿ ¿ ºá»¿ß¿ ßΓαπ¬Γπα:
- .«Σ
- struct s_tag st;
- ...
- write(fd,&st,sizeof(st));
-
- # ¥Γ« «íÑß»Ñτ¿Γ »ÑαÑ¡«ß¿¼«ßΓ∞ ¿ßσ«ñ¡«ú« ¬«ñá. ¥Γ« ¡Ñ »«ºó«½¿Γ ß«ºñáΓ∞
- »ÑαÑ¡«ß¿¼δ⌐ Σá⌐½ ñá¡¡δσ. ÅÑαÑ¡«ß¿¼«ßΓ∞ ñá¡¡δσ íπñÑΓ αáßß¼«ΓαÑ¡á ó «ñ¡«¼ ¿º
- »«ß½ÑñπεΘ¿σ »«ñαáºñѽ«ó.
- # ÄΓ¼ÑΓ¿¼, τΓ« «»ÑαáΓ«α sizeof ó«ºóαáΘáÑΓ τ¿ß½« íá⌐Γ, ¬á¬«Ñ «íΩÑ¬Γ íπñÑΓ
- ºá¡¿¼áΓ∞ ó ¼áßß¿óÑ. Æá¬¿¼ «íαẫ¼, ¡á ¼áΦ¿¡áσ, úñÑ ßΓαπ¬Γπαδ óßÑúñá
- óδαáó¡Ñ¡δ »« úαá¡¿µÑ ¡áτá½á ß½«óá ó »á¼∩Γ¿, «»ÑαáΓ«α sizeof íπñÑΓ ó¬½ετáΓ∞
- ¡Ñ«íσ«ñ¿¼«Ñ ñ«»«½¡Ñ¡¿Ñ ñ« ¡ÑÑ ó ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ, ñáªÑ ó Γ«¼ ß½πτáÑ,
- Ñß½¿ ñ«»«½¡Ñ¡¿Ñ óßΓαÑΓ¿½«ß∞ »«ß½Ñ óßÑσ »«½Ñº¡δσ ñá¡¡δσ ó ßΓαπ¬ΓπαÑ.
- ¥Γ« ß½πτáÑΓß∩ ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, ∩ó½∩ÑΓß∩ ¿½¿ ¡ÑΓ áαúπ¼Ñ¡Γ ñÑ⌐ßΓó¿Γѽ∞¡«
- φ½Ñ¼Ñ¡Γ«¼ ¼áßß¿óá.
- .º» 2
- Å«α∩ñ«¬ íá⌐Γ«ó ó ß½«óÑ
- # 꺼ѡѡ¿∩ ó »«α∩ñ¬Ñ íá⌐Γ«ó ó ß½«óÑ ó«ºñÑ⌐ßΓóπÑΓ ¡á »ÑαÑ¡«ß¿¼«ßΓ∞ ñá¡¡δσ
- í«½∞ΦÑ, τѼ »ÑαÑ¡«ß¿¼«ßΓ∞ ¿ßσ«ñ¡«ú« ¬«ñá. ïεíá∩ »α«úαá¼¼á, ¬«Γ«αá∩
- ¿ß»«½∞ºπÑΓ ó¡πΓαÑ¡¡¿⌐ »«α∩ñ«¬ íá⌐Γ«ó ó ß½«óÑ, ¡Ñ »ÑαÑ¡«ß¿¼á.
- ìá»α¿¼Ñα, ó ¡Ñ¬«Γ«αδσ ß¿ßΓѼáσ ßπΘÑßΓóπÑΓ include-Σá⌐½ misc.h, ¬«Γ«αδ⌐
- ß«ñÑαª¿Γ ß½ÑñπεΘÑÑ «íΩ∩ó½Ñ¡¿Ñ ßΓαπ¬Γπαδ:
- .sw
- /*
- * æΓαπ¬Γπαá ñ½∩ ñ«ßΓπ»á
- * ¬ µÑ½«¼π ó íá⌐Γáσ
- */
- struct {
- char lobyte;
- char hibyte;
- };
-
- # æ «»αÑñѽѡ¡δ¼¿ ¼Ñ¡ÑÑ «úαá¡¿τÑ¡¡δ¼¿ ¬«¼»¿½∩Γ«αἿ φΓá ßΓαπ¬Γπαá ¼«ú½á íδ
- ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ñ«ßΓπ»á ¬ ßΓáαΦÑ¼π ¿ ¼½áñΦÑ¼π »« »«α∩ñ¬π íá⌐Γá¼ »«
- «Γñѽ∞¡«ßΓ¿ «Γ µÑ½«ú« τ¿ß½á, ß»«ß«í ñ«ßΓπ»á »α¿ φΓ«¼ »αÑ»∩ΓßΓó«óá½ íδ
- »ÑαÑ¡«ß¿¼«ßΓ¿. Åαáó¿½∞¡δ⌐ »πΓ∞ ñ½∩ óδ»«½¡Ñ¡¿∩ φΓ«⌐ ºáñáτ¿ ºá¬½ετáÑΓß∩
- ó ¿ß»«½∞º«óá¡¿¿ ¼á߬¿ ¿ «»Ñαᵿ⌐ ßñó¿úá ñ½∩ óδñѽѡ¿∩ ¡πª¡«ú« íá⌐Γá:
- .«Σ
- #define LOBYTE(i) (i&0xff)
- #define HIBYTE(i) ((i>>8)&0xff)
-
- # ÄΓ¼ÑΓ¿¼, τΓ« ñáªÑ φΓá «»Ñαᵿ∩ »«ñσ«ñ¿Γ ½¿Φ∞ ñ½∩ ΓÑσ ¼áΦ¿¡, 𠬫ëαδσ int
- ºá¡¿¼áÑΓ ñóá íá⌐Γá.
- # Äñ¡¿¼ ¿º αѺπ½∞ΓáΓ«ó »α«í½Ñ¼δ »«α∩ñ¬á íá⌐Γ«ó ∩ó½∩ÑΓß∩ Γ«, τΓ« ß½ÑñπεΘá∩
- »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ¬«ñá ¡Ñ óßÑúñá íπñÑΓ óδ»«½¡∩Γ∞ß∩ ñ«½ª¡δ¼ «íαẫ¼:
- .«Σ
- int c=0;
-
- read(fd,&c,1);
-
- # ìá ¼áΦ¿¡áσ, úñÑ ¼½áñΦ¿⌐ »« »«α∩ñ¬π íá⌐Γ σαá¡¿Γß∩ »Ñαóδ¼, º¡áτÑ¡¿Ñ c
- íπñÑΓ αáó¡« ßτ¿Γá¡¡«¼π º¡áτÑ¡¿ε íá⌐Γá. ìá ñαπú¿σ ¼áΦ¿¡áσ ßτ¿ΓδóáѼδ⌐ íá⌐Γ
- «Γ½¿τÑ¡ «Γ ¼½áñΦÑú« »« »«α∩ñ¬π íá⌐Γá, ¿ º¡áτÑ¡¿Ñ ß
- íπñÑΓ αẽ¿τ¡δ¼.
- .º» 2
- ü¿Γ«óδÑ »«½∩
- # ü¿Γ«óδÑ »«½∩ »α¿¼Ñ¡∩εΓß∩ ¡Ñ ó« óßÑσ æ-¬«¼»¿½∩Γ«αáσ. Æá¼, úñÑ «¡¿ ÑßΓ∞,
- »«½∩ ¡Ñ ¼«úπΓ íδΓ∞ τѼ int, ¿ »«½∩ ¡Ñ ¼«úπΓ »ÑαѬαδóáΓ∞ úαá¡¿µπ µÑ½«ú« (int).
- Åα¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¬«¼»¿½¿Γ«α »α«»π߬áÑΓ »α«¼ÑªπΓ¬¿ ¿ »ÑαÑσ«ñ¿Γ ¬ ß½ÑñπεΘÑ⌐
- úαá¡¿µÑ µÑ½«ú« (int).
- # ƒºδ¬ æ ¡Ñ ñáÑΓ úáαá¡Γ¿⌐ ¡áº¡áτáεΓß∩ ½¿ »«½∩ ó int ß½Ñóá ¡á»αáó«, ½¿í«
- ß»αáóá ¡á½Ñó«. Æá¬¿¼ «íαẫ¼, »«¬á í¿Γ«óδÑ »«½∩ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ
- ñ½∩ σαá¡Ñ¡¿∩ Σ½áú«ó ¿ ñαπú¿σ ¼á½δσ φ½Ñ¼Ñ¡Γ«ó ñá¡¡δσ, ¿σ ¿ß»«½∞º«óá¡¿Ñ
- ó «íΩÑñ¿¡Ñ¡¿∩σ ñ½∩ á¡á½¿ºá í¿Γ«ó ¿º αẽ¿τ¡δσ ñá¡¡δσ «»αÑñѽѡ¡« ¡Ñ »ÑαÑ¡«ß¿¼«.
- # ä½∩ »«½πτÑ¡¿∩ »ÑαÑ¡«ß¿¼«ßΓ¿ «Γñѽ∞¡«Ñ »«½Ñ ¡Ñ ñ«½ª¡« »αÑóδΦáΓ∞ 16 í¿Γ.
- .º» 2
- ô¬áºáΓѽ¿
- # ƒºδ¬ æ ΘÑñα ¡á ñ«»π߬¿ ñ½∩ ¼á¡¿»π½∩µ¿⌐ ß π¬áºáΓѽ∩¼¿. Åα«úαá¼¼á lint,
- ó τáßΓ¡«ßΓ¿, ¿ß»«½∞ºπÑΓß∩ ñ½∩ «í¡áαπªÑ¡¿∩ ß»«α¡δσ »α¿ßó«Ñ¡¿⌐ ¿ ßαáó¡Ñ¡¿⌐
- π¬áºáΓѽÑ⌐, ¬«Γ«αδÑ ¡Ñ¬«Γ«α묨 ¬«¼»¿½∩Γ«αἿ ¼«úπΓ íδΓ∞ ¿ßΓ«½¬«óá¡δ »«-αạ«¼π.
- # éßÑúñá ¡Ñ»ÑαÑ¡«ß¿¼δ¼ ∩ó½∩ÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ π¬áºáΓѽÑ⌐ ß »α¿¼Ñ¡Ñ¡¿Ñ¼
- »α¿óÑñÑ¡¿∩ Γ¿»«ó »α¿ »α¿ßó«Ñ¡¿¿ «ñ¡«ú« π¬áºáΓѽ∩ ñαπú«¼π, Ñß½¿ π¬áºáΓѽ¿
- »α¿¡áñ½ÑªáΓ αẽ¿τ¡δ¼ Γ¿»á¼ ñá¡¡δσ. Åα¿ φΓ«¼ »«τΓ¿ óßÑúñá ñѽáεΓß∩
- »αÑñ»«½«ªÑ¡¿∩ « ó¡πΓαÑ¡¡Ñ¼ »«α∩ñ¬Ñ íá⌐Γ«ó ¿ Σ«α¼áΓÑ Γ¿»«ó ñá¡¡δσ, τΓ« ¿
- óδºδóáÑΓ ¡Ñ»ÑαÑ¡«ß¿¼«¼«ßΓ∞. é ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »«α∩ñ«¬ íá⌐Γ«ó ó ñá¡¡«¼
- ¼áßß¿óÑ ¡Ñ »ÑαÑ¡«ß¿¼:
- .«Σ
- char c[4];
- long *lp;
-
- lp = (long*)&c[0];
- *lp = 0x12345678L;
-
- # Åα«úαá¼¼á lint óδñáßΓ »αÑñπ»αÑñ¿Γѽ∞¡δÑ ß««íΘÑ¡¿∩ »α¿ Γᬫ¼ ¿ß»«½∞º«óá¡¿¿
- π¬áºáΓѽÑ⌐. è«ñ, »«ñ«í¡δ⌐ »α¿óÑñÑ¡¡«¼π óδΦÑ, «τÑ¡∞ αÑñ¬« íδóáÑΓ ñÑ⌐ßΓó¿Γѽ∞¡«
- «»αáóñá¡ ¿½¿ »αáó¿½Ñ¡. Ä¡ »α¿Ñ¼½Ñ¼, «ñ¡á¬«, »α¿ ¿ß»«½∞º«óá¡¿¿ Σπ¡¬µ¿¿ malloc
- ñ½∩ ñ½∩ ºáσóáΓá »α«ßΓαá¡ßΓóá »«ñ »ÑαѼѡ¡δÑ, ¬«Γ«αδÑ ¡Ñ ¿¼ÑεΓ Γ¿» char.
- Åα«úαá¼¼á «íΩ∩ó½∩ÑΓß∩ Γ¿»«¼ char*, ¿ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ »α¿ó«ñ¿Γß∩ ¬ Γ¿»π,
- ¬«Γ«αδ⌐ ñ«½ªÑ¡ σαá¡¿Γ∞ß∩ ó ºáσóáτÑ¡¡«⌐ »á¼∩Γ¿. àß½¿ φΓ«Γ Γ¿» ¡Ñ char*,
- Γ« lint óδñáßΓ »αÑñπ»αѪñÑ¡¿Ñ, ¬áßáεΘÑÑß∩ ¡Ñ»αáó¿½∞¡«ú« »αÑ«íαẫóá¡¿∩
- Γ¿»«ó. è Γ«¼π ªÑ Σπ¡¬µ¿∩ malloc ¡á»¿ßá¡á Γá¬, τΓ«íδ óßÑúñá ó«ºóαáΘáΓ∞
- ¡áτá½∞¡δ⌐ áñαÑß, πñ«í¡δ⌐ ñ½∩ σαá¡Ñ¡¿∩ óßÑσ Γ¿»«ó ñá¡¡δσ. Lint ¡Ñ º¡áÑΓ φΓ«ú«,
- »«φΓ«¼π «¡á ñáÑΓ Γá¬ªÑ »αÑñπ»αѪñÑ¡¿Ñ « »α«í½Ñ¼áσ 󫺼«ª¡«ú« óδαáó¡¿óá¡¿∩
- ñá¡¡δσ. é ß½ÑñπεΘѼ »α¿¼ÑαÑ malloc ¿ß»«½∞ºπÑΓß∩ ñ½∩ »«½πτÑ¡¿∩ »á¼∩Γ¿ »«ñ
- ¼áßß¿ó ¿º 50 µÑ½δσ τ¿ßѽ:
- .«Σ
- extern char *malloc();
- int *ip;
-
- ip = (int*)malloc(50*sizeof(int));
-
- # ¥Γ«Γ »α¿¼Ñα ó맮óÑΓ »αÑñπ»αÑñ¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ »α«úαá¼¼δ lint.
- # Éπ¬«ó«ñßΓó« »« ∩ºδ¬π æ XENIX πΓóÑαªñáÑΓ, τΓ« π¬áºáΓѽ∞ ¼«ªÑΓ íδΓ∞ ¡áº¡áτÑ¡
- (¿½¿ »α¿óÑñÑ¡ ¬ Γ¿»π) µÑ½«ú«, í«½∞ΦÑú«, τѼ ¡Ñ«íσ«ñ¿¼« ñ½∩ Ñú« σαá¡Ñ¡¿∩.
- çá¼ÑΓ¿¼, τΓ« αẼÑα Γ¿»á int ºáó¿ß¿Γ «Γ ñá¡¡«⌐ ¼áΦ¿¡δ ¿ αÑ὿ºáµ¿¿.
- ¥Γ«Γ Γ¿» íπñÑΓ long ¡á «ñ¡¿σ ¼áΦ¿¡áσ ¿ short - ¡á ñαπú¿σ. Äíδτ¡«, ¡Ñ
- »«½áúá⌐ΓÑß∞, τΓ«:
- # sizeof(char*) == sizeof(int)
- # é í«½∞Φ¿¡ßΓóÑ αÑ὿ºáµ¿⌐ º¡áτÑ¡¿Ñ ¡π½Ñó«ú« π¬áºáΓѽ∩ NULL «»αÑñѽѡ« ¬á¬
- µÑ½«Ñ º¡áτÑ¡¿Ñ 0. ¥Γ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ »α«í½Ñ¼Ñ ñ½∩ Σπ¡¬µ¿⌐, ¬«Γ«αδÑ
- «ª¿ñáεΓ áαúπ¼Ñ¡Γ«ó-π¬áºáΓѽÑ⌐ ñ½¿¡¡ÑÑ, τѼ µÑ½δÑ τ¿ß½á. ä½∩ »ÑαÑ¡«ß¿¼«ßΓ¿ ¬«ñá
- »α¿ »ÑαÑñáτÑ º¡áτÑ¡¿∩ NULL »αáó¿½∞¡«ú« αẼÑαá óßÑúñá ¿ß»«½∞ºπ⌐ΓÑ:
- # func((char*)NULL);
- .º» 2
- ÇñαÑß¡«Ñ »α«ßΓαá¡ßΓó«
- # ÇñαÑß¡«Ñ »α«ßΓαá¡ßΓó«, ñ«ßΓπ»¡«Ñ ñ½∩ »α«úαá¼¼, αáí«ΓáεΘ¿σ »«ñ π»αáó½Ñ¡¿Ñ¼
- ß¿ßΓѼδ XENIX, º¡áτ¿Γѽ∞¡« αẽ¿τáÑΓß∩ «Γ ß¿ßΓÑ¼δ ¬ ß¿ßΓѼÑ. ä½∩ ¼á½δσ
- PDP-11 ¼«ªÑΓ íδΓ∞ ñ«ßΓπ»¡« ½¿Φ∞ 64 èíá⌐Γ ñ½∩ ß«τÑΓá¡¿∩ »α«úαá¼¼δ ¿ ñá¡¡δσ.
- ü«½∞Φ¿Ñ PDP-11 ¿ ¡Ñ¬«Γ«αδÑ 16-í¿Γ¡δÑ ¼¿¬α«»α«µÑßß«αδ ñ«»π߬áεΓ 64 èíá⌐Γ
- ñ½∩ ñá¡¡δσ ¿ 64 èíá⌐Γ ñ½∩ ΓѬßΓá »α«úαá¼¼δ. äαπú¿Ñ ¼áΦ¿¡δ ¼«úπΓ ñ«»π߬áΓ∞
- º¡áτ¿Γѽ∞¡« í«½∞Φ¿⌐ ΓѬßΓ, á Γá¬ªÑ ó«º¼«ª¡« í«½∞Φ¿Ñ ñá¡¡δÑ.
- # ü«½∞Φ¿Ñ »α«úαá¼¼δ ¿½¿ »α«úαá¼¼δ, ¬«Γ«αδÑ ΓαÑíπεΓ í«½∞Φ«⌐ «í½áßΓ¿
- ñ½∩ ñá¡¡δσ, ¼«úπΓ ¿¼ÑΓ∞ »α«í½Ñ¼δ »« »ÑαÑ¡«ß¿¼«ßΓ¿ ¡á ¼á½δÑ ¼áΦ¿¡δ.
- .º» 2
- î¡«ªÑßΓó« ß¿¼ó«½«ó
- # ƒºδ¬ æ ¡Ñ ΓαÑíπÑΓ ¿ß»«½∞º«óá¡¿∩ ¼¡«ªÑßΓóá ß¿¼ó«½«ó ASCII. öá¬Γ¿τÑ߬¿
- Ññ¿¡ßΓóÑ¡¡δ¼ ΓαÑí«óá¡¿Ñ ¬ ¼¡«ªÑßΓóπ ß¿¼ó«½«ó ∩ó½∩ÑΓß∩ ΓαÑí«óá¡¿Ñ,
- τΓ«íδ ß¿¼ó«½δ »«ñσ«ñ¿½¿ »«ñ Γ¿» ñá¡¡δσ char, ¿ τΓ«íδ óßÑ ß¿¼ó«½δ
- ¿¼Ñ½¿ »«½«ª¿Γѽ∞¡δÑ º¡áτÑ¡¿∩.
- # é« ¼¡«ªÑßΓóÑ ß¿¼ó«½«ó ASCII óßÑ ß¿¼ó«½δ ¿¼ÑεΓ º¡áτÑ¡¿∩ ¼Ñªñπ 0 ¿ 127.
- Æá¬¿¼ «íαẫ¼, «¡¿ óßÑ ¼«úπΓ íδΓ∞ »αÑñßΓáó½Ñ¡δ 7 í¿ΓἿ, ¿ ¡á 8-í¿Γ¡«⌐-¡á-íá⌐Γ
- ¼áΦ¿¡Ñ óßÑ «¡¿ »«½«ª¿Γѽ∞¡δ, Γ«úñá ¬á¬ char ¿¡ΓÑα»αÑΓ¿απÑΓß∩ ¬á¬
- signed (º¡á¬«óδ⌐) ¿½¿ unsigned (íѺº¡á¬«óδ⌐).
- # æπΘÑßΓóπÑΓ ¼¡«ªÑßΓó« ¼á¬α«ß«ó, «»αÑñѽѡ¡δσ ó XENIX(Ñ) ó ºáú«½«ó¬Ñ
- Σá⌐½á /usr/include/ctype.h, ¬«Γ«αδÑ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ í«½∞Φ¿¡ßΓóá
- »α«óÑ᫬ ¡á »α¿¡áñ½Ñª¡«ßΓ∞ ß¿¼ó«½á ¬ ¡Ñ¬«Γ«α«⌐
- úαπ»»Ñ ß¿¼ó«½«ó. Ä¡¿ «íÑß»Ñτ¿óáεΓ ¿º«½∩µ¿ε «Γ ó¡πΓαÑ¡¡Ñ⌐
- ßΓαπ¬Γπαδ ¼¡«ªÑßΓóá ß¿¼ó«½«ó ¿ ó í«½∞Φ¿¡ßΓóÑ ß½πτáÑó ¿σ ¿¼Ñ¡á í«½ÑÑ
- º¡áτ¿¼δ, ¡ÑªÑ½¿ φ¬ó¿óá½Ñ¡Γ¡á∩ ßΓ᫬á ßαáó¡Ñ¡¿∩ ó ΓѬßΓÑ »α«úαá¼¼δ. æαáó¡¿ΓÑ:
- # if(isupper(c))
- # ß
- # if((c>='A')&&(c<='Z')).
- # ä½∩ ¡Ñ¬«Γ«αδσ ¿º φΓ¿σ ¼á¬α«ß«ó, Γᬿσ, ¡á»α¿¼Ñα, ¬á¬ »α«óÑα¬á ¡á
- ΦÑßΓ¡áñµáΓÑα¿τ¡«Ñ τ¿ß½«, φΣΣÑ¬Γ «Γ ¿ß»«½∞º«óá¡¿∩ ñáªÑ í«½∞ΦÑ.
- èα«¼Ñ Γ«ú«, »α¿¼Ñ¡Ñ¡¿Ñ φΓ¿σ ¼á¬α«ß«ó ñѽáÑΓ ¬«ñ í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ¼,
- ¡ÑªÑ½¿ ∩ó¡á∩ »α«óÑα¬á ß »«¼«Θ∞ε «»ÑαáΓ«αá if.
- .º» 1
- Éẽ¿τ¿∩ ó ¬«¼»¿½∩Γ«αáσ
- # æπΘÑßΓóπÑΓ ¡Ñ߬«½∞¬« æ-¬«¼»¿½∩Γ«α«ó, αáí«ΓáεΘ¿σ »«ñ π»αáó½Ñ¡¿Ñ¼ XENIX(a).
- ä½∩ ß¿ΓѼδ PDP-11 φΓ« ¬«¼»¿½∩Γ«α "Ritchie". Æá¬ªÑ, ñ½∩ 11 ¿ í«½∞Φ¿¡ßΓóá ñαπú¿σ
- ß¿ßΓѼ ßπΘÑßΓóπÑΓ ÅÑαÑ¡«ß¿¼δ⌐ æ 諼»¿½∩Γ«α.
- .º» 2
- ç¡á¬«óδ⌐ ¿ íѺº¡á¬«óδ⌐ ß¿¼ó«½∞¡δ⌐ Γ¿»
- # é ΓѬπΘÑÑ ß«ßΓ«∩¡¿Ñ »α«í½Ñ¼δ "º¡á¬«ó«ú« »α«Γ¿ó íѺº¡á¬«ó«ú«" ß¿¼ó«½∞¡«ú« Γ¿»á
- (char) ½πτΦÑ óßÑú« «»¿ßáΓ∞ ¬á¬ ¡Ñπñ«ó½ÑΓó«α¿Γѽ∞¡«Ñ.
- # Åα«í½Ñ¼á º¡á¬«ó«ú« αáßΦ¿αÑ¡¿∩ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ßÑα∞Ѻ¡«Ñ »αÑ»∩ΓßΓó¿Ñ
- ñ½∩ ¡á»¿ßá¡¿∩ »ÑαÑ¡«ß¿¼«ú« æ, ¿ ó ¡áßΓ«∩ΘÑÑ óαѼ∩ ¡á¿½πτΦ¿¼ ÑÑ αÑΦÑ¡¿Ñ¼
- ∩ó½∩ÑΓß∩ ¡á»¿ßá¡¿Ñ "«í«α«¡¿Γѽ∞¡«ú«" ¬«ñá, ¬«Γ«αδ⌐ ¡Ñ «ß¡«óδóáÑΓß∩ ¡á
- «ß«íÑ¡¡«ßΓ∩σ τáßΓ¡«⌐ αÑ὿ºáµ¿¿.
- .º» 2
- Ä»Ñαᵿ¿ ßñó¿úá
- # Ä»ÑαáΓ«α ßñó¿úá ó½Ñó« "<<" ßñó¿úáÑΓ ßó«⌐ «»Ñαá¡ñ ¡á ¡Ñ¬«Γ«α«Ñ τ¿ß½«
- í¿Γ ó½Ñó«, ºá»«½¡∩∩ óá¬á¡Γ¡δÑ í¿Γδ ¡π½∩¼¿. ¥Γ« Γᬠ¡áºδóáѼδ⌐ ½«ú¿τÑ߬¿⌐ ßñó¿ú.
- Ä»ÑαáΓ«α ßñó¿úá ó»αáó« ">>"
- óδ»«½¡∩ÑΓ «»Ñαáµ¿ε ½«ú¿τÑ߬«ú« ßñó¿úá »« «Γ¡«ΦÑ¡¿ε ¬ íѺº¡á¬«ó«⌐ óѽ¿τ¿¡Ñ.
- àß½¿ »α¿¼Ñ¡¿Γ∞ Ñú« »« «Γ¡«ΦÑ¡¿ε ¬ º¡á¬«ó«⌐ óѽ¿τ¿¡Ñ, «ßó«í«ñ¿óΦ¿Ñß∩
- í¿Γδ ¼«úπΓ íδΓ∞ ºá»«½¡Ñ¡δ ¡π½∩¼¿ (½«ú¿τÑ߬¿⌐ ßñó¿ú) ¿½¿ º¡á¬«ó묨 í¿ΓἿ
- (áα¿Σ¼ÑΓ¿τÑ߬¿⌐ ßñó¿ú). ÉÑΦÑ¡¿Ñ ºáó¿ß¿Γ «Γ αÑ὿ºáµ¿¿, ¿ ¬«ñ,
- ¿ß»«½∞ºπεΘ¿⌐ ßóÑñÑ¡¿∩ « τáßΓ¡«⌐ αÑ὿ºáµ¿¿, ∩ó½∩ÑΓß∩ ¡Ñ »ÑαÑ¡«ß¿¼δ¼.
- # 諼»¿½∩Γ«αδ PDP-11 ¿ß»«½∞ºπεΓ áα¿Σ¼ÑΓ¿τÑ߬¿⌐ »αáóδ⌐ ßñó¿ú.
- ùΓ«íδ ¿ºíѪáΓ∞ º¡«¬«ó«ú« αáßΦ¿αÑ¡¿∩, ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ßñó¿ú ¿
- ¡á½«ª¿Γ∞ ó ¬áτÑßΓóÑ ¼á߬¿ ß««ΓóÑΓßΓóπεΘÑÑ τ¿ß½«, ¿¼ÑεΘÑÑ í«½∞Φ¿⌐ »«α∩ñ«¬ í¿Γ:
- # char c;
- # c = (c>>3)&0x1f;
- # êºíѪáΓ∞ º¡á¬«ó«ú« αáßΦ¿αÑ¡¿∩ ¼«ª¡« Γá¬ªÑ ß »«¼«Θ∞ε ¿ß»«½∞º«óá¡¿∩
- «»ÑαáΓ«αá ñѽѡ¿∩:
- # char c;
- # c = c/8;
- .º» 2
- 使¡á ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
- # êß»«½∞º«óá¡¿Ñ ñ½¿¡¡δσ «í«º¡áτÑ¡¿⌐ ¿ ¿¼Ñ¡ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó
- ó맮óÑΓ »α«í½Ñ¼δ »ÑαÑ¡«ß¿¼«ßΓ¿ ñ½∩ ¡Ñ¬«Γ«αδσ ¬«¼»¿½∩Γ«α«ó. ä½∩ Γ«ú«, τΓ«íδ
- φΓ¿ »α«í½Ñ¼δ ¿ºíѪáΓ∞, »α«úαá¼¼á ñ«½ª¡á σαá¡¿Γ∞ ß½ÑñπεΘ¿Ñ «í«º¡áτÑ¡¿∩ Γᬿ¼¿
- ¬«α«Γ¬¿¼¿, ¬á¬¿¼¿ Γ«½∞¬« 󫺼«ª¡«:
- .«Σ
- Äí«º¡áτÑ¡¿∩ ñ½∩ »αÑ»α«µÑßß«αá æ
- 﫬á½∞¡δÑ «í«º¡áτÑ¡¿∩ æ
- é¡ÑΦ¡¿Ñ «í«º¡áτÑ¡¿∩ æ
-
- # êß»«½∞ºπѼδ⌐ αÑñá¬Γ«α ßó∩ºÑ⌐ ¼«ªÑΓ Γá¬ªÑ ¡á½«ª¿Γ∞ ¡á τ¿ß½« π¡¿¬á½∞¡δσ
- ß¿¼ó«½«ó ßαÑñ¿ ó¡ÑΦ¡¿σ «í«º¡áτÑ¡¿⌐ æ.
- # Äí«º¡áτÑ¡¿∩, αẽ¿τáεΘ¿Ñß∩ ó »Ñαóδσ 6 ß¿¼ó«½áσ, π¡¿¬á½∞¡δ ñ½∩ í«½∞Φ¿¡ßΓóá
- »αÑ»α«µÑßß«α«ó ∩ºδ¬á æ.
- # é ¡Ñ¬«Γ«αδσ ¡Ñ XENIX(«ó߬¿σ) αÑ὿ºáµ¿∩σ æ ºáú½áó¡δÑ ¿ ßΓα«τ¡δÑ íπ¬óδ
- ó ¿ñÑ¡Γ¿Σ¿¬áΓ«αáσ ¡Ñ αẽ¿τáεΓß∩.
- .º» 2
- ÉÑú¿ßΓα«óδÑ »ÑαѼѡ¡δÑ
- # 쫼Ñα ¿ Γ¿» αÑú¿ßΓα«óδσ »ÑαѼѡ¡δσ ó Σπ¡¬µ¿¿ ºáó¿ß¿Γ «Γ á»»áαáΓ¡«ú«
- «íÑß»ÑτÑ¡¿∩ ¿ ¬«¼»¿½∩Γ«αá. 꺽¿Φ¡¿Ñ ¿½¿ πΘÑαí¡δÑ «íΩ∩ó½Ñ¡¿∩ αÑú¿ßΓαá
- ¿¡ΓÑα»αÑΓ¿απεΓß∩ ¬á¬ ¡ÑαÑú¿ßΓα«óδÑ «íΩ∩ó½Ñ¡¿∩ ¿ ¡Ñ ó맮óπΓ »α«í½Ñ¼ »«
- »ÑαÑ¡«ß¿¼«ßΓ¿.
- # ä½∩ PDP-11 º¡áτ¿¼δ¼¿ ∩ó½∩εΓß∩ ñ« ΓαÑσ «íΩ∩ó½Ñ¡¿⌐ αÑú¿ßΓα«ó, ¿ «¡¿ ñ«½ª¡δ
- ¿¼ÑΓ∞ Γ¿»δ int, char ¿½¿ pointer. Æ«úñá ¬á¬ ñαπú¿Ñ ¼áΦ¿¡δ ¿ ¬«¼»¿½∩Γ«αδ
- ¼«úπΓ »«ññÑনóáΓ∞ «íΩ∩ó½Ñ¡¿∩ ó¿ñá:
- # register unsigned short
- ¡« ¡á Γá¬πε óÑΘ∞ ¡Ñ½∞º∩ »«½áúáΓ∞ß∩.
- # Æ. ¬. ¬«¼»¿½∩Γ«α ¿ú¡«α¿απÑΓ ½¿Φ¡εε »ÑαѼѡ¡πε αÑú¿ßΓα«ó«ú« Γ¿»á,
- ¡á¿í«½ÑÑ ó᪡δÑ »ÑαѼѡ¡δÑ αÑú¿ßΓα«ó«ú« Γ¿»á ñ«½ª¡δ «íΩ∩ó½∩Γ∞ß∩ ó »Ñαóπε
- «τÑαÑñ∞. Æá¬¿¼ «íαẫ¼, Ñß½¿ ¬á¬á∩-½¿í« ¿ú¡«α¿απÑΓß∩, φΓ« íπñÑΓ
- ¡á¿¼Ñ¡ÑÑ ó᪡á∩ ¿º ¡¿σ.
- .º» 2
- ÅαÑ«íαẫóá¡¿Ñ Γ¿»«ó
- # ƒºδ¬ æ ¿¼ÑÑΓ ¡Ñ߬«½∞¬« »αáó¿½ ñ½∩ ¡Ññ«»π߬áεΘÑú«
- ñóπß¼δ߽ѡ¡«ú« Γ«½¬«óá¡¿∩ (Γ«τ¡δÑ) »αÑ«íαẫóá¡¿∩ Γ¿»«ó;
- Γá¬ªÑ ñ«»π߬áεΓß∩ ∩ó¡δÑ »αÑ«íαẫóá¡¿∩ Γ¿»«ó ß »«¼«Θ∞ε »α¿óÑñÑ¡¿∩ Γ¿»«ó.
- ìá¿í«½ÑÑ «íΘÑ⌐ »α«í½Ñ¼«⌐ »ÑαÑ¡«ß¿¼«ßΓ¿ »α¿ Γ«τ¡«¼ »αÑ«íαẫóá¡¿¿ Γ¿»«ó
- ∩ó½∩ÑΓß∩ ¡Ñ«ª¿ñáѼ«Ñ º¡á¬«ó«Ñ αáßΦ¿αÑ¡¿Ñ. ¥Γ« »«ΓÑ¡µ¿á½∞¡á∩ »α«í½Ñ¼á
- 󫺡¿¬áÑΓ óß∩¬¿⌐ αẠ¬á¬ ¬á¬«Ñ-Γ« º¡áτÑ¡¿Ñ Γ¿»á char ßαáó¡¿óáÑΓß∩
- ß int. ìá»α¿¼Ñα:
- .«Σ
- char c;
-
- if(c==0x80)
- ...
-
- .ȧ 0
- ¡Ñ íπñÑΓ «µÑ¡Ñ¡« óÑα¡« ¡á ¼áΦ¿¡Ñ ß« º¡á¬«óδ¼ αáßΦ¿αÑ¡¿Ñ¼, Γ.¬.
- αáßΦ¿αÑ¡¿Ñ º¡á¬á ñ½∩ ß »α«¿ßσ«ñ¿Γ »ÑαÑñ ßαáó¡Ñ¡¿Ñ¼ ß 0x80, ¿¼ÑεΘ¿¼ Γ¿» int.
- # àñ¿¡ßΓóÑ¡¡«Ñ íѺ«»áß¡«Ñ ßαáó¡Ñ¡¿Ñ ¼Ñªñπ Γ¿»á¼¿ char ¿ int óδú½∩ñ¿Γ
- ß½ÑñπεΘ¿¼ «íαẫ¼:
- .«Σ
- char c;
-
- if(c=='x')
- ...
-
- # Æá¬á∩ ºá»¿ß∞ ¡áñѪ¡á, Γ.¬. æ úáαá¡Γ¿απÑΓ, τΓ« óßÑ ß¿¼ó«½δ »«½«ª¿Γѽ∞¡δ.
- êß»«½∞º«óá¡¿Ñ ¼áΦ¿¡¡δσ ó«ß∞¼Ñα¿τ¡δσ ¬«¡ßΓá¡Γ »«ñóÑαªÑ¡« º¡á¬«ó«¼π αáßΦ¿αÑ¡¿ε.
- ìá»α¿¼Ñα, ß½ÑñπεΘá∩ »α«úαá¼¼á »ÑτáΓáÑΓ ¡á PDP-11 "ff80":
- .sw
- main()
- {
- printf("%x\n",'\200');
- }
-
- # ÅαÑ«íαẫóá¡¿Ñ Γ¿»«ó Γá¬ªÑ ¿¼ÑÑΓ ¼ÑßΓ« »α¿ »ÑαÑñáτÑ áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿∩¼.
- Æ¿»δ char ¿ short ßΓá¡«ó∩Γß∩ int. îáΦ¿¡δ ß º¡á¬«óδ¼ αáßΦ¿αÑ¡¿Ñ¼ char
- ¼«úπΓ »αÑ»«ñ¡«ß¿Γ∞ ßεα»α¿ºδ. ìá»α¿¼Ñα, ß½ÑñπεΘá∩ »α«úαá¼¼á ñáßΓ ¡á
- ¡Ñ¬«Γ«αδσ ¼áΦ¿¡áσ -128:
- .sw
- char c = 128;
- printf("%d\n",c);
-
- # ¥Γ« »α«¿ßσ«ñ¿Γ »«Γ«¼π, τΓ« ß »αÑ«íαáºπÑΓß∩ ¬ int »ÑαÑñ »ÑαÑñáτÑ⌐
- ó Σπ¡¬µ¿ε. æá¼á Σπ¡¬µ¿∩ ¡Ñ ¿¼ÑÑΓ »αÑñßΓáó½Ñ¡¿∩ « »Ñαó«¡áτá½∞¡«¼ Γ¿»Ñ
- áαúπ¼Ñ¡Γá, ¿ «ª¿ñáÑΓ »«½πτ¿Γ∞ int. Åαáó¿½∞¡δ⌐ »πΓ∞ π»αáó½Ñ¡¿∩ Γᬫ⌐
- ß¿ΓπᵿÑ⌐ - φΓ« ºáΘ¿Γ¿Γ∞ß∩ »α¿ ¡á»¿ßá¡¿¿ ΓѬßΓá, ñ«»π߬á∩ 󫺼«ª¡«ßΓ∞
- º¡á¬«ó«ú« αáßΦ¿αÑ¡¿∩:
- .sw
- char c=128;
- printf("%d\n",c&0xff);
-
- .º» 2
- öπ¡¬µ¿¿ ß »ÑαѼѡ¡δ¼ τ¿ß½«¼ áαúπ¼Ñ¡Γ«ó
- # öπ¡¬µ¿¿ ß »ÑαѼѡ¡δ¼ τ¿ß½«¼ áαúπ¼Ñ¡Γ«ó »αÑñßΓáó½∩εΓ τáßΓ¡πε »α«í½Ñ¼π
- »ÑαÑ¡«ß¿¼«ßΓ¿, Ñß½¿ Γ¿»δ áαúπ¼Ñ¡Γ«ó Γá¬ªÑ ∩ó½∩εΓß∩ »ÑαѼѡ¡δ¼¿.
- é φΓ¿σ ß½πτá∩σ ¬«ñ ºáó¿ß¿Γ «Γ αẼÑαá »ÑαѼѡ¡δσ Γ¿»«ó ñá¡¡δσ.
- # é XENIX(e) ßπΘÑßΓóπÑΓ include-Σá⌐½ /usr/include/varargs.h,
- ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ¼á¬α«ßδ, ¿ß»«½∞ºπѼδÑ ó Σπ¡¬µ¿∩σ ß »ÑαѼѡ¡δ¼¿
- áαúπ¼Ñ¡ΓἿ ñ½∩ ñ«ßΓπ»á ¬ áαúπ¼Ñ¡Γá¼ ß»«ß«í«¼, ß«σαá¡∩εΘ¿¼ »ÑαÑ¡«ß¿¼«ßΓ∞:
- .sw
- typed char *va_list;
- #define va_dcl int va_alist;
- #define va_start(list) list=(char*)&va_alist
- #define va_end(list)
- #define va_arg(list,mode)
- ((mode*)(list+=sizeof(mode)))[-1]
-
- # îá¬α««»αÑñѽѡ¿Ñ va_end ßÑ⌐τáß ¡Ñ ΓαÑíπÑΓß∩. êß»«½∞º«óá¡¿Ñ «ßΓá½∞¡δσ
- ¼á¬α«ß«ó íπñÑΓ »«¬áºá¡« ¡á »α¿¼Ñαáσ í¿í½¿«ΓÑτ¡«⌐ »α«úαá¼¼δ fprintf.
- Ä¡á ¿¼ÑÑΓ »Ñαóδ⌐ áαúπ¼Ñ¡Γ Γ¿»á FILE*, ¿ óΓ«α«⌐ áαúπ¼Ñ¡Γ Γ¿»á char*.
- Æ¿» ¿ ¡«¼Ñα »«ß½ÑñπεΘ¿σ áαúπ¼Ñ¡Γ«ó ó« óαѼ∩ ¬«¼»¿½∩µ¿¿ ¡Ñ ¿ºóÑßΓÑ¡.
- Ä¡¿ «»αÑñѽ∩εΓß∩ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ ß«ñÑন¼δ¼ π»αáó½∩εΘÑ⌐ ßΓ᫬¿ (2-δ¼
- áαúπ¼Ñ¡Γ«¼).
- # ÅÑαóδÑ ¡Ñ߬«½∞¬« ßΓ᫬ ó »α«úαá¼¼Ñ fprintf ñ½∩ «íΩ∩ó½Ñ¡¿∩ áαúπ¼Ñ¡Γ«ó ¿
- ¡áσ«ªñÑ¡¿∩ óδσ«ñ¡«ú« Σá⌐½á ¿ áñαÑßá π»αáó½∩εΘÑ⌐ ßΓ᫬¿ óδú½∩ñ∩Γ Γá¬:
- .sw
- #include <varargs.h>
- #include <stdio.h>
-
- int
- fprintf(va_alist)
- va_dcl
- {
- va_list ap; /* π¬áºáΓѽ∞ ¡á ß»¿ß«¬ áαúπ¼Ñ¡Γ«ó */
- char *format;
- FILE *fp;
-
- va_start(ap); /* ¿¡¿µ¿á½¿ºáµ¿∩ π¬áºáΓѽ∩ ¡á áαúπ¼Ñ¡Γδ */
- fp = va_arg(ap,FILE*);
- format=va_arg(ap,char*);
-
- ...
-
- }
- # çá¼ÑΓ¿¼, τΓ« óßÑú« ½¿Φ∞ «ñ¿¡ áαúπ¼Ñ¡Γ ºá∩ó½Ñ¡ ñ½∩ fprintf. ¥Γ«Γ áαúπ¼Ñ¡Γ
- «íΩ∩ó½∩ÑΓß∩ ß »«¼«Θ∞ε ¼á¬α««»αÑñѽѡ¿∩ va_dcl Γ¿»á int,
- σ«Γ∩ Ñú« ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ Γ¿» ó« óαѼ∩ ¬«¼»¿½∩µ¿¿ ¡Ñ ¿ºóÑßΓÑ¡.
- ô¬áºáΓѽ∞ áαúπ¼Ñ¡Γ«ó ap ¿¡¿µ¿á½¿º¿απÑΓß∩ ß »«¼«Θ∞ε va_start (πßΓá¡áó½¿óáÑΓß∩
- ¡á áñαÑß »Ñαó«ú« áαúπ¼Ñ¡Γá). ū߽Ññ«óáΓѽ∞¡δÑ áαúπ¼Ñ¡Γδ ¼«úπΓ íδΓ∞ óδ¡πΓδ
- ¿º ßΓÑ¬á »«ßΓ«½∞¬π, »«ß¬«½∞¬π ¿σ Γ¿» «»αÑñѽ∩ÑΓß∩ ß »«¼«Θ∞ε
- ¼á¬α««»αÑñѽѡ¿∩ va_arg. Ä¡« ¿¼ÑÑΓ Γ¿» ßó«Ñú« óΓ«α«ú« áαúπ¼Ñ¡Γá;
- «¡« π»αáó½∩ÑΓ πñá½Ñ¡¿Ñ¼ ñá¡¡δσ ¿º ßΓÑ¬á ¿ óѽ¿τ¿¡«⌐ πóѽ¿τÑ¡¿∩ π¬áºáΓѽ∩
- áαúπ¼Ñ¡Γ«ó ap. é fprintf Ññ¿¡«ªñδ ¡áσ«ñ¿Γß∩ π»áαó½∩εΘá∩ ßΓ᫬á,
- ¿ºóÑßΓ¡δ Γ¿»δ »«ß½ÑñπεΘ¿σ áαúπ¼Ñ¡Γ«ó, ¿ ¬ ¡¿¼ ¼«ªÑΓ íδΓ∞ »«ß½Ññ«óáΓѽ∞¡«
- «ßπΘÑßΓó½Ñ¡ ñ«ßΓπ» ß »«¼«Θ∞ε »«óΓ«α¡δσ ó맮ó«ó va_arg(). ìá»α¿¼Ñα,
- áαúπ¼Ñ¡Γδ Γ¿»á double, int* ¿ short ¼«ª¡« ó«ßßΓá¡«ó¿Γ∞ ß½ÑñπεΘ¿¼
- «íαẫ¼:
- .sw
- double dint;
- int *ip;
- short s;
-
- dint = va_arg(ap,double);
- ip = va_arg(ap,int*);
- s = va_arg(ap,short);
-
- # êß»«½∞º«óá¡¿Ñ φΓ¿σ ¼á¬α«ß«ó ñѽáÑΓ ¬«ñ í«½ÑÑ »ÑαÑ¡«ß¿¼δ¼, σ«Γ∩
- ¿ »αÑñ»«½áúáÑΓ «»αÑñѽѡ¡δÑ ßΓá¡ñáαΓ¡δÑ ¼ÑΓ«ñδ »ÑαÑñáτ¿ áαúπ¼Ñ¡Γ«ó ó ßΓѬ.
- é τáßΓ¡«ßΓ¿, ß½Ñóá «Γ ¬«¼»¿½∩Γ«αá ¡Ñ ñ«½ª¡« íδΓ∞ »πßΓ«Γ, ¿ Γ¿»δ,
- ¼Ñ¡∞Φ¿Ñ, τѼ int (¡á»α¿¼Ñα, char ¿ short ¡á ¼áΦ¿¡áσ ß ñ½¿¡¡δ¼
- ß½«ó«¼) ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ ¬á¬ int.
- .º» 2
- æΓ«α«¡¡¿⌐ φΣΣѬΓ, »«α∩ñ«¬ óδτ¿ß½Ñ¡¿∩
- # ƒºδ¬ æ ñáÑΓ ¡Ñ߬«½∞¬« úáαá¡Γ¿⌐ »«α∩ñ¬á «µÑ¡«¬ «»Ñαá¡ñ«ó ó óδαáªÑ¡¿¿
- ¿½¿ áαúπ¼Ñ¡Γ«ó ó ó맮óÑ Σπ¡¬µ¿¿. Æá¬¿¼ «íαẫ¼:
- # func(i++,i++);
- .ȧ 0
- ñ«½ª¡« αáßß¼áΓα¿óáΓ∞ß∩ ¬á¬ ¡Ñ»ÑαÑ¡«ß¿¼«Ñ, ¿ ñáªÑ:
- # func(i++);
- .ȧ 0
- ¿ß»«½∞º«óáΓ∞ ¡Ñí½áú«αáºπ¼¡«, Ñß½¿ func ß ¬á¬«⌐-Γ« óÑα«∩Γ¡«ßΓ∞ε
- ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó ¼á¬α««»αÑñѽѡ¿¿, Γ.¬. ¼á¬α««»αÑñѽѡ¿Ñ ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ i í«½∞ΦÑ «ñ¡«ú« αáºá. Ä»αÑñѽѡ¡δÑ ¼á¬α«ßδ XENIX(a)
- τáßΓ« ¿ß»«½∞ºπεΓß∩ ó »«½∞º«óáΓѽ∞߬¿σ »α«úαá¼¼áσ; «¡¿ óßÑ úáαá¡Γ¿απεΓ
- ¿ß»«½∞º«óá¡¿Ñ ßó«Ñú« áαúπ¼Ñ¡Γá ½¿Φ∞ «ñ¡áªñδ, ¿ »«φΓ«¼π í½áú«»«½πτ¡« ¼«úπΓ
- óδºδóáΓ∞ß∩ ß áαúπ¼Ñ¡Γ«¼, ¿ß»«½ºπεΘ¿¼ ßΓ«α«¡¡¿⌐ φΣΣѬΓ. ìá¿í«½ÑÑ τáßΓ«
- ¿ß»«½∞ºπÑ¼δ¼¿ »α¿¼ÑαἿ ∩ó½∩εΓß∩ getc(), putc(), getchar(), putchar.
- # Ä»Ñαá¡ñδ ß« ß½ÑñπεΘ¿¼¿ «»ÑαáΓ«αἿ «í∩ºáΓѽ∞¡« óδτ¿ß½∩εΓß∩ ß½Ñóá ¡á»αáó«:
- # , && || ? :
- # ÄΓ¼ÑΓ¿¼, τΓ« «»ÑαáΓ«α ºá»∩Γ«⌐ ºñÑß∞ ∩ó½∩ÑΓß∩ αáºñѽ¿ΓѽѼ ñ½∩ ñóπσ
- æ-»αÑñ½«ªÑ¡¿⌐. 滿߫¬ φ½Ñ¼Ñ¡Γ«ó, αáºñѽѡ¡δσ ºá»∩Γ묨 ó ß»¿ß¬Ñ
- «íΩ∩ó½Ñ¡¿⌐, ¡Ñ«í∩ºáΓѽ∞¡« «íαáíáΓδóáÑΓß∩ ß½Ñóá ¡á»αáó«. Æá¬, «íΩ∩ó½Ñ¡¿Ñ
- # register int a, b, c, d;
- .ȧ 0
- ¡á PDP-11, úñÑ ¼«úπΓ íδΓ∞ «íΩ∩ó½Ñ¡δ Γ«½∞¬« Γα¿ αÑú¿ßΓα«óδσ »ÑαѼѡ¡δσ,
- ¼«ªÑΓ »α¿ßó«¿Γ∞ ½εíδ¼ ΓαѼ ¿º τÑΓδαÑσ »ÑαѼѡ¡δσ αÑú¿ßΓα«óδ⌐ Γ¿»,
- ó ºáó¿ß¿¼«ßΓ¿ «Γ ¬«¼»¿½∩Γ«αá. ä½∩ »αáó¿½∞¡«ú« «íΩ∩ó½Ñ¡¿∩, πßΓá¡áó½¿óáεΘÑú«
- íÑßß»«α¡δ⌐ »«α∩ñ«¬ »« ó᪡«ßΓ¿ »α¿ßó«Ñ¡¿∩ »ÑαѼѡ¡δ¼ αÑú¿ßΓα«ó«ú« Γ¿»á,
- ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ß∩ «Γñѽ∞¡δÑ «»ÑαáΓ«αδ «íΩ∩ó½Ñ¡¿∩, Γ.¬. »«α∩ñ«¬ «íαáí«Γ¬¿
- «Γñѽ∞¡δσ «»ÑαáΓ«α«ó «íΩ∩ó½Ñ¡¿∩ «í∩ºáΓѽ∞¡« »«ß½Ññ«óáΓѽѡ:
- .sw
- register int a;
- register int b;
- register int c;
- register int d;
-
- .º» 1
- Éẽ¿τ¿∩ ó »α«úαá¼¼¡«¼ «¬απªÑ¡¿¿
- # ü«½∞Φ¿¡ßΓó« »α«úαá¼¼ ñ½∩ αẽ¿τ¡δσ ¡πªñ ¿ß»«½∞ºπÑ ß¿ßΓѼ¡δÑ ó맮óδ ¿
- í¿í½¿«ΓѬ¿ »«ñ»α«úαá¼¼. äá¡¡δ⌐ αáºñѽ «íαáΘáÑΓ ó¡¿¼á¡¿Ñ ¡á ¡Ñ¬«Γ«αδÑ
- »«ñ»α«úαá¼¼δ, ¬«Γ«αδÑ ¡Ñ óßÑúñá ∩ó½∩εΓß∩ »ÑαÑ¡«ß¿¼δ¼¿, ¿ ¡á »«ñ»α«úαá¼¼δ,
- ¬«Γ«αδÑ «τÑ¡∞ »«¼«úáεΓ »ÑαÑ¡«ß¿¼«ßΓ¿.
- # îδ ¬«ß¡Ñ¼ß∩ ºñÑß∞ »αÑ¿¼πΘÑßΓóÑ¡¡« »ÑαÑ¡«ß¿¼«ßΓ¿ ó «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼÑ
- XENIX. ü«½∞Φ¿¡ßΓó« ß¿ßΓѼ¡δσ ó맮ó«ó XENIX(a) ∩ó½∩εΓß∩ ߻ѵ¿Σ¿τÑ߬¿¼¿ ñ½∩
- τáßΓ¡«ú« «¬απªÑ¡¿∩ «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ¼δ ¿ ¡Ñ ßπΘÑßΓóπεΓ ñ½∩ αÑ὿ºáµ¿⌐ æ
- ó ñαπú¿σ «»Ñαᵿ«¡¡δσ ß¿ßΓѼáσ. ìá»α¿¼Ñα, getpwent() ñ½∩ ñ«ßΓπ»á ¬ ß«ñÑন¼«¼π
- Σá⌐½á »áα«½Ñ⌐ XENIX(a), ¿½¿ getenv(), ¬«Γ«αδ⌐ ߻ѵ¿Σ¿τÑ¡ ñ½∩ ¬«¡µÑ»µ¿¿
- «¬απªÑ¡¿∩ »α«µÑßßá ó XENIX(e).
- # ïεíá∩ »α«úαá¼¼á, ß«ñÑαªáΘá∩ »«½¡«Ñ ¿¼∩ Σá⌐½á ¿½¿ ¬áΓὫúá, ¿½¿ ¿ß»«½∞ºπεΘá∩
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α »«½∞º«óáΓѽ∩ ó ß¿ßΓѼÑ, ¿½¿ ºáαÑú¿ßΓα¿α«óá¡¡«Ñ ¿¼∩ »«½∞º«óáΓѽ∩,
- »áαá¼ÑΓαδ ΓÑନ¡á½á ¿ ñαπú¿Ñ ß¿ßΓѼ¡«-ºáó¿ß¿¼δÑ »áαá¼ÑΓαδ, ∩ó½∩ÑΓß∩ ¡Ñ
- »ÑαÑ¡«ß¿¼«⌐. ¥Γ¿ Γ¿»δ ¬«¡ßΓá¡Γ ñ«½ª¡δ ¡áσ«ñ¿Γ∞ß∩ ó ºáú«½«ó¬Ñ Σá⌐½«ó,
- »ÑαñáóáΓ∞ß∩ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿, »«½πτáΓ∞ß∩ ¿º «¬απªÑ¡¿∩,
- ¿½¿ »«½πτáΓ∞ß∩ »α¿ ¿ß»«½∞º«óá¡¿¿ »áαá¼ÑΓα«ó »« π¼«½τá¡¿ε í¿í½¿«ΓÑτ¡δσ
- »«ñ»α«úαá¼¼ XENIX(a) dfopen ¿ dfread.
- # é¡πΓα¿ XENIX(a) í«½∞Φ¿¡ßΓó« ß¿ßΓѼ¡δσ ó맮ó«ó ¿ í¿í½¿«ΓÑτ¡δσ »«ñ»α«úαá¼¼
- »ÑαÑ¡«ß¿¼δ ßαÑñ¿ αẽ¿τ¡δσ ¼áΦ¿¡ ¿ αÑ὿ºáµ¿⌐ XENIX(a). Äñ¡á¬«,
- ¡Ñ¬«Γ«αδÑ »«ñ»α«úαá¼¼δ ¿º¼Ñ¡∩εΓß∩ »« ¿¡ΓÑαΣÑ⌐ßπ ß »«½∞º«óáΓѽѼ.
- ü¿í½¿«ΓÑ¬á »«ñ»α«úαá¼¼ XENIX(a) «íδτ¡« »ÑαÑ¡«ß¿¼á ßαÑñ¿ ß¿ßΓѼ XENIX.
- # ÄΓ¼ÑΓ¿¼, τΓ« τ½Ñ¡δ ßѼÑ⌐ßΓóá printf (printf, fprintf, sprintf, sscanf ¿
- scanf) ¿º¼Ñ¡∩½¿ß∞ αẽ¿τ¡δ¼¿ »πΓ∩¼¿ ó ΓÑτÑ¡¿Ñ φó«½εµ¿¿ XENIX(a),
- ¿ ¡Ñ¬«Γ«αδÑ ¿σ «ß«íÑ¡¡«ßΓ¿ ¡Ñ óßÑúñá »ÑαÑ¡«ß¿¼δ. 髺óαáΘáѼδÑ óѽ¿τ¿¡δ φΓ¿σ
- »«ñ»α«úαá¼¼ ¡Ñ «í∩ºáΓѽ∞¡« íπñπΓ ¿¼ÑΓ∞ «ñ¿¡á¬«óδÑ º¡áτÑ¡¿∩ ó« óßÑσ ß¿ßΓѼáσ.
- ìѬ«Γ«αδÑ ¿º »αÑ«íαẫóá¡¿⌐ Σ«α¼áΓ«ó ß¿¼ó«½«ó ¿º¼Ñ¡∩εΓ ¿σ º¡áτÑ¡¿∩,
- ó «ß«íÑ¡¡«ßΓ¿ ΓÑ, ¬«Γ«αδÑ ¬áßáεΓß∩ óδó«ñá ßΓα«τ¡δσ ¿ ºáú½áó¡δσ ß¿¼ó«½«ó ó
- ΦÑßΓ¡áñµáΓÑα¿τ¡«¼/ñÑß∩Γ¿τ¡«¼ ó¿ñÑ, ¿ «»¿ßá¡¿∩ ñ½¿¡¡δσ (long)
- µÑ½δσ ¡á ¼áΦ¿¡áσ ß 16-í¿Γ¡δ¼ ß½«ó«¼. æΓαá¡¿µá ß»αáó«τ¡«ú« απ¬«ó«ñßΓóá,
- »«ßó∩ΘÑ¡¡á∩ printf, ß«ñÑαª¿Γ ¬«ααÑ¬Γ¡«Ñ «»¿ßá¡¿Ñ φΓ¿σ »«ñ»α«úαá¼¼.
- .º» 1
- ÅÑαÑ¡«ß¿¼«ßΓ∞ ñá¡¡δσ
- # öá⌐½δ ñá¡¡δσ »«τΓ¿ óßÑúñá ¡Ñ »ÑαÑ¡«ß¿¼δ ßαÑñ¿ αẽ¿τ¡δσ ¼áΦ¿¡¡δσ
- áασ¿ΓѬΓπα CPU. èᬠ«Γ¼ÑτὫß∞ óδΦÑ, ßΓαπ¬Γπαδ, «íΩÑñ¿¡Ñ¡¿∩ ¿ ¼áßß¿óδ ¿¼ÑεΓ
- αẽ¿τ¡δ⌐ ó¡πΓαÑ¡¡¿⌐ Σ«α¼áΓ ¿ ΓαÑí«óá¡¿∩ ¬ ºá»«½¡Ñ¡¿ε ¡á αẽ¿τ¡δσ ¼áΦ¿¡áσ.
- è Γ«¼π ªÑ, »«α∩ñ«¬ íá⌐Γ«ó ó¡πΓα¿ ß½«ó ¿ ñÑ⌐ßΓó¿Γѽ∞¡á∩ ñ½¿¡á ß½«óá
- ¼«úπΓ αẽ¿τáΓ∞ß∩.
- # àñ¿¡ßΓóÑ¡¡δ¼ »πΓѼ ñ«ßΓ¿ªÑ¡¿∩ »ÑαÑ¡«ß¿¼«ßΓ¿ Σá⌐½«ó ñá¡¡δσ ∩ó½∩ÑΓß∩
- ºá»¿ß∞ ¿ τΓÑ¡¿Ñ Σá⌐½«ó ñá¡¡δσ ó ó¿ñÑ «ñ¡«¼Ñα¡δσ ß¿¼ó«½∞¡δσ ¼áßß¿ó«ó.
- ¥Γ« »«ºó«½¿Γ ¿ºíѪáΓ∞ »α«í½Ñ¼ óδαáó¡¿óá¡¿∩ ¿ ºá»«½¡Ñ¡¿∩, Ñß½¿ ñá¡¡δÑ
- ºá»¿ßδóáεΓß∩ ¿ ßτ¿ΓδóáεΓß∩ ¬á¬ ß¿¼ó«½δ, ¿ ¿¡ΓÑα»αÑΓ¿απεΓß∩ Γᬿ¼ ß»«ß«í«¼.
- Æá¬¿¼ «íαẫ¼, ΓѬßΓ«óδÑ ASCII Σá⌐½δ ¼«úπΓ «íδτ¡« »ÑαÑ¡«ß¿Γ∞ß∩ ¡á
- αẽ¿τ¡δÑ Γ¿»δ ¼áΦ¿¡ íѺ ß½¿Φ¬«¼ í«½∞Φ¿σ »α«í½Ñ¼.
- .º» 1
- Lint
- # Lint - φΓ« »α«úαá¼¼á »α«óÑન, ¬«Γ«αá∩ »δΓáÑΓß∩ «í¡áαπª¿Γ∞ «ß«íÑ¡¡«ßΓ¿
- ó úαπ»»Ñ ¿ßσ«ñ¡δσ Σá⌐½«ó ¡á æ, ΓѬßΓ ¬«Γ«αδσ ¡Ñ»ÑαÑ¡«ß¿¼ ¿½¿ ¡Ñ¬«ααѬΓÑ¡.
- Äñ¡¿¼ ¿º »αÑ¿¼πΘÑßΓó »α«úαá¼¼δ lint ßóÑασ ½εí«⌐ »α«óÑન ¬«¼»¿½∩µ¿Ñ⌐
- ∩ó½∩ÑΓß∩ »α«óÑα¬á «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐ ¿ «íαáΘÑ¡¿∩ »« óßѼπ ¿ßσ«ñ¡«¼π Σá⌐½π.
- ì¿ ¬«¼»¿½∩Γ«α, ¡¿ αÑñá¬Γ«α ßó∩ºÑ⌐ φΓ«ú« ¡Ñ ñѽáÑΓ.
- # Lint óδñáÑΓ »αÑñπ»αÑñ¿Γѽ∞¡δÑ ß««íΘÑ¡¿∩ « ¡Ñ»ÑαÑ¡«ß¿¼δσ áα¿Σ¼ÑΓ¿τÑ߬¿σ
- π¬áºáΓѽ∩σ, »α¿ßó«Ñ¡¿∩σ ¿ »αÑ«íαẫóá¡¿∩σ Γ¿»«ó. Äñ¡á¬«, Ñß½¿ lint
- ¡Ñ óδñá½ ¡¿¬á¬¿σ »αÑñπ»αѪñÑ¡¿⌐, φΓ« ¡Ñ «º¡áτáÑΓ, τΓ« »α«úαá¼¼á ß«óÑαΦÑ¡¡«
- »ÑαÑ¡«ß¿¼á.
- .º» 1
- èαáΓ¬« « »«α∩ñ¬Ñ íá⌐Γ«ó
- # é ¡¿ªÑ»α¿óÑñÑ¡¡δσ Γáí½¿µáσ ¿ß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ ß«ú½áΦÑ¡¿∩:
- # a0 - ¼½áñΦ¿⌐ Σ¿º¿τÑ߬¿ áñαÑßπѼδ⌐ íá⌐Γ φ½Ñ¼Ñ¡Γá ñá¡¡δσ. a0+1, ¿ Γ.ñ.
- # b0 - ¡á¿¼Ñ¡ÑÑ º¡áτ¿¼δ⌐ íá⌐Γ φ½Ñ¼Ñ¡Γá ñá¡¡δσ; b1 íπñÑΓ ß½ÑñπεΘ¿¼ ¡á¿¼Ñ¡ÑÑ
- º¡áτ¿¼δ¼, ¿ Γ.ñ.
- # çá¼ÑΓ¿¼, τΓ« óßÑ »α«úαá¼¼δ, ¬«Γ«αδÑ ñÑ⌐ßΓó¿Γѽ∞¡« íπñπΓ ¿ß»«½∞º«óáΓ∞
- φΓ« ¿¡Σ«α¼áµ¿ε, úáαá¡Γ¿α«óá¡¡« íπñπΓ ¡Ñ»ÑαÑ¡«ß¿¼δ!
- .t2 6 Å«α∩ñ«¬ íá⌐Γ«ó ñ½∩ ¬«α«Γ¬¿σ Γ¿»«ó
- |---------------------------|
- | CPU | Å«α∩ñ«¬ íá⌐Γ«ó |
- |---------|-----------------|
- | | a0 | b0 |
- |---------------------------|
- |---------|--------|--------|
- | PDP-11 | b0 | b1 |
- |---------|--------|--------|
- | VAX-11 | b0 | b1 |
- |---------|--------|--------|
- | 8086 | b0 | b1 |
- |---------|--------|--------|
- | 286 | b0 | b1 |
- |---------|--------|--------|
- | M68000 | b1 | b0 |
- |---------|--------|--------|
- | Z8000 | b1 | b0 |
- |---------|--------|--------|
-
- .t2 6 Å«α∩ñ«¬ íá⌐Γ«ó ñ½∩ ñ½¿¡¡δσ Γ¿»«ó
- |--------------------------------------------|
- | CPU | Å«α∩ñ«¬ íá⌐Γ«ó |
- |---------|----------------------------------|
- | | a0 | a1 | a2 | a3 |
- |--------------------------------------------|
- |---------|--------|--------|--------|-------|
- | PDP-11 | b2 | b3 | b0 | b1 |
- |---------|--------|--------|--------|-------|
- | VAX-11 | b0 | b1 | b2 | b3 |
- |---------|--------|--------|--------|-------|
- | 8086* | b0 | b1 | b2 | b3 |
- |---------|--------|--------|--------|-------|
- | 8086** | b2 | b3 | b0 | b1 |
- |---------|--------|--------|--------|-------|
- | 286 | b0 | b1 | b2 | b3 |
- |---------|--------|--------|--------|-------|
- | M68000 | b3 | b2 | b1 | b0 |
- |---------|--------|--------|--------|-------|
- | Z8000 | b3 | b2 | b1 | b0 |
- |---------|--------|--------|--------|-------|
-
- # ÄΓ¼ÑΓ¿¼, τΓ« »«α∩ñ«¬ íá⌐Γ«ó ñ½∩ ñ½¿¡¡δσ Γ¿»«ó ¡á PDP-11 ¿ ¼áΦ¿¡áσ ¡á íáºÑ
- 8086 ºáó¿ß¿Γ «Γ ¬«¼»¿½∩Γ«αá (á ¡Ñ «Γ CPU - á»»áαáΓπαδ).
- ¥Γá Γáí½¿µá «ß¡«óá¡á ñ½∩ PDP-11 ¡á ¬«¼»¿½∩Γ«αÑ Ritchie.
- æΓ᫬á 8086* »«¬áºδóáÑΓ »«α∩ñ«¬ íá⌐Γ«ó ñ½∩ ¬«¼»¿½∩Γ«α«ó, ¿ß»«½∞ºπεΘ¿σ
- »«α∩ñ«¬ ß½«ó ó XENIX System V (ó-¬«¡µÑ-¼½áñΦ¿⌐). æΓ᫬á 8086**
- »«¬áºδóáÑΓ »«α∩ñ«¬ íá⌐Γ«ó ñ½∩ ¬«¼»¿½∩Γ«α«ó XENIX 3.0 (ó-¬«¡µÑ-ßΓáαΦ¿⌐).
- Å«½∞º«óáΓѽ¿ 8086 ¼«úπΓ ¿ß»«½∞º«óáΓ∞ dtype(C) ñ½∩ «»αÑñѽѡ¿∩,
- ∩ó½∩ÑΓß∩ ½¿ Σá⌐½«óá∩ ß¿ßΓÑ¼á »«ß½«ó¡«⌐.
- .»¼ Include - Σá⌐½δ ∩ºδ¬á æ¿
- # é Γáí½¿µÑ »α¿óÑñÑ¡ ß»¿ß«¬ include-Σá⌐½«ó ñ½∩
- αẽ¿τ¡δσ ¬«¼»¿½∩Γ«α«ó ∩ºδ¬á æ¿
- .Γ¼ 5
- -------------------------------------------------------------------------------
- ê¼∩ | MSC | Turbo-C | XENIX | OC | äѼ«ß-2 | OCI | ANSI
- include | V5.0 | V1.5 | SYSTEM V | AIX | | VENIX |ßΓá¡ñáαΓ
- Σá⌐½á | | | | V1.1| | |
- ------------------|------|---------|----------|-----|---------|--------|-------
- a.out.h | | | + | + | | |
- alloc.h | | + | | | | |
- ar.h | | | + | + | | |
- assert.h | + | + | + | + | | | +
- backup.h | | | | + | | |
- bios.h | + | + | | | | |
- cfg01.h- | | | | | | |
- cfg04.h | | | | + | | |
- conio.h | + | + | +* | | | |
- core.h | | | + | + | | |
- ctype.h | + | + | + | + | | | +
- cur01.h- | | | | | | |
- cur05.h | | | | + | | |
- curses.h | | | + | + | | |
- dbm.h | | | + | + | | |
- dial.h | | | + | | | |
- dir.h | | + | | | | |
- direct.h | + | | +* | | | |
- dmpfmt.h | | | | + | | |
- dos.h | + | + | +* | + | | |
- doserrno.h | | | | + | | |
- dumprestor.h | | | + | | | |
- errno.h | + | + | + | + | | |
- execargs.h | | | + | + | | |
- fatal.h | | | | + | | |
- fcntl.h | + | + | + | + | | |
- filechdr.h | | | | + | | |
- float.h | + | + | | | | |
- ftw.h | | | + | + | | |
- gpoff.h | | | | + | | |
- graph.h | + | | | | | |
- graphics.h | | + | | | | |
- grp.h | | | + | + | | |
- gslerrno.h | | | | + | | |
- ieeetrap.h | | | | + | | |
- inu21.h | | | | + | | |
- io.h | + | + | +* | | | |
- limits.h | + | + | | | | |
- linenum.h | | | | + | | |
- local.h | | | | | | | +
- lockcmn.h | | | + | | | |
- lprio.h | | | | + | | |
- macros.h | | | + | + | | |
- malloc.h | + | | + | | | |
- math.h | + | + | + | + | | | +
- mdverify.h | | | | + | | |
- mem.h | | + | | | | |
- memory.h | + | | + | + | | |
- mnttab.h | | | + | + | | |
- mon.h | | | + | + | | |
- msg00.h-msg10.h | | | | + | | |
- nan.h | | | | + | | |
- nlist.h | | | | + | | |
- process.h | + | + | +* | | | |
- pwd.h | | | + | + | | |
- regexp.h | | | + | + | | |
- register.h | | | +* | | | |
- sd.h | | | + | | | |
- search.h | + | + | + | + | | |
- setjmp.h | + | + | + | + | | | +
- sgtty.h | | | + | | | |
- share.h | + | + | +* | | | |
- signal.h | + | + | + | + | | | +
- stand.h | | | + | + | | |
- spawn.h | | | +* | | | |
- stdarg.h | + | + | | | | | +
- stddef.h | + | + | | | | | +
- stdio.h | + | + | + | + | | | +
- stdlib.h | + | + | +* | | | | +
- string.h | + | + | + | + | | | +
- sysm.h | | | | + | | |
- term.h | | | + | + | | |
- termio.h | | | + | + | | |
- time.h | + | + | + | + | | | +
- uinfo.h | | | | + | | |
- unctrl.h | | | | + | | |
- unistd.h | | | + | + | | |
- ustat.h | | | + | + | | |
- utmp.h | | | + | + | | |
- v2tov3.h | | | +* | | | |
- values.h | | + | + | + | | |
- varargs.h | + | | + | + | | |
- vrcchar.h | | | | + | | |
- vrcppr.h | | | | + | | |
- vrm.h | | | | + | | |
- sys/FP.h | | | | + | | |
- sys/a.out.h | | | + | | | |
- sys/acct.h | | | + | + | | |
- sys/asdef.h | | | | + | | |
- sys/assert.h | | | + | | | |
- sys/bioca.h | | | | + | | |
- sys/brk.h | | | + | | | |
- sys/buf.h | | | + | + | | |
- sys/callo.h | | | + | + | | |
- sys/clock.h | | | | + | | |
- sys/comcrt.h | | | + | | | |
- sys/conf.h | | | + | + | | |
- sys/console.h | | | + | | | |
- sys/crtctl.h | | | + | | | |
- sys/debug.h | | | | + | | |
- sys/devinfo.h | | | | + | | |
- sys/dio.h | | | + | | | |
- sys/dir.h | | | + | + | | |
- sys/direache.h | | | | + | | |
- sys/dump.h | | | | + | | |
- sys/dynaprobe.h | | | | + | | |
- sys/elog.h | | | | + | | |
- sys/erec.h | | | | + | | |
- sys/err.h | | | | + | | |
- sys/errno.h | | | + | + | | |
- sys/fblk.h | | | + | + | | |
- sys/fd.h | | | | + | | |
- sys/file.h | | | + | + | | |
- sys/filsys.h | | | + | + | | |
- sys/fpfp.h | | | | + | | |
- sys/fpfpi.h | | | | + | | |
- sys/fstypes | | | | + | | |
- sys/hft.h | | | | + | | |
- sys/hwdbus.h | | | | + | | |
- sys/idd.h | | | + | | | |
- sys/init.h | | | | + | | |
- sys/ino.h | | | + | + | | |
- sys/inode.h | | | + | + | | |
- sys/io.h | | | | + | | |
- sys/iobuf.h | | | + | + | | |
- sys/ioctl.h | | | + | + | | |
- sys/ipc.h | | | + | + | | |
- sys/kcfg.h | | | | + | | |
- sys/kcs.h | | | | + | | |
- sys/kio.h | | | | + | | |
- sys/kmon.h | | | + | | | |
- sys/kproc.h | | | | + | | |
- sys/kpsb.h | | | | + | | |
- sys/ksvc.h | | | | + | | |
- sys/lock.h | | | + | + | | |
- sys/lockcmn.h | | | + | | | |
- sys/lockf.h | | | | + | | |
- sys/locking.h | + | | + | | | |
- sys/low.h | | | | + | | |
- sys/lprio.h | | | | + | | |
- sys/mashdep.h | | | + | | | |
- sys/map.h | | | + | + | | |
- sys/mmu.h | | | + | | | |
- sys/mount.h | | | + | + | | |
- sys/msg.h | | | + | + | | |
- sys/ndir.h | | | + | | | |
- sys/ndp.h | | | + | | | |
- sys/nfs.h | | | + | | | |
- sys/opt.h | | | | + | | |
- sys/param.h | | | + | + | | |
- sys/preadi.h | | | + | | | |
- sys/pri.h | | | | + | | |
- sys/proc.h | | | + | + | | |
- sys/proctl.h | | | + | | | |
- sys/pty.h | | | | + | | |
- sys/rebust.h | | | | + | | |
- sys/reg.h | | | + | + | | |
- sys/relsym.h | | | + | | | |
- sys/relsym86.h | | | + | | | |
- sys/sd.h | | | + | | | |
- sys/seg.h | | | | + | | |
- sys/sem.h | | | + | + | | |
- sys/shm.h | | | + | + | | |
- sys/signal.h | | | + | + | | |
- sys/sites.h | | | + | | | |
- sys/space.h | | | + | + | | |
- sys/stat.h | + | + | + | + | | |
- sys/sysinfo.h | | | + | + | | |
- sys/sysmacros.h | | | + | + | | |
- sys/systm.h | | | + | + | | |
- sys/tape.h | | | | + | | |
- sys/termio.h | | | + | + | | |
- sys/text.h | | | + | + | | |
- sys/timeb.h | + | | + | | | |
- sys/times.h | | | + | + | | |
- sys/trace.h | | | | + | | |
- sys/trap.h | | | | + | | |
- sys/ttold.h | | | + | | | |
- sys/tty.h | | | + | + | | |
- sys/types.h | + | | + | + | | |
- sys/uio.h | | | | + | | |
- sys/ulimit.h | | | + | | | |
- sys/user.h | | | + | + | | |
- sys/utime.h | + | | +* | | | |
- sys/utsname.h | | | + | + | | |
- sys/var.h | | | + | + | | |
- sys/vrmtimer.h | | | | + | | |
- .»¼ ü¿í½¿«ΓѬá ∩ºδ¬á æ¿
- # é Γáí½¿µÑ »α¿óÑñÑ¡ ß»¿ß«¬ ¡áºóá¡¿⌐ Σπ¡¬µ¿⌐ ñ½∩
- αẽ¿τ¡δσ ¬«¼»¿½∩Γ«α«ó ∩ºδ¬á æ¿
- .Γ¼ 5
- -------------------------------------------------------------------------------
- ê¼∩ | MSC | Turbo-C | XENIX | OC | äѼ«ß-2 | OC | ANSI
- í¿í½¿«ΓÑτ¡«⌐ Σπ¡¬-| V5.0 | V1.5 | SYSTEM V | AIX | | VENIX |ßΓá¡ñáαΓ
- µ¿¿ ¿½¿ í¿í½¿«ΓѬ¿| | | | V1.1| | |
- ------------------|------|---------|----------|-----|---------|--------|-------
- abort | + | | | | | | +
- abs | + | | | | | | +
- acces | + | | | | | |
- acos | + | | | | | | +
- asctime | + | | | | | | +
- asin | + | | | | | | +
- assert | + | | | | | | +
- atan | + | | | | | | +
- atan2 | + | | | | | | +
- atexit | | | | | | | +
- atof | + | | | | | | +
- atoi | + | | | | | | +
- atol | + | | | | | | +
- bessel | + | | | | | |
- bsearch | + | | | | | | +
- cabs | + | | | | | |
- calloc | + | | | | | | +
- ceil | + | | | | | | +
- cgets | + | | | | | |
- chdir | + | | | | | |
- chmod | + | | | | | |
- chsize | + | | | | | |
- _clear87 | + | | | | | |
- clearerr | + | | | | | | +
- clock | | | | | | | +
- close | + | | | | | |
- compar | | | | | | | +
- _control87 | + | | | | | |
- cos | + | | | | | | +
- cosh | + | | | | | | +
- cprintf | + | | | | | |
- cputs | + | | | | | |
- creat | + | | | | | |
- cscanf | + | | | | | |
- ctime | + | | | | | | +
- dieeetomsbin- | | | | | | |
- dmsbintoieee | + | | | | | |
- difftime | + | | | | | | +
- div | | | | | | | +
- dosexterr | + | | | | | |
- dup | + | | | | | |
- dup2 | + | | | | | |
- ecvt | + | | | | | |
- eof | + | | | | | |
- execl | + | | | | | |
- execle | + | | | | | |
- execlp | + | | | | | |
- execlpe | + | | | | | |
- execve | + | | | | | |
- execvp | + | | | | | |
- execvpe | + | | | | | |
- _exit | + | | | | | |
- exit | + | | | | | | +
- exp | + | | | | | | +
- expand | + | | | | | |
- fabs | + | | | | | | +
- fclose | + | | | | | | +
- fcloseall | + | | | | | |
- fcvt | + | | | | | |
- fdopen | + | | | | | |
- feof | + | | | | | | +
- ferror | + | | | | | | +
- fflush | + | | | | | | +
- _ffree | + | | | | | |
- fgetc | + | | | | | | +
- fgetchar | + | | | | | |
- fgetpos | | | | | | | +
- fgets | + | | | | | | +
- fieeetomsbin - | | | | | | |
- fmsbintoieee | + | | | | | |
- filelength | + | | | | | |
- fileno | + | | | | | |
- floor | + | | | | | | +
- flushall | + | | | | | |
- _fmalloc | + | | | | | |
- fmod | + | | | | | | +
- _fmsize | + | | | | | |
- fopen | + | | | | | | +
- FP_OFF | + | | | | | |
- _fpreset | + | | | | | |
- fprintf | + | | | | | | +
- FP_SEG | + | | | | | |
- fputc | + | | | | | | +
- fputchar | + | | | | | |
- fputs | + | | | | | | +
- fread | + | | | | | | +
- free | + | | | | | | +
- _freect | + | | | | | |
- frexp | + | | | | | | +
- freopen | + | | | | | | +
- fscanf | + | | | | | | +
- fseek | + | | | | | | +
- fsetpos | | | | | | | +
- fstat | + | | | | | |
- ftell | + | | | | | | +
- ftime | + | | | | | |
- fwrite | + | | | | | | +
- gcvt | + | | | | | |
- getc | + | | | | | | +
- getch | + | | | | | |
- getche | + | | | | | |
- getchar | + | | | | | | +
- getcwd | + | | | | | |
- getenv | + | | | | | | +
- getpid | + | | | | | |
- gets | + | | | | | | +
- getw | + | | | | | |
- gmtime | + | | | | | | +
- halloc | + | | | | | |
- hfree | + | | | | | |
- hypot | + | | | | | |
- inp | + | | | | | |
- int86 | + | | | | | |
- int86x | + | | | | | |
- intdos | + | | | | | |
- intdosx | + | | | | | |
- isalnum | + | | | | | | +
- isalpha | + | | | | | | +
- isatty | + | | | | | |
- iscntrl | + | | | | | | +
- isdigit | + | | | | | | +
- isgraph | + | | | | | | +
- islower | + | | | | | | +
- isprint | + | | | | | | +
- ispunct | + | | | | | | +
- isspace | + | | | | | | +
- isupper | + | | | | | | +
- isxdigit | + | | | | | | +
- itoa | + | | | | | |
- kbhit | + | | | | | |
- labs | + | | | | | | +
- ldexp | + | | | | | | +
- ldiv | | | | | | | +
- lfind-lsearch | + | | | | | |
- localtime | + | | | | | | +
- locking | + | | | | | |
- log | + | | | | | | +
- log10 | + | | | | | | +
- longjmp | + | | | | | | +
- lseek | + | | | | | |
- ltoa | + | | | | | |
- malloc | + | | | | | | +
- matherr | + | | | | | |
- _memavl | + | | | | | |
- memchr | + | | | | | | +
- memcmp | + | | | | | | +
- memcpy | + | | | | | | +
- memicmp | + | | | | | |
- memmove | | | | | | | +
- memset | + | | | | | | +
- mkdir | + | | | | | |
- mktime | | | | | | | +
- mktemp | + | | | | | |
- modf | + | | | | | | +
- movedata | + | | | | | |
- _msize | + | | | | | |
- _nfree | + | | | | | |
- _nmalloc | + | | | | | |
- _nmsize | + | | | | | |
- offsetof | | | | | | | +
- onexit | + | | | | | |
- open | + | | | | | |
- outp | + | | | | | |
- perror | + | | | | | | +
- pow | + | | | | | | +
- printf | + | | | | | | +
- putc | + | | | | | | +
- putch | + | | | | | |
- putchar | + | | | | | | +
- putenv | + | | | | | |
- puts | + | | | | | | +
- putw | + | | | | | |
- qsort | + | | | | | | +
- raise | | | | | | | +
- rand | + | | | | | | +
- read | + | | | | | |
- realloc | + | | | | | | +
- remove | + | | | | | | +
- rename | + | | | | | | +
- rewind | + | | | | | | +
- rmdir | + | | | | | |
- rmtmp | + | | | | | |
- sbrk | + | | | | | |
- scanf | + | | | | | | +
- segread | + | | | | | |
- setbuf | + | | | | | | +
- setlocale | | | | | | | +
- setjmp | + | | | | | | +
- setmode | + | | | | | |
- setvbuf | + | | | | | | +
- signal | + | | | | | | +
- sin | + | | | | | | +
- sinh | + | | | | | | +
- sopen | + | | | | | |
- sprintf | + | | | | | | +
- spawnl-spawnvpe | + | | | | | |
- sqrt | + | | | | | | +
- srand | + | | | | | | +
- sscanf | + | | | | | | +
- stackvail | + | | | | | |
- stat | + | | | | | |
- _status87 | + | | | | | |
- strcat | + | | | | | | +
- strchr | + | | | | | | +
- strcmp | + | | | | | | +
- strcmpi,stricmp | + | | | | | |
- strcoll | | | | | | | +
- strcpy | + | | | | | | +
- strcspn | + | | | | | |
- strdup | + | | | | | |
- strerror | + | | | | | | +
- strftime | | | | | | | +
- strlen | + | | | | | | +
- strlwr | + | | | | | |
- strncat | + | | | | | | +
- strncmp | + | | | | | | +
- strncpy | + | | | | | | +
- strnicmp | + | | | | | |
- strnset | + | | | | | |
- strpbrk | + | | | | | | +
- strrchr | + | | | | | |
- strrev | + | | | | | |
- strset | + | | | | | |
- strspn | + | | | | | | +
- strstr | + | | | | | | +
- strtod | + | | | | | | +
- strtok | + | | | | | | +
- strtol | + | | | | | | +
- strtoul | | | | | | | +
- strupr | + | | | | | |
- swab | + | | | | | |
- system | + | | | | | | +
- tan | + | | | | | | +
- tanh | + | | | | | | +
- tell | + | | | | | |
- tempnam | + | | | | | |
- time | + | | | | | | +
- tmpfile | + | | | | | | +
- tmpnam | + | | | | | | +
- toascii | + | | | | | |
- tolower | + | | | | | | +
- toupper | + | | | | | | +
- tzset | + | | | | | |
- ultoa | + | | | | | |
- umask | + | | | | | |
- ungetc | + | | | | | | +
- unlink | + | | | | | |
- utime | + | | | | | |
- va_start | + | | | | | | +
- va_arg | + | | | | | | +
- va_end | + | | | | | | +
- vfprintf | + | | | | | | +
- vprintf | + | | | | | | +
- vsprintf | + | | | | | | +
- write | + | | | | | |
-
-
-
-
-