home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-04-27 | 72.7 KB | 1,439 lines |
- - 40 -
-
-
-
- ªÑΓ íδΓ∞ ºáñá¡á í«½ÑÑ τѼ «ñ¡á »ÑαѼѡ¡á∩ »πΓѼ ºáñá¡¿∩ ¼¡«ªÑßΓ-
- óÑ¡¡«ú« «í"∩ó½Ñ¡¿∩, ó ¬«Γ«α«¼ ñѬ½áαáΓ«αδ αáºñÑ½Ñ¡δ ºá»∩Γ묨.
- <sc- spesifier> ºáñáÑΓ ¬½áßß »á¼∩Γ¿ »ÑαѼѡ¡«⌐. é ¡Ñ¬«Γ«αδσ ß½π-
- τá∩σ »ÑαѼѡ¡δÑ ¼«úπΓ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡δ »α¿ ¿σ «»αÑñѽѡ¿¿.
- è½áßßδ »á¼∩Γ¿ ¿ ¿¡¿µ¿á½¿ºáµ¿∩ «»¿ßá¡δ ó αáºñѽáσ 4.6 ¿ 4.7 ß««Γ-
- óÑΓßΓóÑ¡¡«.
-
-
- 4.4.1. Äí"∩ó½Ñ¡¿Ñ »α«ßΓ«⌐ »ÑαѼѡ¡«⌐
-
- æ¿¡Γá¬ß¿ß:
-
- <type-specifier><identifier>[,<identifier>...];
-
- Äí"∩ó½Ñ¡¿Ñ »α«ßΓ«⌐ »ÑαѼѡ¡«⌐ «»αÑñѽ∩ÑΓ ¿¼∩ »ÑαѼѡ¡«⌐ ¿
- ÑÑ Γ¿»; «¡« ¼«ªÑΓ Γá¬ªÑ «»αÑñѽ∩Γ∞ ¬½áßß »á¼∩Γ¿ »ÑαѼѡ¡«⌐, ¬á¬
- φΓ« «»¿ßá¡« ó αáºñÑ½Ñ 4.6. ê¼∩ »ÑαѼѡ¡«⌐- φΓ« ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ºá-
- ñá¡¡δ⌐ ó «í"∩ó½Ñ¡¿¿. æ»Ñµ¿Σ¿¬áΓ«α Γ¿»á <type-specifier> ºáñáÑΓ
- ¿¼∩ «»αÑñѽ∩Ѽ«ú« Γ¿»á ñá¡¡δσ.
- ¡« «»αÑñѽ¿Γ∞ ¿¼Ñ¡á αẽ¿τ¡δσ »ÑαѼѡ¡δσ ó Γ«¼ ªÑ ßἫ¼
- «í"∩ó½Ñ¡¿¿, ºáñáóá∩ ß»¿ß«¬ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, αáºñѽѡ¡δσ ºá»∩Γ«⌐.
- èáªñδ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ß»¿ß¬á ¿¼Ñ¡πÑΓ »ÑαѼѡ¡πε. éßÑ »ÑαѼѡ¡δÑ,
- ºáñá¡¡δÑ ó «í"∩ó½Ñ¡¿¿, ¿¼ÑεΓ «ñ¿¡ ¿ ëà ªÑ Γ¿».
-
- Åα¿¼Ñαδ
-
- int x; /* Example 1 */
-
- unsigned long reply, flag /* Example 2 */
-
- double order; /* Example 3 */
-
- é »Ñαó«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »α«ßΓá∩ »ÑαѼѡ¡á∩ x. ¥Γá »Ñ-
- αѼѡ¡á∩ ¼«ªÑΓ »α¿¡¿¼áΓ∞ ½εí«Ñ º¡áτÑ¡¿Ñ ¿º ¼¡«ªÑßΓóá º¡áτÑ¡¿⌐,
- «»αÑñѽ∩Ѽδσ ñ½∩ Γ¿»á int.
- é« óΓ«α«¼ »α¿¼ÑαÑ «í"∩ó½Ñ¡δ ñóÑ »ÑαѼѡ¡δÑ: reply ¿ flag.
- ÄíÑ »ÑαѼѡ¡δÑ ¿¼ÑεΓ Γ¿» unsigned long.
- é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ «í"∩ó½Ñ¡á »ÑαѼѡ¡á∩ order, ¬«Γ«αá∩ ¿¼ÑÑΓ
- Γ¿» double. ¥Γ«⌐ »ÑαѼѡ¡«⌐ ¼«úπΓ íδΓ∞ »α¿ßó«Ñ¡δ óѽ¿τ¿¡δ ß »½á-
- óáεΘÑ⌐ ºá»∩Γ«⌐.
-
-
- 4.4.2. Äí"∩ó½Ñ¡¿Ñ »ÑαÑτ¿ß½Ñ¡¿∩
-
- æ¿¡Γá¬ß¿ß:
-
- enum[<tag>]{<enum-list>}<identifier>[,<identifier>...];
-
- enum<tag><identifier>[,<identifier>...];
-
- Äí"∩ó½Ñ¡¿Ñ »ÑαÑτ¿ß½Ñ¡¿∩ ºáñáÑΓ ¿¼∩ »ÑαѼѡ¡«⌐ »ÑαÑτ¿ß½Ñ¡¿∩
- ¿ «»αÑñѽ∩ÑΓ ß»¿ß«¬ ¿¼Ñ¡«óá¡¡δσ ¬«¡ßΓá¡Γ, ¡áºδóáѼδ⌐ ß»¿ß¬«¼ »Ñ-
- αÑτ¿ß½Ñ¡¿∩. ç¡áτÑ¡¿Ñ¼ ¬áªñ«ú« ¿¼Ñ¡¿ ß»¿ß¬á ∩ó½∩ÑΓß∩ µÑ½«Ñ τ¿ß½«.
- ÅÑαѼѡ¡á∩ »ÑαÑτ¿ß½Ñ¡¿∩ »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ «ñ¡«⌐ ¿º ¿¼Ñ¡«óá¡¡δσ
- ¬«¡ßΓá¡Γ ß»¿ß¬á. ê¼Ñ¡«óá¡¡δÑ ¬«¡ßΓá¡Γδ ß»¿ß¬á ¿¼ÑεΓ Γ¿» int. Æá-
-
- - 41 -
-
-
- ¬¿¼ «íαẫ¼, »á¼∩Γ∞ ß««ΓóÑΓßΓóπεΘá∩ »ÑαѼѡ¡«⌐ »ÑαÑτ¿ß½Ñ¡¿∩- φΓ«
- »á¼∩Γ∞, ¡Ñ«íσ«ñ¿¼á∩ ñ½∩ αẼÑΘÑ¡¿∩ «Γñѽ∞¡«⌐ µÑ½«⌐ óѽ¿τ¿¡δ.
- Äí"∩ó½Ñ¡¿Ñ »ÑαÑτ¿ß½Ñ¡¿∩ ¡áτ¿¡áÑΓß∩ ß ¬½ετÑó«ú« ß½«óá enum ¿
- ¿¼ÑÑΓ ñóÑ Σ«α¼δ »αÑñßΓáó½Ñ¡¿∩. é »Ñαó«⌐ Σ«α¼Ñ »αÑñßΓáó½Ñ¡¿∩ ¿¼Ñ¡á
- »ÑαÑτ¿ß½Ñ¡¿∩ ºáñáεΓß∩ ó ß»¿ß¬Ñ »ÑαÑτ¿ß½Ñ¡¿∩ <enum-list>.
- Ä»µ¿∩ <tag>- φΓ« ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ¬«Γ«αδ⌐ ¿¼Ñ¡πÑΓ Γ¿» »ÑαÑ-
- τ¿ß½Ñ¡¿∩, «»αÑñѽѡ¡«ú« ó <enum-list>.
- ÅÑαѼѡ¡πε »ÑαÑτ¿ß½Ñ¡¿∩ ¿¼Ñ¡πÑΓ <identifier>. é «í"∩ó½Ñ¡¿¿
- ¼«ªÑΓ íδΓ∞ «»¿ßá¡á í«½ÑÑ τѼ «ñ¡á »ÑαѼѡ¡á∩ »ÑαÑτ¿ß½Ñ¡¿∩.
- é« óΓ«α«⌐ Σ«α¼Ñ ¿ß»«½∞ºπÑΓß∩ ΓÑú »ÑαÑτ¿ß½Ñ¡¿∩, ¬«Γ«αδ⌐ ßßδ-
- ½áÑΓß∩ ¡á Γ¿» »ÑαÑτ¿ß½Ñ¡¿∩. é φΓ«⌐ Σ«α¼Ñ «í"∩ó½Ñ¡¿∩ ß»¿ß«¬ »ÑαÑ-
- τ¿ß½Ñ¡¿∩ ¡Ñ »αÑñßΓáó½Ñ¡, »«ß¬«½∞¬π Γ¿» »ÑαÑτ¿ß½Ñ¡¿∩ «»αÑñѽѡ ó
- ñαπú«¼ ¼ÑßΓÑ. àß½¿ ºáñáóáѼδ⌐ ΓÑú ¡Ñ ßßδ½áÑΓß∩ ¡á πªÑ «»αÑñѽѡ-
- ¡δ⌐ Γ¿» »ÑαÑτ¿ß½Ñ¡¿∩, ¿½¿ Ñß½¿ ¿¼Ñ¡πѼδ⌐ ΓÑú«¼ Γ¿» ¡áσ«ñ¿Γß∩ ó¡Ñ
- ΓѬπΘÑ⌐ ó¿ñ¿¼«ßΓ¿, Γ« óδñáÑΓß∩ «Φ¿í¬á.
-
- <enum-list> ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ß¿¡Γá¬ß¿ß:
-
- <identifier>[=<constant-expression>][,<identifier>
- [=<constant-expression]]...
- .
- .
- .
-
- èáªñδ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¿¼Ñ¡πÑΓ φ½Ñ¼Ñ¡Γδ »ÑαÑτ¿ß½Ñ¡¿∩. Å«
- π¼«½τá¡¿ε »Ñαó«¼π ¿ñÑ¡Γ¿Σ¿¬áΓ«απ ß««ΓóÑΓßΓóπÑΓ º¡áτÑ¡¿Ñ 0, ß½Ññπ-
- εΘ¿⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α áßß«µ¿¿απÑΓß∩ ß« º¡áτÑ¡¿Ñ¼ 1 ¿ Γ. ñ. ê¼∩ ¬«¡ß-
- Γá¡Γδ »ÑαÑτ¿ß½Ñ¡¿∩ φ¬ó¿óá½Ñ¡Γ¡« ÑÑ º¡áτÑ¡¿ε.
- çỿß∞ =<constant-expression> »ÑαÑ«»αÑñѽ∩ÑΓ »«ß½Ññ«óáΓѽ∞-
- ¡«ßΓ∞ º¡áτÑ¡¿⌐, ºáñá¡¡δσ »« π¼«½τá¡¿ε. êñÑ¡Γ¿Σ¿¬áΓ«α, ß½ÑñπεΘ¿⌐
- »ÑαÑñ ºá»¿ß∞ε =<constant-expression> »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ, ºáñáóáÑ-
- ¼«Ñ φΓ¿¼ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼. è«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ ¿¼ÑÑΓ Γ¿»
- int ¿ ¼«ªÑΓ íδΓ∞ «Γα¿µáΓѽ∞¡δ¼. æ½ÑñπεΘ¿⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ó ß»¿ß¬Ñ
- áßß«µ¿¿απÑΓß∩ ß óѽ¿τ¿¡«⌐, αáó¡«⌐ <constant-expression>+1, Ñß½¿
- «¡ ∩ó¡« ¡Ñ ºáñáÑΓß∩ ñαπú«⌐ óѽ¿τ¿¡«⌐.
- ÅÑαÑτ¿ß½Ñ¡¿Ñ ¼«ªÑΓ ß«ñÑαªáΓ∞ »«óΓ«α∩εΘ¿Ñß∩ º¡áτÑ¡¿∩ ¿ñÑ¡Γ¿-
- Σ¿¬áΓ«α«ó, ¡« ¬áªñδ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ñ«½ªÑ¡ íδΓ∞ π¡¿¬á½∞¡δ¼. èα«¼Ñ
- Γ«ú«, «¡ ñ«½ªÑ¡ íδΓ∞ «Γ½¿τ¡δ¼ «Γ óßÑσ ñαπú¿σ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó »Ñ-
- αÑτ¿ß½Ñ¡¿⌐ ß Γ«⌐ ªÑ ó¿ñ¿¼«ßΓ∞ε. ìá»α¿¼Ñα, ñóπ¼ αẽ¿τ¡δ¼ ¿ñÑ¡Γ¿-
- Σ¿¬áΓ«αá¼ null ¿ zero ¼«ªÑΓ íδΓ∞ ºáñá¡« º¡áτÑ¡¿Ñ 0 ó «ñ¡«¼ ¿ Γ«¼
- ªÑ »ÑαÑτ¿ß½Ñ¡¿¿. êñÑ¡Γ¿Σ¿¬áΓ«αδ ñ«½ª¡δ íδΓ∞ «Γ½¿τ¡δ «Γ ñαπú¿σ
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ß Γ«⌐ ªÑ ßἫ⌐ ó¿ñ¿¼«ßΓ∞ε, ó¬½ετá∩ ¿¼Ñ¡á «íδτ¡δσ
- »ÑαѼѡ¡δσ ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ñαπú¿σ »ÑαÑτ¿ß½Ñ¡¿⌐. ÆÑú¿ »ÑαÑτ¿ß½Ñ-
- ¡¿⌐ ñ«½ª¡δ íδΓ∞ «Γ½¿τ¡δ «Γ ΓÑú«ó »ÑαÑτ¿ß½Ñ¡¿⌐, ΓÑú«ó ßΓαπ¬Γπα ¿
- ß«ó¼ÑΘÑ¡¿⌐ ß Γ«⌐ ªÑ ßἫ⌐ ó¿ñ¿¼«ßΓ∞ε.
-
-
- Åα¿¼Ñαδ:
-
- /**************** Example 1 ***************/
-
- enum day {
- saturday,
- sunday = 0,
- monday,
-
- - 42 -
-
-
- tuesday,
- wednesday,
- thursday,
- friday
- } workday;
-
- /***************** Example 2 ***************/
-
- enum day today = wednesday;
-
- é »Ñαó«¼ »α¿¼ÑαÑ «»αÑñѽ∩ÑΓß∩ Γ¿» »ÑαÑτ¿ß½Ñ¡¿∩, »«¿¼Ñ¡«óá¡-
- ¡δ⌐ day ¿ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ workday φΓ«ú« Γ¿»á »ÑαÑτ¿ß½Ñ¡¿∩.
- æ saturday »« π¼«½τá¡¿ε áßß«µ¿¿απÑΓß∩ º¡áτÑ¡¿Ñ 0. êñÑ¡Γ¿Σ¿¬áΓ«α
- sunday ∩ó¡« πßΓá¡áó½¿óáÑΓß∩ ó 0. ÄßΓáóΦ¿Ñß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ »«
- π¼«½τá¡¿ε »α¿¡¿¼áεΓ º¡áτÑ¡¿Ñ «Γ 1 ñ« 5.
- é« óΓ«α«¼ »α¿¼ÑαÑ »ÑαѼѡ¡«⌐ today Γ¿»á enum day »α¿ßóá¿óá-
- ÑΓß∩ º¡áτÑ¡¿Ñ ¿º »ÑαÑτ¿ß½Ñ¡¿∩. çá¼ÑΓ¿¼, τΓ« ñ½∩ »α¿ßóá¿óá¡¿∩ ¿ß-
- »«½∞ºπÑΓß∩ ¿¼∩ ¬«¡ßΓá¡Γδ ¿º »ÑαÑτ¿ß½Ñ¡¿∩. Æá¬ ¬á¬ Γ¿» »ÑαÑτ¿ß½Ñ-
- ¡¿∩ day íδ½ »αÑñóáα¿Γѽ∞¡« «í"∩ó½Ñ¡, Γ« ñ«ßΓáΓ«τ¡« ߽߫áΓ∞ß∩
- Γ«½∞¬« ¡á ΓÑú »ÑαÑτ¿ß½Ñ¡¿∩.
-
-
- 4.4.3. Äí"∩ó½Ñ¡¿∩ ßΓαπ¬Γπα
-
- æ¿¡Γá¬ß¿ß:
-
- struct[<tag>]{<member-declaration-list>}<declarator>[,<declarator>...];
-
- struct<tag><declarator>[,<declarator>...];
-
- Äí"∩ó½Ñ¡¿Ñ ßΓαπ¬Γπαδ ºáñáÑΓ ¿¼∩ Γ¿»á ßΓαπ¬Γπαδ ¿ ߻ѵ¿Σ¿µ¿-
- απÑΓ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ »ÑαѼѡ¡δσ óѽ¿τ¿¡, ¡áºδóáѼδσ φ½Ñ¼Ñ¡ΓἿ
- ßΓαπ¬Γπαδ, ¬«Γ«αδÑ ¼«úπΓ ¿¼ÑΓ∞ αẽ¿τ¡δÑ Γ¿»δ.
- Äí"∩ó½Ñ¡¿Ñ ßΓαπ¬Γπαδ ¡áτ¿¡áÑΓß∩ ß ¬½ετÑó«ú« ß½«óá struct ¿
- ¿¼ÑÑΓ ñóÑ Σ«α¼δ »αÑñßΓáó½Ñ¡¿∩, ¬á¬ »«¬áºá¡« óδΦÑ. é »Ñαó«⌐ Σ«α¼Ñ
- »αÑñßΓáó½Ñ¡¿∩ Γ¿»δ ¿ ¿¼Ñ¡á φ½Ñ¼Ñ¡Γ«ó ßΓαπ¬Γπαδ ߻ѵ¿Σ¿µ¿απεΓß∩ ó
- ß»¿ß¬Ñ «í"∩ó½Ñ¡¿⌐ φ½Ñ¼Ñ¡Γ«ó <member-declaration-list>. <tag>- φΓ«
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ¬«Γ«αδ⌐ ¿¼Ñ¡πÑΓ Γ¿» ßΓαπ¬Γπαδ, «»αÑñѽѡ¡δ⌐ ó
- ß»¿ß¬Ñ «í"∩ó½Ñ¡¿⌐ φ½Ñ¼Ñ¡Γ«ó.
- èáªñδ⌐ <declarator> ºáñáÑΓ ¿¼∩ »ÑαѼѡ¡«⌐ Γ¿»á ßΓαπ¬Γπαδ.
- Æ¿» »ÑαѼѡ¡«⌐ ó ñѬ½áαáΓ«αÑ ¼«ªÑΓ íδΓ∞ ¼«ñ¿Σ¿µ¿α«óá¡ ¡á π¬áºá-
- Γѽ∞ ¬ ßΓαπ¬ΓπαÑ, ¡á ¼áßß¿ó ßΓαπ¬Γπα ¿½¿ ¡á Σπ¡¬µ¿ε, ó«ºóαáΘáεΘπε
- ßΓαπ¬Γπαπ.
- éΓ«αá∩ ß¿¡Γá¬ß¿τÑ߬á∩ Σ«α¼á ¿ß»«½∞ºπÑΓ ΓÑú- <tag> ßΓαπ¬Γπαδ
- ñ½∩ ßß佬¿ ¡á Γ¿» ßΓαπ¬Γπαδ. é φΓ«⌐ Σ«α¼Ñ «í"∩ó½Ñ¡¿∩ «ΓßπΓßΓóπÑΓ
- ß»¿ß«¬ «í"∩ó½Ñ¡¿⌐ φ½Ñ¼Ñ¡Γ«ó, »«ß¬«½∞¬π Γ¿» ßΓαπ¬Γπαδ «»αÑñѽѡ ó
- ñαπú«¼ ¼ÑßΓÑ. Ä»αÑñѽѡ¿Ñ Γ¿»á ßΓαπ¬Γπαδ ñ«½ª¡« íδΓ∞ ó¿ñ¿¼δ¼ ñ½∩
- ΓÑúá, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó «í"∩ó½Ñ¡¿¿ ¿ «»αÑñѽѡ¿Ñ ñ«½ª¡«
- »αÑñΦÑßΓó«óáΓ∞ «í"∩ó½Ñ¡¿ε τÑαѺ ΓÑú, Ñß½¿ ΓÑú ¡Ñ ¿ß»«½∞ºπÑΓß∩ ñ½∩
- «í"∩ó½Ñ¡¿∩ π¬áºáΓѽ∩ ¿½¿ ßΓαπ¬Γπα¡«ú« Γ¿»á typedef. é »«ß½Ññ¡¿σ
- ß½πτá∩σ «í"∩ó½Ñ¡¿∩ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ ΓÑú ßΓαπ¬Γπαδ íѺ »αÑñóáα¿-
- Γѽ∞¡«ú« «»αÑñѽѡ¿∩ Γ¿»á ßΓαπ¬Γπαδ, ¡« óßÑ ªÑ «»αÑñѽѡ¿Ñ ñ«½ª¡«
- ¡áσ«ñ¿Γ∞ß∩ ó »αÑñѽáσ ó¿ñ¿¼«ßΓ¿ «í"∩ó½Ñ¡¿∩.
- 滿߫¬ «í"∩ó½Ñ¡¿⌐ φ½Ñ¼Ñ¡Γ«ó <member-declaration-list>- φΓ«
- «ñ¡« ¿½¿ í«½ÑÑ «í"∩ó½Ñ¡¿⌐ »ÑαѼѡ¡δσ ¿½¿ í¿Γ«óδσ »«½Ñ⌐. èáªñá∩
-
- - 43 -
-
-
- »ÑαѼѡ¡á∩, «í"∩ó½Ñ¡¡á∩ ó φΓ«¼ ß»¿ß¬Ñ, ¡áºδóáÑΓß∩ φ½Ñ¼Ñ¡Γ«¼
- ßΓαπ¬Γπα¡«ú« Γ¿»á. Äí"∩ó½Ñ¡¿∩ »ÑαѼѡ¡δσ ß»¿ß¬á ¿¼Ñεà ëà ªÑ ßá-
- ¼δ⌐ ß¿¡Γá¬ß¿ß, τΓ« ¿ «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡δσ «íßπªñáѼδσ ó φΓ«⌐
- ú½áóÑ, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« «í"∩ó½Ñ¡¿∩ ¡Ñ ¼«úπΓ ß«ñÑαªáΓ∞
- ߻ѵ¿Σ¿¬áΓ«α«ó ¬½áßßá »á¼∩Γ¿ ¿½¿ ¿¡¿µ¿á½¿ºáΓ«α«ó. ¥½Ñ¼Ñ¡Γδ ßΓαπ¬-
- Γπαδ ¼«úπΓ íδΓ∞ ½εí«ú« Γ¿»á: «ß¡«ó¡«ú«, ¼áßß¿ó«¼, π¬áºáΓѽѼ,
- ß«ó¼ÑΘÑ¡¿Ñ¼ ¿½¿ ßΓαπ¬Γπα«⌐.
- ¥½Ñ¼Ñ¡Γ ¡Ñ ¼«ªÑΓ ¿¼ÑΓ∞ Γ¿» ßΓαπ¬Γπαδ, ó ¬«Γ«α«⌐ «¡ »«∩ó½∩-
- ÑΓß∩. Äñ¡á¬«, φ½Ñ¼Ñ¡Γ ¼«ªÑΓ íδΓ∞ «í"∩ó½Ñ¡, ¬á¬ π¬áºáΓѽ∞ ¡á Γ¿»
- ßΓαπ¬Γπαδ, ó ¬«Γ«απε «¡ óσ«ñ¿Γ, »«ºó«½∩∩ ß«ºñáóáΓ∞ ß»¿ß«τ¡δÑ
- ßΓαπ¬Γπαδ.
-
- ü¿Γ«óδÑ »«½∩
-
- Äí"∩ó½Ñ¡¿∩ í¿Γ«óδσ »«½Ñ⌐ ¿¼ÑεΓ ß½ÑñπεΘ¿⌐ ß¿¡Γá¬ß¿ß:
-
- <type-specifier>[<identifier>]:<constant-expression>;
-
- ü¿Γ«ó«Ñ »«½Ñ ß«ßΓ«¿Γ ¿º ¡Ñ¬«Γ«α«ú« τ¿ß½á í¿Γ, ߻ѵ¿Σ¿µ¿α«-
- óá¡¡δσ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼- <constant- expression>. ä½∩ í¿Γ«-
- ó«ú« »«½∩ ߻ѵ¿Σ¿¬áΓ«α Γ¿»á <type- specifier> ñ«½ªÑ¡ ߻ѵ¿Σ¿µ¿α«-
- óáΓ∞ íѺº¡á¬«óδ⌐ µÑ½δ⌐ Γ¿», á ¬«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ ñ«½ª¡« íδΓ∞
- ¡Ñ«Γα¿µáΓѽ∞¡«⌐ µÑ½«⌐ óѽ¿τ¿¡«⌐. îáßß¿óδ í¿Γ«óδσ »«½Ñ⌐, π¬áºáΓѽ¿
- ¡á í¿Γ«óδÑ »«½∩ ¿ Σπ¡¬µ¿¿, ó«ºóαáΘáεΘ¿Ñ í¿Γ«óδÑ »«½∩ ¡Ñ ñ«»π߬á-
- εΓß∩. êñÑ¡Γ¿Σ¿¬áΓ«α- <identifier> ¿¼Ñ¡πÑΓ í¿Γ«ó«Ñ »«½Ñ. ìÑ¿¼Ñ¡«-
- óá¡¡«Ñ í¿Γ«ó«Ñ »«½Ñ, τÑ⌐ αẼÑα ߻ѵ¿Σ¿µ¿απÑΓß∩ ¬á¬ ¡π½Ñó«⌐, ¿¼Ñ-
- ÑΓ ß»Ñµ¿á½∞¡«Ñ ¡áº¡áτÑ¡¿Ñ: «¡« úáαá¡Γ¿απÑΓ, τΓ« »á¼∩Γ∞ ñ½∩ ß½Ññπ-
- εΘÑ⌐ »ÑαѼѡ¡«⌐ «í"∩ó½Ñ¡¿∩ íπñÑΓ ¡áτ¿¡áΓ∞ß∩ ¡á úαá¡¿µÑ int.
-
- êñÑ¡Γ¿Σ¿¬áΓ«αδ φ½Ñ¼Ñ¡Γ«ó ó¡πΓα¿ «í"∩ó½∩Ѽ«⌐ ßΓαπ¬Γπαδ ñ«½ª-
- ¡δ íδΓ∞ π¡¿¬á½∞¡δ¼¿. êñÑ¡Γ¿Σ¿¬áΓ«αδ φ½Ñ¼Ñ¡Γ«ó ó¡πΓα¿ αạδσ
- ßΓαπ¬Γπα ¼«úπΓ ß«ó»áñáΓ∞. é »αÑñѽáσ Γ«⌐ ªÑ ßἫ⌐ ó¿ñ¿¼«ßΓ¿ ΓÑú¿
- ßΓαπ¬Γπα ñ«½ª¡δ «Γ½¿τáΓ∞ß∩ «Γ ñαπú¿σ ΓÑú«ó (ΓÑú«ó ñαπú¿σ ßΓαπ¬-
- Γπα, ß«ó¼ÑΘÑ¡¿⌐ ¿ »ÑαÑτ¿ß½Ñ¡¿⌐).
- ÅÑαѼѡ¡δÑ (φ½Ñ¼Ñ¡Γδ) ßΓαπ¬Γπαδ ºá»«¼¿¡áεΓß∩ »«ß½Ññ«óáΓѽ∞-
- ¡« ó Γ«¼ ªÑ ßἫ¼ »«α∩ñ¬Ñ, ó ¬«Γ«α«¼ «¡¿ «í"∩ó½∩εΓß∩: »Ñαó«⌐ »Ñ-
- αѼѡ¡«⌐ ß««ΓóÑΓßΓóπÑΓ ßá¼δ⌐ ¼½áñΦ¿⌐ áñαÑß »á¼∩Γ¿, á »«ß½Ññ¡Ñ⌐-
- ßá¼δ⌐ ßΓáαΦ¿⌐. Åá¼∩Γ∞ ¬áªñ«⌐ »ÑαѼѡ¡«⌐ ¡áτ¿¡áÑΓß∩ ¡á úαá¡¿µÑ
- ßó«⌐ßΓóÑ¡¡«⌐ ÑÑ Γ¿»π. Å«φΓ«¼π ¼«úπΓ »«∩ó½∩Γ∞ß∩ ¡Ñ¿¼Ñ¡«óá¡¡δÑ
- πτáßΓ¬¿ ¼Ñªñπ ß«ßÑñ¡¿¼¿ φ½Ñ¼Ñ¡ΓἿ.
- ü¿Γ«óδÑ »«½∩ ¡Ñ αáß»«½áúáεΓß∩ ¡á »ÑαÑßÑτÑ¡¿¿ úαá¡¿µ, «í∩ó-
- ½Ñ¡¡δσ ñ½∩ ¡¿σ Γ¿»«ó. ìá»α¿¼Ñα, í¿Γ«ó«Ñ »«½Ñ, «í"∩ó½Ñ¡«Ñ ß Γ¿»«¼
- unsigned int, π»á¬«óδóáÑΓß∩ ¿½¿ ó »α«ßΓαá¡ßΓóÑ, «ßΓáóΦ¿¼ß∩ «Γ
- »αÑñ¿ñπΘÑú« unsigned int ¿½¿ ¡áτ¿¡á∩ ß ¡«ó«ú« unsigned int.
-
- Åα¿¼Ñαδ
-
- /**************** Example 1 ****************/
-
- struct {
- float x,y;
- } complex;
-
- /**************** Example 2 *****************/
-
-
- - 44 -
-
-
- struct employee {
- char name[20];
- int id;
- long class;
- } temp;
-
- /**************** Example 3 ******************/
-
- struct employee student, faculty, staff;
-
- /**************** Example 4 ******************/
-
- struct sample {
- char c;
- float *pf;
- struct sample *next;
- } x;
-
- /***************** Example 5 ******************/
-
- struct {
- unsigned icon : 8;
- unsigned color : 4;
- unsigned underline : 1;
- unsigned blink : 1;
- } screen[25][80];
-
- é »Ñαó«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ ß ¿¼Ñ¡Ñ¼ complex
- Γ¿»á ßΓαπ¬Γπαá. ¥Γá ßΓαπ¬Γπαá ß«ßΓ«¿Γ ¿º ñóπσ φ½Ñ¼Ñ¡Γ«ó x ¿ y Γ¿-
- »á float. Æ¿» ßΓαπ¬Γπαδ ¡Ñ »«¿¼Ñ¡«óá¡.
- é« óΓ«α«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ ß ¿¼Ñ¡Ñ¼ temp Γ¿»á
- ßΓαπ¬Γπαá. æΓαπ¬Γπαá ß«ßΓ«¿Γ ¿º ΓαÑσ φ½Ñ¼Ñ¡Γ«ó ß ¿¼Ñ¡á¼¿ name, id
- ¿ class. ¥½Ñ¼Ñ¡Γ ß ¿¼Ñ¡Ñ¼ name- φΓ« ¼áßß¿ó ¿φ 20- Γ¿ φ½Ñ¼Ñ¡Γ«ó
- Γ¿»á char. φ½Ñ¼Ñ¡Γδ ß ¿¼Ñ¡á¼¿ id ¿ class- φΓ« »α«ßΓδÑ »ÑαѼѡ¡δÑ
- Γ¿»á int ¿ long ß««ΓóÑΓßΓóÑ¡¡«. êñÑ¡Γ¿Σ¿¬áΓ«α employee ∩ó½∩ÑΓß∩
- ΓÑú«¼ ßΓαπ¬Γπαδ.
- é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ «í"∩ó½Ñ¡δ Γα¿ »ÑαѼѡ¡δσ Γ¿»á ßΓαπ¬Γπαá ß
- ¿¼Ñ¡á¼¿: student, faculty ¿ staff. èáªñá∩ ¿º ßΓαπ¬Γπα ß«ßΓ«¿Γ ¿º
- ΓαÑσ φ½Ñ¼Ñ¡Γ«ó «ñ¡«⌐ ¿ Γ«⌐ ªÑ ¬«¡ßΓαπ¬µ¿¿. ¥½Ñ¼Ñ¡Γδ «»αÑñѽѡδ
- »α¿ «í"∩ó½Ñ¡¿¿ Γ¿»á ßΓαπ¬Γπαδ ß ΓÑú«¼ employee ó »αÑñδñπΘѼ »α¿-
- ¼ÑαÑ.
- é τÑΓóÑαΓ«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ ß ¿¼Ñ¡Ñ¼ x Γ¿»á
- ßΓαπ¬Γπαá. ÅÑαóδÑ ñóá φ½Ñ¼Ñ¡Γá ßΓαπ¬Γπαδ »αÑñßΓáó½Ñ¡δ »ÑαѼѡ¡«⌐
- c Γ¿»á char ¿ π¬áºáΓѽѼ pf ¡á óѽ¿τ¿¡π Γ¿»á float. ÆαÑΓ¿⌐ φ½Ñ-
- ¼Ñ¡Γ ß ¿¼Ñ¡Ñ¼ next «í"∩ó½∩εΓß∩ ¬á¬ π¬áºáΓѽ∞ ¡á «»¿ßδóáѼπε
- ßΓαπ¬Γπαπ sample.
- é »∩Γ«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ ñóπ¼Ñα¡δ⌐ ¼áßß¿ó »«¿¼Ñ¡«óá¡¡δ⌐
- screen, φ½Ñ¼Ñ¡Γδ ¬«Γ«α«ú« ¿¼ÑεΓ ßΓαπ¬Γπα¡δ⌐ Γ¿». îáßß¿ó ß«ßΓ«¿Γ
- ¿º 2000 φ½Ñ¼Ñ¡Γ«ó ¿ ¬áªñδ⌐ φ½Ñ¼Ñ¡ΓφΓ« «Γñѽ∞¡á∩ ßΓαπ¬Γπαá, ß«ßΓ«-
- ∩Θá∩ ¿º τÑΓδαÑσ φ½Ñ¼Ñ¡Γ«ó Γ¿»á bit-fild ß ¿¼Ñ¡á¼¿ icon, color,
- underline ¿ blink.
-
-
-
-
- - 45 -
-
- 4.4.4. Äí"∩ó½Ñ¡¿Ñ ß«ó¼ÑΘÑ¡¿⌐
-
- æ¿¡Γá¬ß¿ß:
-
- union[<tag>]{<member-declaration-list>}<declarator>[,<declarator>...];
-
- union<tag><declarator>[,<declarator>...];
-
- Äí"∩ó½Ñ¡¿Ñ ß«ó¼ÑΘÑ¡¿∩ «»αÑñѽ∩ÑΓ ¿¼∩ »ÑαѼѡ¡«⌐ ß«ó¼ÑΘÑ¡¿∩
- ¿ ߻ѵ¿Σ¿µ¿απÑΓ ¼¡«ªÑßΓó« »ÑαѼѡ¡δσ, ¡áºδóáѼδσ φ½Ñ¼Ñ¡ΓἿ ß«ó-
- ¼ÑΘÑ¡¿∩, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ αẽ¿τ¡δσ Γ¿»«ó. ÅÑαѼѡ¡á∩ ß Γ¿»«¼
- ß«ó¼ÑΘÑ¡¿∩ ºá»«¼¿¡áÑΓ ½εíπε «Γñѽ∞¡πε óѽ¿τ¿¡π, «»αÑñѽ∩Ѽπε ¡á-
- í«α«¼ φ½Ñ¼Ñ¡Γ«ó ß«ó¼ÑΘÑ¡¿∩.
- Äí"∩ó½Ñ¡¿Ñ ß«ó¼ÑΘÑ¡¿∩ ¿¼ÑÑà ëà ªÑ ßá¼δ⌐ ß¿¡Γá¬ß¿ß, ¬á¬ ¿
- «í"∩ó½Ñ¡¿Ñ ßΓαπ¬Γπαδ, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« «¡á ¡áτ¿¡áÑΓß∩ ß
- ¬½ετÑó«ú« ß½«óá union ó¼ÑßΓ« ¬½ετÑó«ú« ß½«óá struct. ä½∩ «í"∩ó½Ñ-
- ¡¿∩ ß«ó¼ÑΘÑ¡¿∩ ¿ ßΓαπ¬Γπαδ ñÑ⌐ßΓóπεΓ «ñ¡¿ ¿ ΓÑ ªÑ »αáó¿½á, ºá ¿ß-
- ¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« ó ß«ó¼ÑΘÑ¡¿¿ ¡Ñ ñ«»π߬áεΓß∩ φ½Ñ¼Ñ¡Γδ Γ¿»á í¿-
- Γ«óδσ »«½Ñ⌐.
-
- Åá¼∩Γ∞, ¬«Γ«αá∩ ß««ΓóÑΓßΓóπÑΓ »ÑαѼѡ¡«⌐ Γ¿»á ß«ó¼ÑΘÑ¡¿Ñ,
- «»αÑñѽ∩ÑΓß∩ óѽ¿τ¿¡«⌐ ñ½∩ αẼÑΘÑ¡¿∩ ½εí«ú« «Γñѽ∞¡«ú« φ½Ñ¼Ñ¡Γá
- ß«ó¼ÑΘÑ¡¿∩.
- è«úñá ¿ß»«½∞ºπÑΓß∩ ¡á¿¼Ñ¡∞Φ¿⌐ φ½Ñ¼Ñ¡Γ ß«ó¼ÑΘÑ¡¿∩, Γ« »ÑαÑ-
- ¼Ñ¡¡á∩ Γ¿»á ß«ó¼ÑΘÑ¡¿∩ ¼«ªÑΓ ß«ñÑαªáΓ∞ ¡Ñ¿ß»«½∞º«óá¡¡«Ñ »α«ßΓαá¡-
- ßΓó«. éßÑ φ½Ñ¼Ñ¡Γδ ß«ó¼ÑΘÑ¡¿∩ ºá»«¼¿¡áεΓß∩ ó «ñ¡«¼ ¿ Γ«¼ ªÑ »α«ß-
- Γαá¡ßΓóÑ »á¼∩Γ¿ »ÑαѼѡ¡«⌐, ¡áτ¿¡á∩ ß «ñ¡«ú« ¿ Γ«ú« ªÑ áñαÑßá.
- çừ¼¡Ñ¡¡δÑ º¡áτÑ¡¿∩ ºáΓ¿αáεΓß∩ ¬áªñδ⌐ αáº, ¬«úñá »α¿ßóá¿óáÑΓß∩
- º¡áτÑ¡¿Ñ «τÑαÑñ¡«ú« φ½Ñ¼Ñ¡Γá ß«ó¼ÑΘÑ¡¿∩.
-
- Åα¿¼Ñαδ:
-
- /************** Example 1 ********************/
-
- union sign {
- int svar;
- unsigned uvar;
- } number;
-
- /************** Example 2 ********************/
-
- union {
- char *a, b;
- float f[20];
- } jack;
-
- /*************** Example 2 *******************/
-
- union {
- struct {
- char icon;
- unsigned color : 4;
- } window1, window2, window3, window4;
- } screen[25][80];
-
- é »Ñαó«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ Γ¿»á ß«ó¼ÑΘÑ¡¿∩,
- »«¿¼Ñ¡«óá¡¡á∩ number. 滿߫¬ φ½Ñ¼Ñ¡Γ«ó ß«ó¼ÑΘÑ¡¿∩ ß«ßΓ«¿Γ ¿º ñóπσ
-
- - 46 -
-
-
- «í"∩ó½Ñ¡¿⌐ »ÑαѼѡ¡δσ: svar Γ¿»á int ¿ uvar Γ¿»á unsigned. ¥Γ«
- «í"∩ó½Ñ¡¿Ñ »«ºó«½∩ÑΓ ºá»«¼¿¡áΓ∞ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ number ó º¡á¬«-
- ó«¼ ¿½¿ íѺº¡á¬«ó«¼ ó¿ñÑ. Æ¿» ß«ó¼ÑΘÑ¡¿∩ »«¿¼Ñ¡«óá¡ ¿ñÑ¡Γ¿Σ¿¬áΓ«-
- α«¼ sign.
- é« óΓ«α«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ Γ¿»á ß«ó¼ÑΘÑ¡¿∩ ß
- ¿¼Ñ¡Ñ¼ jack. 滿߫¬ φ½Ñ¼Ñ¡Γ«ó «í"∩ó½Ñ¡¿∩ ß«ßΓ«¿Γ ¿º ΓαÑσ «í"∩ó½Ñ-
- ¡¿⌐: π¬áºáΓѽ∩ a ¡á óѽ¿τ¿¡π Γ¿»á char, »ÑαѼѡ¡«⌐ b Γ¿»á char ¿
- ¼áßß¿óá f ¿º 20 φ½Ñ¼Ñ¡Γ«ó Γ¿»á float. Æ¿» ß«ó¼ÑΘÑ¡¿∩ ¡Ñ »«¿¼Ñ¡«-
- óá¡.
- Åá¼∩Γ∞, αáß»αÑñѽѡ¡á∩ ñ½∩ »ÑαѼѡ¡«⌐ jack, αáó¡á »á¼∩Γ¿,
- αáß»αÑñѽѡ¡«⌐ »«ñ ¼áßß¿ó f, »«ß¬«½∞¬π f ßá¼δ⌐ í«½∞Φ«⌐ φ½Ñ¼Ñ¡Γ
- ß«ó¼ÑΘÑ¡¿∩.
- é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ ñóπ¼Ñα¡δ⌐ ¼áßß¿ó ß«ó¼ÑΘÑ¡¿⌐ ß
- ¿¼Ñ¡Ñ¼ screen. îáßß¿ó ß«ßΓ«¿Γ ¿º 2000 «í"Ñ¬Γ«ó. èáªñδ⌐ «í"ѬΓ-
- φΓ« «Γñѽ∞¡«Ñ ß«ó¼ÑΘÑ¡¿Ñ ¿º τÑΓδαÑσ φ½Ñ¼Ñ¡Γ«ó: window1, window2,
- window3, window4, úñÑ ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ- φΓ« ßΓαπ¬Γπαá. é ½εí«Ñ ºá-
- ñá¡¡«Ñ óαѼ∩ ¬áªñδ⌐ «í"Ñ¬Γ ß«ó¼ÑΘÑ¡¿∩ »«ññÑনóáÑΓß∩ «ñ¡¿¼ ¿º τÑ-
- ΓδαÑσ 󫺼«ª¡δσ φ½Ñ¼Ñ¡Γ«ó Γ¿»á ßΓαπ¬Γπαá. Æá¬¿¼ «íαẫ¼, »ÑαѼѡ-
- ¡á∩ screen- φΓ« ¬«¼»«º¿µ¿∩ τÑΓδαÑσ 󫺼«ª¡δσ "windows".
-
-
- 4.4.5. Äí"∩ó½Ñ¡¿Ñ ¼áßß¿óá
-
- æ¿¡Γá¬ß¿ß:
-
- <type-specifier><declarator>[<constant-expression>];
-
- <type-specifier><declarator>[];
-
- çñÑß∞ ¬óáñαáΓ¡δÑ ß¬«í¬¿- φΓ« ΓÑନ¡á½∞¡δÑ ß¿¼ó«½δ. Äí"∩ó½Ñ-
- ¡¿Ñ ¼áßß¿óá «»αÑñѽ∩ÑΓ Γ¿» ¼áßß¿óá ¿ Γ¿» ¬áªñ«ú« φ½Ñ¼Ñ¡Γá. Ä¡«
- ¼«ªÑΓ «»αÑñѽ∩Γ∞ Γá¬ªÑ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ó ¼áßß¿óÑ. ÅÑαѼѡ¡á∩ Γ¿»á
- ¼áßß¿ó αáßß¼áΓα¿óáÑΓß∩ ¬á¬ π¬áºáΓѽ∞ ¡á φ½Ñ¼Ñ¡Γδ ¼áßß¿óá. Äí"∩ó-
- ½Ñ¡¿Ñ ¼áßß¿óá ¼«ªÑΓ »αÑñßΓáó½∩Γ∞ß∩ ó ñóπσ ß¿¡Γá¬ß¿τÑ߬¿σ Σ«α¼áσ,
- π¬áºá¡¡δσ óδΦÑ. äѬ½áαáΓ«α<declarator> ºáñáÑΓ ¿¼∩ »ÑαѼѡ¡«⌐.
- èóáñαáΓ¡δÑ ß¬«í¬¿, ß½ÑñπεΘ¿Ñ ºá ñѬ½áαáΓ«α«¼, ¼«ñ¿Σ¿µ¿απεΓ ñѬ½á-
- αáΓ«α ¡á Γ¿» ¼áßß¿óá. è«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ
- <constant-expression>, ºá¬½ετÑ¡¡«Ñ ó ¬óáñαáΓ¡δÑ ß¬«í¬¿, «»αÑñѽ∩-
- ÑΓ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ó ¼áßß¿óÑ. èáªñδ⌐ φ½Ñ¼Ñ¡Γ ¿¼ÑÑΓ Γ¿», ºáñáóáÑ-
- ¼δ⌐ ߻ѵ¿Σ¿¬áΓ«α«¼ Γ¿»á <type-specifier>, ¬«Γ«αδ⌐ ¼«ªÑΓ ß»Ñµ¿Σ¿-
- µ¿α«óáΓ∞ ½εí«⌐ Γ¿», ¿ß¬½ετá∩ void ¿ Γ¿» Σπ¡¬µ¿¿.
- é« óΓ«α«⌐ ß¿¡Γá¬ß¿τÑ߬«⌐ Σ«α¼Ñ «»πΘÑ¡« ¬«¡ßΓá¡Γ¡«Ñ óδαáªÑ-
- ¡¿Ñ ó ¬óáñαáΓ¡δσ ߬«í¬áσ. ¥Γá Σ«α¼á ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á Γ«½∞-
- ¬« Γ«úñá, ¬«úñá ¼áßß¿ó ¿¡¿µ¿á½¿º¿απÑΓß∩ ¿½¿ «í"∩ó½Ñ¡ ¬á¬ Σ«α¼á½∞-
- ¡δ⌐ »áαá¼ÑΓα ¿½¿ «í"∩ó½Ñ¡ ¬á¬ ßßδ½¬á ¡á ¼áßß¿ó, ∩ó¡« «»αÑñѽѡ¡δ⌐
- úñÑ-Γ« ó »α«úαá¼¼Ñ.
- îáßß¿ó ¼áßß¿ó«ó ¿½¿ ¼¡«ú«¼Ñα¡δ⌐ ¼áßß¿ó «»αÑñѽ∩ÑΓß∩ »πΓѼ
- ºáñá¡¿∩ ß»¿ß¬á ¬«¡ßΓá¡Γ¡δσ óδαáªÑ¡¿⌐ ó ¬óáñαáΓ¡δσ ߬«í¬áσ, ß½Ññπ-
- ΘÑú« ºá ñѬ½áαáΓ«α«¼:
-
- <type-specifier><declarator>[<constant-expression>]
- [<constant-expression>]...
-
- èáªñ«Ñ ¬«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ- <constant-expression> ó ¬óáñ-
- αáΓ¡δσ ߬«í¬áσ «»αÑñѽ∩ÑΓ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ó ñá¡¡¡«¼ ¿φ¼ÑαÑ¡¿¿
-
- - 47 -
-
-
- ¼áßß¿óá, ΓᬠτΓ« «í"∩ó½Ñ¡¿Ñ ñóπ¼Ñα¡«ú« ¼áßß¿óá ß«ñÑαª¿Γ ñóá ¬«¡ß-
- Γá¡Γ¡δσ óδαáªÑ¡¿∩, ΓαÑσ¼Ñα¡«ú«- Γα¿ ¿ Γ.ñ. àß½¿ ¼¡«ú«¼Ñα¡δ⌐ ¼áß-
- ß¿ó «í"∩ó½∩ÑΓß∩ ó¡πΓα¿ Σπ¡¬µ¿¿ ¿½¿ Ñß½¿ «¡ ¿¡¿µ¿á½¿º¿απÑΓß∩ ½¿í«
- «í"∩ó½∩ÑΓß∩ ¬á¬ Σ«α¼á½∞¡δ⌐ »áαá¼ÑΓα ¿½¿ «í"∩ó½∩ÑΓß∩ ¬á¬ ßßδ½¬á ¡á
- ¼áßß¿ó, ∩ó¡« «»αÑñѽѡ¡δ⌐ úñÑ- Γ« ó »α«úαá¼¼Ñ, Γ« »Ñαó«Ñ ¬«¡ßΓá¡-
- Γ¡«Ñ óδαáªÑ¡¿Ñ ¼«ªÑΓ íδΓ∞ «»πΘÑ¡«.
- îáßß¿ó π¬áºáΓѽÑ⌐ ¡á óѽ¿τ¿¡δ,ºáñá¡¡«ú« Γ¿»á, ¼«ªÑΓ íδΓ∞
- «»αÑñѽѡ »«ßαÑñßΓó«¼ ß«ßΓáó¡«ú« ñѬ½áαáΓ«αá, ¬á¬ í佫 «»¿ßá¡« ó
- αáºñÑ½Ñ 4.3.2.
- Æ¿»π ¼áßß¿ó ß««ΓóÑΓßΓóπÑΓ »á¼∩Γ∞, ¬«Γ«αá∩ ΓαÑíπÑΓß∩ ñ½∩
- αẼÑΘÑ¡¿∩ óßÑσ Ñú« φ½Ñ¼Ñ¡Γ«ó. ¥½Ñ¼Ñ¡Γδ ¼áßß¿óá ß »Ñαó«ú« ñ« »«ß-
- ½Ññ¡Ñú« ºá»«¼¿¡áεΓß∩ ó »«ß½Ññ«óáΓѽ∞¡δσ ó«ºαáßΓáεΘ¿σ áñαÑßáσ »á-
- ¼∩Γ¿. îѪñπ φ½Ñ¼Ñ¡ΓἿ ¼áßß¿óá ó »á¼∩Γ¿ αáºαδóδ «ΓßπΓßΓóπεΓ. ¥½Ñ-
- ¼Ñ¡Γδ ¼áßß¿óá ºá»«¼¿¡áεΓß∩ ñαπú ºá ñαπú«¼ »«ßΓα«τ¡«. ìá»α¿¼Ñα,
- ¼áßß¿ó, ß«ñÑαªáΘ¿⌐ ñóÑ ßΓ᫬¿ ß ΓαѼ∩ ßΓ«½íµá¼¿ ¬áªñá∩,
-
- char A[2][3]
-
- íπñÑΓ ºá»«¼¡Ñ¡ ß½ÑñπεΘ¿¼ «íαẫ¼. æ¡áτá½á ºá»«¼¿¡áεΓß∩ Γα¿
- ßΓ«½íµá »Ñαó«⌐ ßΓ᫬¿, ºáΓѼ φ½Ñ¼Ñ¡Γδ ΓαÑσ ßΓ«½íµ«ó óΓ«α«⌐ ßΓα«-
- ¬¿. æ¼δß½ φΓ«ú« ó Γ«¼, τΓ«íδ »«ß½Ññ¡¿⌐ ¿¡ñÑ¬ß íδ½ í«½ÑÑ íδßΓαδ¼.
- ùΓ«íδ ߽߫áΓ∞ß∩ ¡á «Γñѽ∞¡δ⌐ φ½Ñ¼Ñ¡Γ ¼áßß¿óá, ¡πª¡« ¿ß»«½∞º«óáΓ∞
- ¿¡ñѬߡ«Ñ óδαáªÑ¡¿Ñ, ¬«Γ«α«Ñ «»¿ßá¡« ó αáºñÑ½Ñ 5.2.5.
-
- Åα¿¼Ñαδ:
-
- /*************** Example 1 ******************/
-
- int scores[10], game;
-
- /*************** Example 2 ******************/
-
- float matrix[10][15];
-
- /*************** Example 3 ******************/
-
- struct {
- float x,y;
- } complex[100];
-
- /*************** Example 4 *******************/
-
- char *name[20];
-
- é »Ñαó«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ Γ¿»á ¼áßß¿ó ß ¿¼Ñ-
- ¡Ñ¼ scores ¿º 10 φ½Ñ¼Ñ¡Γ«ó Γ¿»á int. ÅÑαѼѡ¡á∩ ß ¿¼Ñ¡Ñ¼ game
- «í"∩ó½Ñ¡á ¬á¬ »α«ßΓá∩ »ÑαѼѡ¡á∩ µÑ½«ú« Γ¿»á.
- é« óΓ«α«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ ñóπ¼Ñα¡δ⌐ ¼áßß¿ó ß ¿¼Ñ¡Ñ¼
- matrix. îáßß¿ó ß«ßΓ«¿Γ ¿º 150-Γ¿ φ½Ñ¼Ñ¡Γ«ó Γ¿»á float.
- é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ ¼áßß¿ó ßΓαπ¬Γπα. îáßß¿ó ß«ß-
- Γ«¿Γ ¿º 100 «í"Ñ¬Γ«ó. èáªñδ⌐ «í"Ñ¬Γ ¼áßß¿óá »αÑñßΓáó½∩ÑΓ ß«í«⌐
- ßΓαπ¬Γπαπ, ß«ßΓ«∩Θπε ¿º ñóπσ φ½Ñ¼Ñ¡Γ«ó.
- é τÑΓóÑαΓ«¼ »α¿¼ÑαÑ «í"∩ó½Ñ¡ ¼áßß¿ó π¬áºáΓѽÑ⌐. îáßß¿ó ß«ß-
- Γ«¿Γ ¿º 20-Γ¿ φ½Ñ¼Ñ¡Γ«ó, ¬áªñδ⌐ ¿º ¬«Γ«αδσ ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á
- óѽ¿τ¿¡π Γ¿»á char.
-
- - 48 -
-
-
-
-
- 4.4.6. Äí"∩ó½Ñ¡¿Ñ π¬áºáΓѽÑ⌐
-
- æ¿¡Γá¬ß¿ß:
-
- <type-specifier> *<declarator>;
-
- Äí"∩ó½Ñ¡¿Ñ π¬áºáΓѽ∩ «»αÑñѽ∩ÑΓ ¿¼∩ »ÑαѼѡ¡«⌐ Γ¿»á π¬áºá-
- Γѽ∞ ¿ Γ¿» «í"ѬΓá, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ φΓá »ÑαѼѡ¡á∩. äѬ½áαá-
- Γ«α- <declarator> «»αÑñѽ∩ÑΓ ¿¼∩ »ÑαѼѡ¡«⌐ ß ó«º¼«ª¡«⌐ ¼«ñ¿Σ¿¬á-
- µ¿Ñ⌐ ÑÑ Γ¿»á. æ»Ñµ¿Σ¿¬áΓ«α Γ¿»á- <type- specifier> ºáñáÑΓ Γ¿»
- «í"ѬΓá, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ íẫó«ú« Γ¿»á, Γ¿»á ßΓαπ¬Γπαδ ¿½¿
- ß«ó¼ÑΘÑ¡¿∩.
- ÅÑαѼѡ¡á∩ Γ¿»á π¬áºáΓѽ∞ ¼«ªÑΓ π¬áºδóáΓ∞ Γá¬ªÑ ¡á Σπ¡¬µ¿¿,
- ¼áßß¿óδ ¿ ñαπú¿Ñ π¬áºáΓѽ¿. ü«½ÑÑ »«½¡á∩ ¿¡Σ«α¼áµ¿∩ « Γ¿»áσ π¬á-
- ºáΓѽÑ⌐ ñá¡á ó αáºñÑ½Ñ 4.3.2. "æ«ßΓáó¡δÑ ñѬ½áαáΓ«αδ".
- àß½¿ π¬áºáΓѽ∞ ¡Ñ ¿ß»«½∞ºπÑΓß∩ ñ« «»αÑñѽѡ¿∩ Γ¿»á ßΓαπ¬Γπ-
- αδ ¿½¿ ß«ó¼ÑΘÑ¡¿∩, Γ« «¡ ¼«ªÑΓ íδΓ∞ «í"∩ó½Ñ¡ αá¡ÑÑ φΓ«ú« «»αÑñÑ-
- ½Ñ¡¿∩. Æá¬¿Ñ «í"∩ó½Ñ¡¿∩ ñ«»π߬áεΓß∩, »«ß¬«½∞¬π ¬«¼»¿½∩Γ«απ ¡Ñ
- ΓαÑíπÑΓß∩ º¡áΓ∞ αẼÑαá ßΓαπ¬Γπαδ ¿½¿ ß«ó¼ÑΘÑ¡¿∩, τΓ«íδ αáß»αÑñÑ-
- ½¿Γ∞ »á¼∩Γ∞ »«ñ »ÑαѼѡ¡πε Γ¿»á π¬áºáΓѽ∞. ô¬áºáΓѽ∞ ¼«ªÑΓ íδΓ∞
- «í"∩ó½Ñ¡ »«ßαÑñßΓó«¼ ¿ß»«½∞º«óá¡¿∩ ΓÑúá ßΓαπ¬Γπαδ ¿½¿ ß«ó¼ÑΘÑ¡¿∩
- (ß¼«Γα¿ ¡¿ªÑ »α¿¼Ñα 4).
- ÅÑαѼѡ¡á∩, «í"∩ó½Ñ¡¡á∩ ¬á¬ π¬áºáΓѽ∞, σαá¡¿Γ áñαÑß »á¼∩Γ¿.
- ÉẼÑα »á¼∩Γ¿, ΓαÑíπѼδ⌐ ñ½∩ áñαÑßá, ¿ ß¼δß½ áñαÑßá ºáó¿ß¿Γ «Γ
- ñá¡¡«⌐ ¬«¡Σ¿úπαᵿ¿ ¼áΦ¿¡δ. ô¬áºáΓѽ¿ ¡á αẽ¿τ¡δÑ Γ¿»δ ¡Ñ «í∩ºá-
- Γѽ∞¡« ¿¼ÑεΓ «ñ¡π ¿ Γπ ªÑ ñ½¿¡π.
- ä½∩ ¡Ñ¬«Γ«αδσ αÑ὿ºáµ¿⌐ ¿ß»«½∞ºπεΓß∩ ߻ѵ¿á½∞¡δÑ ¬½ετÑóδÑ
- ß½«óá near, far ¿ huge, τΓ«íδ ¼«ñ¿Σ¿µ¿α«óáΓ∞ αẼÑα π¬áºáΓѽ∩.
- Äí"∩ó½Ñ¡¿∩, ¿ß»«½∞ºπεΘ¿Ñ ß»Ñµ¿á½∞¡δÑ ¬½ετÑóδÑ ß½«óá, í뫨 «»¿ßá¡δ
- ó αáºñÑ½Ñ 4.3.3. ê¡Σ«α¼áµ¿∩ « ß¼δ᫥ ¬½ετÑóδσ ß½«ó ñá¡á ó ß¿ßΓѼ-
- ¡«⌐ ñ«¬π¼Ñ¡Γᵿ¿.
-
- Åα¿¼Ñαδ:
-
- char *message; /* Example 1 */
-
- int *pointers[10]; /* Example 2 */
-
- int (*pointer)[10]; /* Example 3 */
-
- struct list *next, *previous; /* Example 4 */
-
- struct list { /* Example 5 */
- char *token;
- int count;
- struct list *next;
- } line;
-
- struct id { /* Example 6 */
- unsigned int id_no;
- struct name *pname;
- } record;
-
-
- - 49 -
-
-
- é »Ñαó«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩- π¬áºáΓѽ∞ »«¿¼Ñ¡«-
- óá¡¡á∩ message. Ä¡á π¬áºδóáÑΓ ¡á óѽ¿τ¿¡π Γ¿»á char.
- é« óΓ«α«¼ »α¿¼ÑαÑ «í"∩ó½Ñ¡ ¼áßß¿ó π¬áºáΓѽÑ⌐, »«¿¼Ñ¡«óá¡¡δ⌐
- pointers. îáßß¿ó ß«ßΓ«¿Γ ¿º 10 φ½Ñ¼Ñ¡Γ«ó. èáªñδ⌐ φ½Ñ¼Ñ¡Γ- φΓ«
- π¬áºáΓѽ∞ ¡á »ÑαѼѡ¡πε Γ¿»á int.
- é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ «í"∩ó½Ñ¡á »ÑαѼѡ¡á∩- π¬áºáΓѽ∞, »«¿¼Ñ¡«-
- óá¡¡á∩ pointer. Ä¡á π¬áºδóáÑΓ ¡á ¼áßß¿ó ¿º 10 φ½Ñ¼Ñ¡Γ«ó. èáªñδ⌐
- φ½Ñ¼Ñ¡Γ ó φΓ«¼ ¼áßß¿óÑ ¿¼ÑÑΓ Γ¿» int.
- é τÑΓóÑαΓ«¼ »α¿¼ÑαÑ «í"∩ó½Ñ¡δ ñóÑ »ÑαѼѡ¡δσπ¬áºáΓѽ∩, ¬«-
- Γ«αδÑ ßßδ½áεΓß∩ ¡á óѽ¿τ¿¡δ ßΓαπ¬Γπα¡«ú« Γ¿»á list (ß¼«Γα¿ ß½Ññπ-
- εΘ¿⌐ »α¿¼Ñα). Ä»αÑñѽѡ¿Ñ Γ¿»á ß ¿¼Ñ¡Ñ¼ list ñ«½ª¡« ¡áσ«ñ¿Γ∞ß∩ ó
- »αÑñѽáσ ó¿ñ¿¼«ßΓ¿ «í"∩ó½Ñ¡¿∩.
- é »∩Γ«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ ß ¿¼Ñ¡Ñ¼ line,
- ßΓαπ¬Γπα¡«ú« Γ¿»á, »«¿¼Ñ¡«óá¡¡«ú« list. Æ¿» ßΓαπ¬Γπαδ ß ¿¼Ñ¡Ñ¼
- list «»αÑñѽ∩ÑΓß∩ ΓαѼ∩ φ½Ñ¼Ñ¡ΓἿ. ÅÑαóδ⌐ φ½Ñ¼Ñ¡ΓφΓ« π¬áºáΓѽ∞
- ¡á óѽ¿τ¿¡π Γ¿»á char, óΓ«α«⌐- ¡á óѽ¿τ¿¡π Γ¿»á int, á ΓαÑΓ¿⌐-
- φΓ« π¬áºáΓѽ∞ ¡á ß½ÑñπεΘπε ßΓαπ¬Γπαπ Γ¿»á list.
- é ΦÑßΓ«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ »ÑαѼѡ¡á∩ ß ¿¼Ñ¡Ñ¼ record,
- ¿¼ÑεΘá∩ Γ¿» ßΓαπ¬Γπαδ ß ¿¼Ñ¡Ñ¼ id. çá¼ÑΓ¿¼, τΓ« ΓαÑΓ¿⌐ φ½Ñ¼Ñ¡Γ ß
- ¿¼Ñ¡Ñ¼ pname «í"∩ó½Ñ¡ ¬á¬ π¬áºáΓѽ∞ ¡á ñαπú«⌐ Γ¿» ßΓαπ¬Γπαδ ß
- ¿¼Ñ¡Ñ¼ name. ¥Γ« «í"∩ó½Ñ¡¿Ñ ¼«ªÑΓ »«∩ó¿Γ∞ß∩ »ÑαÑñ «í"∩ó½Ñ¡¿Ñ
- ßΓαπ¬Γπαδ ß ¿¼Ñ¡Ñ¼ name.
-
-
- 4.5. Äí"∩ó½Ñ¡¿Ñ Σπ¡¬µ¿⌐
-
- æ¿¡Γá¬ß¿ß:
-
- [<type-specifier>]<declarator>([<arg-type-list>])[,<declarator>...];
-
- Äí"∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ «»αÑñѽ∩ÑΓ ¿¼∩, Γ¿» ó«ºóαáΓá Σπ¡¬µ¿¿ ¿,
- 󫺼«ª¡«, Γ¿»δ ¿ τ¿ß½« ÑÑ áαúπ¼Ñ¡Γ«ó. Äí"∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ ΓᬪÑ
- ¡áºδóáÑΓß∩ forward- «í"∩ó½Ñ¡¿Ñ¼. äѬ½áαáΓ«α Σπ¡¬µ¿¿ «í"∩ó½∩ÑΓ ¿¼∩
- Σπ¡¬µ¿¿, á ߻ѵ¿Σ¿¬áΓ«α Γ¿»á ºáñáÑΓ Γ¿» ó«ºóαáΓá. àß½¿ ߻ѵ¿Σ¿¬á-
- Γ«α Γ¿»á «»πΘÑ¡ ó «í"∩ó½Ñ¡¿¿ Σπ¡¬µ¿¿, Γ« »αÑñ»«½áúáÑΓß∩, τΓ«
- Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ óѽ¿τ¿¡π Γ¿»á int.
- Äí"∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ ¼«ªÑΓ ó¬½ετáΓ∞ ߻ѵ¿Σ¿¬áΓ«αδ ¬½áßßá »á-
- ¼∩Γ¿ extern ¿½¿ static.
-
- 滿߫¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó.
-
- 滿߫¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó- <arg-type-list> «»αÑñѽ∩ÑΓ τ¿ß½« ¿
- Γ¿»δ áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿¿. æ¿¡Γá¬ß¿ß ß»¿ß¬á áαúπ¼Ñ¡Γ«ó ß½ÑñπεΘ¿⌐:
-
- <type-name-list>[,...]
-
- 滿߫¬ ¿¼Ñ¡ Γ¿»«ó- φΓ« ß»¿ß«¬ ¿º «ñ¡«ú« ¿½¿ í«½ÑÑ ¿¼Ñ¡ Γ¿-
- »«ó. èáªñ«Ñ ¿¼∩ Γ¿»á «Γñѽ∩ÑΓß∩ «Γ ñαπú«ú« ºá»∩Γ«⌐. ÅÑαó«Ñ ¿¼∩
- Γ¿»á ºáñáÑΓ Γ¿» »Ñαó«ú« áαúπ¼Ñ¡Γá, óΓ«α«Ñ ¿¼∩ Γ¿»á ºáñáÑΓ Γ¿»
- óΓ«α«ú« áαúπ¼Ñ¡Γá ¿ Γ. ñ. àß½¿ ß»¿ß«¬ ¿¼Ñ¡ Γ¿»«ó ºá¬á¡τ¿óáÑΓß∩
- ºá»∩Γ«⌐ ß ¼¡«ú«Γ«τ¿Ñ¼ (,...), Γ« φΓ« «º¡áτáÑΓ, τΓ« τ¿ß½« áαúπ¼Ñ¡-
- Γ«ó Σπ¡¬µ¿¿ »ÑαѼѡ¡«. Äñ¡á¬«, »αÑñ»«½áúáÑΓß∩, τΓ« Σπ¡¬µ¿∩ íπñÑΓ
- ¿¼ÑΓ∞ ¡Ñ ¼Ñ¡∞ΦÑ áαúπ¼Ñ¡Γ«ó, τѼ ¿¼Ñ¡ Γ¿»«ó, »αÑñΦÑßΓóπεΘ¿σ ¼¡«ú«-
- Γ«τ¿ε.
- àß½¿ ß»¿ß«¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó- <arg-type-list> ß«ñÑনΓ
-
- - 50 -
-
-
- Γ«½∞¬« ¼¡«ú«Γ«τ¿Ñ (...), Γ« τ¿ß½« áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿¿ ∩ó½∩ÑΓß∩ »Ñ-
- αѼѡ¡δ¼ ¿½¿ αáó¡« ¡π½ε.
-
- çá¼Ñτá¡¿Ñ:
-
- ùΓ«íδ »«ññÑαªáΓ∞ ß«ó¼ÑßΓ¿¼«ßΓ∞ ß »α«úαἼἿ »αÑñ¿ñπΘ¿σ
- óÑαß¿⌐, ¬«¼»¿½∩Γ«α ñ«»π߬áÑΓ ß¿¼ó«½ ºá»∩Γ«⌐ íѺ ¼¡«ú«Γ«τ¿∩ ó ¬«¡-
- µÑ ß»¿ß¬á Γ¿»«ó áαúπ¼Ñ¡Γ«ó ñ½∩ «í«º¡áτÑ¡¿∩ ¿σ »ÑαѼѡ¡«ú« τ¿ß½á.
- çá»∩Γá∩ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á ¿ ó¼ÑßΓ« ¼¡«ú«Γ«τ¿∩ ñ½∩ «í"∩ó½Ñ-
- ¡¿∩ ¡π½∩ ¿½¿ í«½ÑÑ áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿¿. êß»«½∞º«óá¡¿Ñ ºá»∩Γ«⌐ »«ñ-
- ñÑনóáÑΓß∩ Γ«½∞¬« ñ½∩ ß«ó¼ÑßΓ¿¼«ßΓ¿. êß»«½∞º«óá¡¿Ñ ¼¡«ú«Γ«τ¿∩
- αѬ«¼Ñ¡ñπÑΓß∩ ñ½∩ ¡«ó«ú« »αÑñßΓáó½Ñ¡¿∩.
-
- ê¼∩ Γ¿»á- <type- name> ñ½∩ Γ¿»«ó ßΓαπ¬Γπαδ, ß«ó¼ÑΘÑ¡¿∩ ¿½¿
- íẫó«ú« Γ¿»á ß«ßΓ«¿Γ ¿º ߻ѵ¿Σ¿¬áΓ«αá φΓ«ú« Γ¿»á (Γᬫú« ¬á¬ int
- ). ê¼Ñ¡á Γ¿»«ó ñ½∩ π¬áºáΓѽÑ⌐, ¼áßß¿ó«ó ¿ Σπ¡¬µ¿⌐ Σ«α¼¿απεΓß∩ »π-
- ΓѼ ¬«¼í¿¡áµ¿¿ ߻ѵ¿Σ¿¬áΓ«αá Γ¿»á ß "áíßΓαá¬Γ¡δ¼ ñѬ½áαáΓ«α«¼".
- ÇíßΓαá¬Γ¡δ⌐ ñѬ½áαáΓ«α- φΓ« ñѬ½áαáΓ«α íѺ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. é αáº-
- ñÑ½Ñ 4.9 "ê¼Ñ¡á Γ¿»«ó" «í"∩ß¡∩ÑΓß∩, ¬á¬¿¼ «í"αẫ¼ Σ«α¼¿α«óáΓ∞ ¿
- ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ áíßΓαá¬Γ¡δÑ ñѬ½áαáΓ«αδ.
- ä½∩ Γ«ú« τΓ«íδ «í"∩ó¿Γ∞ Σπ¡¬µ¿ε, ¡Ñ ¿¼ÑεΘπε áαúπ¼Ñ¡Γ«ó, ¼«-
- ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡« ߻ѵ¿á½∞¡«Ñ ¬½ετÑó«Ñ ß½«ó« void ¡á ¼ÑßΓÑ
- ß»¿ß¬á Γ¿»«ó áαúπ¼Ñ¡Γ«ó. 諼»¿½∩Γ«α óδαáíáΓδóáÑΓ »αÑñπ»αѪñáεΘÑÑ
- ß««íΘÑ¡¿Ñ, Ñß½¿ ó ó맮óÑ Γᬫ⌐ Σπ¡¬µ¿¿ íπñπΓ ß»Ñµ¿Σ¿µ¿α«óá¡δ áα-
- úπ¼Ñ¡Γδ.
- àΘÑ «ñ¡á ߻ѵ¿á½∞¡á∩ ¬«¡ßΓαπ¬µ¿∩ ñ«»π߬áÑΓß∩ ó ß»¿ß¬Ñ Γ¿»«ó
- áαúπ¼Ñ¡Γ«ó. ¥Γ« Σαáºá void *, ¬«Γ«αá∩ ߻ѵ¿Σ¿µ¿απÑΓ áαúπ¼Ñ¡Γ Γ¿»á
- π¬áºáΓѽ∞. ¥Γá Σαáºá ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á ó ß»¿ß¬Ñ Γ¿»«ó áαúπ-
- ¼Ñ¡Γ«ó ó¼ÑßΓ« ¿¼Ñ¡¿ Γ¿»á.
-
- 滿߫¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó ¼«ªÑΓ íδΓ∞ «»πΘÑ¡. é ºΓ«¼ ß½πτáÑ
- ߬«í¬¿ »«ß½Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá Σπ¡¬µ¿¿ óßÑ ªÑ ΓαÑíπεΓß∩, σ«Γ∩ «¡¿ ¿
- »πßΓδ. é φΓ«¼ ß½πτáÑ ó «í"∩ó½Ñ¡¿¿ Σπ¡¬µ¿¿ ¡Ñ «»αÑñѽ∩εΓß∩ ¡¿ Γ¿-
- »δ, ¡¿ τ¿ß½« áαúπ¼Ñ¡Γ«ó ó Σπ¡¬µ¿¿. è«úñá φΓá ¿¡Σ«α¼áµ¿∩ «»π߬áÑΓ-
- ß∩, Γ« ¬«¼»¿½∩Γ«α ¡Ñ »α«óÑα∩ÑΓ ß««ΓóÑΓßΓó¿∩ ¼Ñªñπ Σ«α¼á½∞¡δ¼¿ ¿
- Σá¬Γ¿τÑ߬¿¼¿ »áαá¼ÑΓαἿ »α¿ ó맮óÑ Σπ¡¬µ¿¿. ü«½ÑÑ »«ñα«í¡á∩ ¿¡-
- Σ«α¼áµ¿∩ ñá¡á ó αáºñÑ½Ñ 7.4 "é맮óδ Σπ¡¬µ¿⌐".
-
- Æ¿» ó«ºóαáΓá
-
- öπ¡¬µ¿¿ ¼«úπΓ ó«ºóαáΘáΓ∞ óѽ¿τ¿¡δ ½εí«ú« Γ¿»á ºá ¿ß¬½ετÑ¡¿-
- Ѽ ¼áßß¿ó«ó ¿ Σπ¡¬µ¿⌐. ä½∩ φΓ«ú« »«ßαÑñßΓó«¼ ß»Ñµ¿Σ¿¬áΓ«αá Γ¿»á-
- "type-specifier" ó «í"∩ó½Ñ¡¿¿ Σπ¡¬µ¿¿ ¼«ª¡« ߻ѵ¿Σ¿µ¿α«óáΓ∞ ½εí«⌐
- Γ¿»: «ß¡«ó¡«⌐, ßΓαπ¬Γπαπ ¿½¿ ß«ó¼ÑΘÑ¡¿Ñ. êñÑ¡Γ¿Σ¿¬áΓ«α Σπ¡¬µ¿¿
- ¼«ªÑΓ íδΓ∞ ¼«ñ¿Σ¿µ¿α«óá¡ «ñ¡«⌐ ¿½¿ ¡Ñ߬«½∞¬¿¼¿ ºóѺñ«τ¬á¼¿ (*),
- τΓ«íδ «í"∩ó¿Γ∞ ó«ºóαáΘáѼπε óѽ¿τ¿¡π Γ¿»á π¬áºáΓѽ∩.
- ò«Γ∩ Σπ¡¬µ¿¿ ¿ ¡Ñ ñ«»π߬áεΓ ó«ºóαáΓ«ó ¼áßß¿ó«ó ¿½¿ Σπ¡¬µ¿⌐,
- ¡« «¡¿ ¼«úπΓ ó«ºóαáΘáΓ∞ π¬áºáΓѽ¿ ¡á ¼áßß¿óδ ¿½¿ Σπ¡¬µ¿¿. öπ¡¬-
- µ¿¿, ¬«Γ«αδÑ ó«ºóαáΘáεΓ π¬áºáΓѽ¿ ¡á óѽ¿τ¿¡δ Γ¿»á ¼áßß¿ó ¿½¿
- Σπ¡¬µ¿∩, «í"∩ó½∩εΓß∩ »«ßαÑñßΓó«¼ ¼«ñ¿Σ¿¬áµ¿¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá Σπ¡¬-
- µ¿¿ ¬óáñαáΓ¡δ¼¿ ߬«í¬á¼¿, ºóѺñ«τ¬«⌐ ¿ ¬απú½δ¼¿ ߬«í¬á¼¿, τΓ«íδ
- ßΣ«α¼¿α«óáΓ∞ ß«ßΓáó¡«⌐ ñѬ½áαáΓ«α. ö«α¼¿α«óá¡¿Ñ ¿ ¿¡ΓÑα»αÑΓᵿ∩
- ß«ßΓáó¡δσ ñѬ½áαáΓ«α«ó αáßß¼áΓα¿ó὿ß∞ ó αáºñÑ½Ñ 4.3.2.
-
-
- - 51 -
-
-
- Åα¿¼Ñαδ:
-
- int add(int, int); /* Example 1 */
-
- double calc(); /* Example 2 */
-
- char *strfind(char *,...); /* Example 3 */
-
- void draf(void); /* Example 4 */
-
- double (*sum(double, double)) [3]; /* Example 5 */
-
- int (*select(void)) (int) ; /* Example 6 */
-
- char *p; /* Example 7 */
- short *q;
- int prt(void *);
-
- é »Ñαó«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ Σπ¡¬µ¿∩, »«¿¼Ñ¡«óá¡¡á∩ add,
- ¬«Γ«αá∩ ΓαÑíπÑΓ ñóá áαúπ¼Ñ¡Γá Γ¿»á int ¿ ó«ºóαáΘáÑΓ óѽ¿τ¿¡π Γ¿»á
- int.
-
- é« óΓ«α«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ Σπ¡¬µ¿∩, »«¿¼Ñ¡«óá¡¡á∩ calc,
- ¬«Γ«αá∩ ó«ºóαáΘáÑΓ óѽ¿τ¿¡π Γ¿»á double. 滿߫¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó
- ¡Ñ ºáñá¡. é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ Σπ¡¬µ¿∩, »«¿¼Ñ¡«óá¡¡á∩
- strfind, ¬«Γ«αá∩ ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á óѽ¿τ¿¡π Γ¿»á char. öπ¡-
- ¬µ¿∩ ΓαÑíπÑΓ, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¿¡ áαúπ¼Ñ¡Γπ¬áºáΓѽ∞ ¡á óѽ¿τ¿¡π
- Γ¿»á char. 滿߫¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó ºá¬á¡τ¿óáÑΓß∩ ºá»∩Γ«⌐ ß ¼¡«ú«-
- Γ«τ¿Ñ¼, «í«º¡áτáεΘ¿¼, τΓ« Σπ¡¬µ¿∩ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ í«½∞ΦÑÑ τ¿ß½«
- áαúπ¼Ñ¡Γ«ó.
- é τÑΓóÑαΓ«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ Σπ¡¬µ¿∩ ß Γ¿»«¼ ó«ºóαáΓá
- void (¡ÑΓ ó«ºóαáΘáѼ«⌐ óѽ¿τ¿¡δ). 滿߫¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó ΓᬪÑ
- void, «º¡áτáεΘ¿⌐ «ΓßπΓßΓó¿Ñ áαúπ¼Ñ¡Γ«ó ñ½∩ φΓ«⌐ Σπ¡¬µ¿¿.
- é »∩Γ«¼ »α¿¼ÑαÑ sum «í"∩ó½∩ÑΓß∩ ¬á¬ Σπ¡¬µ¿∩, ó«ºóαáΘáεΘá∩
- π¬áºáΓѽ∞ ¡á ¼áßß¿ó ¿º ΓαÑσ óѽ¿τ¿¡ Γ¿»á double. öπ¡¬µ¿∩ sum ΓαÑ-
- íπÑΓ ñóá áαúπ¼Ñ¡Γá, ¬áªñδ⌐ ¿º ¬«Γ«αδσ ∩ó½∩ÑΓß∩ óѽ¿τ¿¡«⌐ Γ¿»á
- double.
- é ΦÑßΓ«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩, »«¿¼Ñ¡«óá¡¡á∩ select, «í"∩ó½Ñ¡á
- íѺ áαúπ¼Ñ¡Γ«ó ¿ ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε. ô¬áºáΓѽ∞ ó«ºó-
- αáΓá ßßδ½áÑΓß∩ ¡á Σπ¡¬µ¿ε, ΓαÑíπεΘπε «ñ¿¡ áαúπ¼Ñ¡Γ Γ¿»á int ¿
- ó«ºóαáΘáεΘπε óѽ¿τ¿¡π Γ¿»á int.
- é ßÑñ∞¼«¼ »α¿¼ÑαÑ «í"∩ó½Ñ¡á Σπ¡¬µ¿∩ prt, ¬«Γ«αá∩ ΓαÑíπÑΓ
- áαúπ¼Ñ¡Γ- π¬áºáΓѽ∞ ½εí«ú« Γ¿»á, ¿ ¬«Γ«αá∩ ó«ºóαáΘáÑΓ óѽ¿τ¿¡π
- Γ¿»á int. ïεí«⌐ π¬áºáΓѽ∞ p ¿½¿ q ¼«ú½¿ íδ íδΓ∞ ¿ß»«½∞º«óá¡δ ¬á¬
- áαúπ¼Ñ¡Γδ Σπ¡¬µ¿¿ íѺ óδñáτ¿ »α¿ φΓ«¼ »αÑñπ»αѪñáεΘÑú« ß««íΘÑ¡¿∩.
-
-
- 4.6. è½áßßδ »á¼∩Γ¿
-
- è½áßß »á¼∩Γ¿ »ÑαѼѡ¡«⌐, ¬«Γ«αá∩ «»αÑñѽ∩ÑΓ ¬á¬«⌐ ½¿í«
- «í"ѬΓ, ¿¼ÑÑΓ ú½«íá½∞¡«Ñ ¿½¿ ½«¬á½∞¡«Ñ óαѼ∩ ª¿º¡¿. Äí"Ñ¬Γ ß ú½«-
- íá½∞¡δ¼ óαѼѡѼ ª¿º¡¿ ßπΘÑßΓóπÑΓ ¿ ¿¼ÑÑΓ º¡áτÑ¡¿Ñ ¡á »α«Γ∩ªÑ¡¿¿
- óßÑ⌐ »α«úαá¼¼δ. éßÑ Σπ¡¬µ¿¿ ¿¼ÑεΓ ú½«íá½∞¡«Ñ óαѼ∩ ª¿º¡¿.
- ÅÑαѼѡ¡δÑ ß ½«¬á½∞¡δ¼ óαѼѡѼ ª¿º¡¿ ºáσóáΓδóáεΓ ¡«óπε »á-
- ¼∩Γ∞ »α¿ ¬áªñ«¼ óδ»«½¡Ñ¡¿¿ í½«¬á, ó ¬«Γ«α«¼ «¡¿ «»αÑñѽѡδ. è«úñá
- π»αáó½Ñ¡¿Ñ ¡á óδ»«½¡Ñ¡¿Ñ »ÑαÑñáÑΓß∩ ¿º í½«¬á, Γ« »ÑαѼѡ¡á∩ ΓÑα∩-
-
- - 52 -
-
-
- ÑΓ ßó«Ñ º¡áτÑ¡¿Ñ.
- ò«Γ∩ æ¿ «»αÑñѽ∩ÑΓ ñóá Γ¿»á ¬½áßß«ó »á¼∩Γ¿, ¡«, ΓѼ ¡Ñ ¼Ñ-
- ¡ÑÑ, ¿¼ÑÑΓß∩ ß½ÑñπεΘ¿σ τÑΓδαÑ ß»Ñµ¿Σ¿¬áΓ«αá ¬½áßß«ó »á¼∩Γ¿:
-
- auto
- register
- static
- extern
-
- Äí"ѬΓδ ¬½áßß«ó auto ¿ register ¿¼ÑεΓ ½«¬á½∞¡«Ñ óαѼ∩ ª¿º-
- ¡¿. æ»Ñµ¿Σ¿¬áΓ«αδ static ¿ extern «»αÑñѽ∩εΓ «í"ѬΓδ ß ú½«íá½∞¡δ¼
- óαѼѡѼ ª¿º¡¿. èáªñδ⌐ ¿º ߻ѵ¿Σ¿¬áΓ«α«ó ¬½áßßá »á¼∩Γ¿ ¿¼ÑÑΓ «»-
- αÑñѽѡ¡δ⌐ ß¼δß½, ¬«Γ«αδ⌐ ó½¿∩ÑΓ ¡á ó¿ñ¿¼«ßΓ∞ Σπ¡¬µ¿⌐ ¿ »ÑαѼѡ-
- ¡δσ ó Γ«⌐ ªÑ ¼ÑαÑ, ¬á¬ ¿ ßἿ ¬½áßßδ »á¼∩Γ¿. ÆÑନ¡ "ó¿ñ¿¼«ßΓ∞"
- «Γ¡«ß¿Γß∩ ¬ Γ«⌐ τáßΓ¿ »α«úαá¼¼δ, ó ¬«Γ«α«⌐ ¼«úπΓ ßßδ½áΓ∞ß∩ ñαπú
- ¡á ñαπúá Σπ¡¬µ¿¿ ¿ »ÑαѼѡ¡δÑ. Äí"ѬΓδ ß ú½«íá½∞¡δ¼ óαѼѡѼ ª¿º-
- ¡¿ ßπΘÑßΓóπεΓ ¡á »α«Γ∩ªÑ¡¿¿ óδ»«½¡Ñ¡¿∩ ¿ßσ«ñ¡«⌐ »α«úαá¼¼δ, ¡« «¡¿
- ¼«úπΓ íδΓ∞ ó¿ñ¿¼δ ¡Ñ ó« óßÑσ τáßΓ∩σ »α«úαá¼¼δ. é¿ñ¿¼«ßΓ∞ ¿ ßó∩-
- ºá¡¡á∩ ß ¡Ñ⌐ ¬«¡µÑ»µ¿∩ óαѼѡ¿ ª¿º¡¿ αáßß¼«ΓαÑ¡á ó αáºñÑ½Ñ 3.5.
- îÑßΓ«αáß»«½«ªÑ¡¿Ñ «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ ¿½¿ Σπ¡¬µ¿¿ ó¡πΓα¿
- ¿ßσ«ñ¡δσ Σá⌐½«ó Γá¬ªÑ ó½¿∩εΓ ¡á ¬½áßß »á¼∩Γ¿ ¿ ó¿ñ¿¼«ßΓ∞. â«ó«-
- α∩Γ, τΓ« «í"∩ó½Ñ¡¿∩ ó¡Ñ «»αÑñѽѡ¿∩ óßÑσ Σπ¡¬µ¿⌐ ¿ »ÑαѼѡ¡δσ «Γ-
- ¡«ß∩Γß∩ ¬ ó¡ÑΦ¡Ñ¼π πα«ó¡ε, á «í"∩ó½Ñ¡¿∩ ó¡πΓα¿ «»αÑñѽѡ¿⌐ Σπ¡¬-
- µ¿⌐ «Γ¡«ß∩Γß∩ ¬ ó¡πΓαÑ¡¡Ñ¼π πα«ó¡ε.
- Æ«τ¡δ⌐ ß¼δß½ ¬áªñ«ú« ߻ѵ¿Σ¿¬áΓ«αá ¬½áßßá »á¼∩Γ¿ ºáó¿ß¿Γ «Γ
- Γ«ú«, ¡áσ«ñ¿Γß∩ ½¿ «í"∩ó½Ñ¡¿Ñ ¡á ó¡ÑΦ¡Ñ¼ ¿½¿ ó¡πΓαÑ¡¡Ñ¼ πα«ó¡Ñ ¿
- «Γ Γ«ú«, «í"∩ó½Ñ¡ ½¿ «í"Ñ¬Γ Σπ¡¬µ¿Ñ⌐ ¿½¿ »ÑαѼѡ¡«⌐. é ß½ÑñπεΘѼ
- αáºñÑ½Ñ «»¿ßδóáÑΓß∩ ß¼δß½ ߻ѵ¿Σ¿¬áΓ«α«ó ¬½áßßá »á¼∩Γ¿ ó ¬áªñ«¼
- ß½πτáÑ «í"∩ó½Ñ¡¿∩, á Γá¬ªÑ «í"∩ß¡∩ÑΓß∩ αѪ¿¼ π¼«½τá¡¿∩, ¬«úñá
- ߻ѵ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿ «»πΘÑ¡ »α¿ «í"∩ó½Ñ¡¿¿ »ÑαѼѡ¡«⌐ ¿½¿
- Σπ¡¬µ¿¿.
-
-
- 4.6.1. Äí"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ
-
- Äí"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ ¿ß»«½∞ºπεΓ ß»Ñµ¿Σ¿-
- ¬áΓ«αδ ¬½áßßá »á¼∩Γ¿ static ¿ extern ¿½¿ ß«óßѼ «»π߬áεΓ ¿σ. æ»Ñ-
- µ¿Σ¿¬áΓ«αδ ¬½áßßá »á¼∩Γ¿ auto ¿ register ¡Ñ ñ«»π߬áεΓß∩ ¡á ó¡ÑΦ-
- ¡Ñ¼ πα«ó¡Ñ.
- Äí"∩ó½Ñ¡¿∩ »ÑαѼѡ¡δσ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ- φΓ« «»αÑñѽѡ¿∩
- »ÑαѼѡ¡δσ ¿½¿ ßß佬¿ ¡á «»αÑñѽѡ¿∩, ßñѽᡡδÑ ó ñαπú«¼ ¼ÑßΓÑ.
- Äí"∩ó½Ñ¡¿Ñ ó¡ÑΦ¡Ñ⌐ »ÑαѼѡ¡«⌐, ¬«Γ«α«Ñ ¿¡¿µ¿á½¿º¿απÑΓ φΓπ
- »ÑαѼѡ¡πε (∩ó¡« ¿½¿ ¡Ñ∩ó¡«), ¡áºδóáÑΓß∩ «»αÑñѽѡ¿Ñ¼ φΓ«⌐ »ÑαÑ-
- ¼Ñ¡¡«⌐. Ä»αÑñѽѡ¿Ñ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ ¼«ªÑΓ ºáñáóáΓ∞ß∩ ó ß½Ññπε-
- Θ¿σ αẽ¿τ¡δσ Σ«α¼áσ:
-
- -»ÑαѼѡ¡á∩ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ ¼«ªÑΓ íδΓ∞ «»αÑñÑ½Ñ¡á »πΓѼ
- ÑÑ «í"∩ó½Ñ¡¿∩ ß« ߻ѵ¿Σ¿¬áΓ«α«¼ ¬½áßßá »á¼∩Γ¿ static. Æá¬á∩ »ÑαÑ-
- ¼Ñ¡¡á∩ ¼«ªÑΓ íδΓ∞ ∩ó¡« ¿¡¿µ¿á½¿º¿α«óá¡á ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼.
- àß½¿ ¿¡¿µ¿á½¿ºáΓ«α «ΓßπΓßΓóπÑΓ, Γ« »ÑαѼѡ¡á∩ áóΓ«¼áΓ¿τÑ߬¿ ¿¡¿-
- µ¿á½¿º¿απÑΓß∩ ¡π½Ñ¼ ó« óαѼ∩ ¬«¼»¿½∩µ¿¿. Æá¬¿¼ «íαẫ¼, «í"∩ó½Ñ-
- ¡¿∩ static int k = 16; ¿ static int k; «íá αáßß¼áΓα¿óáεΓß∩ ¬á¬
- «»αÑñѽѡ¿∩;
-
- -»ÑαѼѡ¡á∩ «»αÑñѽ∩ÑΓß∩, ¬«úñá «¡á ∩ó¡« ¿¡¿µ¿á½¿º¿απÑΓß∩
-
- - 53 -
-
-
- ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ. ìá»α¿¼Ñα, int j = 3; φΓ« «»αÑñѽѡ¿Ñ »ÑαѼѡ-
- ¡«⌐.
-
- Æá¬ ¬á¬ »ÑαѼѡ¡á∩ «»αÑñѽ∩ÑΓß∩ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ, Γ« «¡á
- ó¿ñ¿¼á ó »αÑñѽáσ «ßΓáΓ¬á ¿ßσ«ñ¡«ú« Σá⌐½á, «Γ ¼ÑßΓá, úñÑ «¡á «»-
- αÑñѽѡá. ÅÑαѼѡ¡á∩ ¡Ñ ó¿ñ¿¼á óδΦÑ ßó«Ñú« «»αÑñѽѡ¿∩ ó Γ«¼ ªÑ
- ßἫ¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ ¡¿ ó ñαπú¿σ ¿ßσ«ñ¡δσ Σá⌐½áσ »α«úαá¼¼δ, Ñß½¿
- ¡Ñ «í"∩ó½Ñ¡á ßß佬á, ¬«Γ«αá∩ ñѽáÑΓ ÑÑ ó¿ñ¿¼«⌐.
- ÅÑαѼѡ¡á∩ ¼«ªÑΓ íδΓ∞ «»αÑñÑ½Ñ¡á ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ ó¡πΓα¿
- ¿ßσ«ñ¡«ú« Σá⌐½á Γ«½∞¬« «ñ¿¡ αáº. àß½¿ ºáñáÑΓß∩ ߻ѵ¿Σ¿¬áΓ«α ¬½áß-
- ßá »á¼∩Γ¿ static, Γ« ó ñαπú¿σ ¿ßσ«ñ¡δσ Σá⌐½áσ ¼«úπΓ íδΓ∞ «»αÑñÑ-
- ½Ñ¡δ »ÑαѼѡ¡δÑ ß ΓѼ ªÑ ¿¼Ñ¡Ñ¼. Æá¬ ¬á¬ ¬áªñ«Ñ «»αÑñѽѡ¿Ñ
- static ó¿ñ¿¼« Γ«½∞¬« ó »αÑñѽáσ ßó«Ñú« ß«íßΓóÑ¡¡«ú« ¿ßσ«ñ¡«ú«
- Σá⌐½á, Γ« ¬«¡Σ½¿¬Γá ¡Ñ ó«º¡¿¬¡ÑΓ.
- æ»Ñµ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿ extern ¿ß»«½∞ºπÑΓß∩ ñ½∩ «í"∩ó½Ñ-
- ¡¿∩ ßß佬¿ ¡á »ÑαѼѡ¡πε, «»αÑñѽѡ¡πε úñÑ-Γ« ó ñαπú«¼ ¼ÑßΓÑ. Æá-
- ¬¿Ñ «í"∩ó½Ñ¡¿∩ ¿ß»«½∞ºπεΓß∩ ó ß½πτáÑ, ¬«úñá ¡πª¡« ßñѽáΓ∞ ó¿ñ¿¼δ¼
- «»αÑñѽѡ¿Ñ »ÑαѼѡ¡«⌐ ó ñαπú¿σ ¿ßσ«ñ¡δσ Σá⌐½áσ ¿½¿ óδΦÑ ¼ÑßΓá,
- úñÑ «¡á «»αÑñѽѡá ó Γ«¼ ªÑ ßἫ¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ. Æá¬ ¬á¬ ßß佬á
- ¡á »ÑαѼѡ¡πε «í"∩ó½Ñ¡á ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ, Γ« »ÑαѼѡ¡á∩ ó¿ñ¿¼á ó
- »αÑñѽáσ «ßΓáΓ¬á ¿ßσ«ñ¡«ú« Σá⌐½á «Γ ¼ÑßΓá «í"∩ó½Ñ¡¿∩ ßß佬¿.
- é «í"∩ó½Ñ¡¿∩σ, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ ß»Ñµ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩-
- Γ¿ extern, ¿¡¿µ¿á½¿ºáµ¿∩ ¡Ñ ñ«»π߬áÑΓß∩, Γᬠ¬á¬ «¡¿ ßßδ½áεΓß∩ ¡á
- »ÑαѼѡ¡δÑ, τ∞¿ óѽ¿τ¿¡δ πªÑ «»αÑñѽѡδ.
- ÅÑαѼѡ¡á∩, ¡á ¬«Γ«απε ñѽáÑΓß∩ ßß佬á extern, ñ«½ª¡á íδΓ∞
- «»αÑñÑ½Ñ¡á ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ Γ«½∞¬« «ñ¿¡ αáº. Ä»αÑñѽѡ¿Ñ ¼«ªÑΓ
- íδΓ∞ ßñѽᡫ ó ½εí«¼ ¿º ¿ßσ«ñ¡δσ Σá⌐½«ó, ß«ßΓáó½∩εΘ¿σ »α«úαá¼¼π.
- àßΓ∞ «ñ¡« ¿ß¬½ετÑ¡¿Ñ ¿º »αáó¿½, «»¿ßá¡¡δσ óδΦÑ. ¡« «»πß-
- Γ¿Γ∞ ¿º «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ ߻ѵ¿Σ¿¬áΓ«α
- ¬½áßßá »á¼∩Γ¿ ¿ ¿¡¿µ¿á½¿ºáΓ«α. ìá»α¿¼Ñα, «í"∩ó½Ñ¡¿Ñ int n; íπñÑΓ
- »αáó¿½∞¡δ¼ ó¡ÑΦ¡¿¼ «í"∩ó½Ñ¡¿Ñ¼. ¥Γ« «í"∩ó½Ñ¡¿Ñ ¿¼ÑÑΓ ñóá αẽ¿τ-
- ¡δσ ß¼δß½á ó ºáó¿ß¿¼«ßΓ¿ «Γ ¬«¡ΓѬßΓá.
-
- 1. àß½¿ úñÑ-¡¿íπñ∞ ó »α«úαá¼¼Ñ íπñÑΓ «»αÑñÑ½Ñ¡á ¡á ó¡ÑΦ¡Ñ¼
- πα«ó¡Ñ »ÑαѼѡ¡á∩ ß ΓѼ ªÑ ¿¼Ñ¡Ñ¼, Γ« «í"∩ó½Ñ¡¿Ñ ∩ó½∩ÑΓß∩ ßß佬«⌐
- ¡á φΓπ »ÑαѼѡ¡πε, ¬á¬ Ñß½¿ íδ íδ½ ¿ß»«½∞º«óᡠ߻ѵ¿Σ¿¬áΓ«α ¬½áß-
- ßá »á¼∩Γ¿ extern ó «í"∩ó½Ñ¡¿¿.
-
- 2. àß½¿ ¡ÑΓ Γᬫú« «»αÑñѽѡ¿∩, Γ« «í"∩ó½Ñ¡¡«⌐ »ÑαѼѡ¡«⌐
- αáß»αÑñѽ∩ÑΓß∩ »á¼∩Γ∞ ó« óαѼ∩ ½¿¡¬«óá¡¿∩ ¿ »ÑαѼѡ¡á∩ ¿¡¿µ¿á½¿-
- º¿απÑΓß∩ ¡π½Ñ¼. àß½¿ ó »α«úαá¼¼Ñ »«∩ó¿Γß∩ í«½ÑÑ τѼ «ñ¡« ΓᬫÑ
- «í"∩ó½Ñ¡¿Ñ, Γ« »á¼∩Γ∞ αáß»αÑñѽ¿Γß∩ ñ½∩ ¡á¿í«½∞ΦÑú« αẼÑαá ¿º
- «í"∩ó½Ñ¡¡δσ »ÑαѼѡ¡δσ. ìá»α¿¼Ñα, Ñß½¿ »α«úαá¼¼á ß«ñÑαª¿Γ ñóá ¡Ñ-
- ¿¡¿µ¿á½¿º¿α«óá¡¡δσ «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ i ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ int
- i; ¿ char i; Γ« »á¼∩Γ∞ ó« óαѼ∩ ½¿¡¬«óá¡¿∩ αáß»αÑñѽ¿Γß∩ »«ñ »Ñ-
- αѼѡ¡πε i Γ¿»á int.
-
-
- ìÑ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ ¡á ó¡ÑΦ¡Ñ¼ πα«ó-
- ¡Ñ ¡Ñ αѬ«¼Ñ¡ñπεΓß∩ ñ½∩ Σá⌐½«ó, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ αẼÑΘÑ¡δ ó
- í¿í½¿«ΓѬπ.
-
-
- - 54 -
-
- Åα¿¼Ñα:
-
- /*****************************************************
-
- SOURCE FILE ONE
- *****************************************************/
-
- extern int i; /* reference to i
- defined below */
-
- main()
- {
- i++;
- printf("%d\n", i); /* i equals 4 */
- next();
- }
-
- int i = 3; /* definition of i */
-
- next()
- {
- i++;
- printf("%d\n", i); /* i equals 5 */
- other();
- }
-
- /*****************************************************
- SOURCE FILE TWO
- *****************************************************/
-
- extern int i; /* reference to i in
- first source file */
-
- other()
- {
- i++;
- printf("%d\n", i); /* i equals 6 */
- }
-
- äóá ¿ßσ«ñ¡δσ Σá⌐½á ó ß«ó«¬π»¡«ßΓ¿ ß«ñÑαªáΓ Γα¿ ó¡ÑΦ¡¿σ
- «í"∩ó½Ñ¡¿∩ i. Äñ¡« «í"∩ó½Ñ¡¿Ñ ß«ñÑαª¿Γ ¿¡¿µ¿á½¿ºáµ¿ε- int i = 3;
- , úñÑ ú½«íá½∞¡á∩ »ÑαѼѡ¡á∩ i «»αÑñѽѡá ß ¡áτá½∞¡δ¼ º¡áτÑ¡¿Ñ¼
- αáó¡δ¼ 3.
- æá¼«Ñ »Ñαó«Ñ «í"∩ó½Ñ¡¿Ñ extern ó »Ñαó«¼ Σá⌐½Ñ ñѽáÑΓ ú½«-
- íá½∞¡πε »ÑαѼѡ¡πε ó¿ñ¿¼«⌐ óδΦÑ ÑÑ «»αÑñѽѡ¿∩ ó Σá⌐½Ñ.
- üѺ «í"∩ó½Ñ¡¿∩ extern Σπ¡¬µ¿∩ main ¡Ñ ß¼«ú½á íδ ߽߫áΓ∞ß∩
- ¡á ú½«íá½∞¡πε »ÑαѼѡ¡πε i. Äí"∩ó½Ñ¡¿Ñ extern »ÑαѼѡ¡«⌐ i ó«
- óΓ«α«¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ ñѽáÑΓ ú½«íá½∞¡πε »ÑαѼѡ¡πε ó¿ñ¿¼«⌐ ó φΓ«¼
- ¿ßσ«ñ¡«¼ Σá⌐½Ñ.
- éßÑ Γα¿ Σπ¡¬µ¿¿ óδ»«½¡∩εΓ «ñ¡π ¿ Γπ ªÑ ºáñáτπ: «¡¿ πóѽ¿τ¿-
- óáεΓ i ¡á 1 ¿ »ÑτáΓáεΓ »«½πτ¿óΦÑÑß∩ º¡áτÑ¡¿Ñ. (ÅαÑñ»«½áúáÑΓß∩,
- τΓ« Σπ¡¬µ¿∩ printf «»αÑñѽѡá úñÑ-Γ« ÑΘÑ ó »α«úαá¼¼Ñ.). ÅÑτáΓáεΓ-
- ß∩ óѽ¿τ¿¡δ αáó¡δÑ 4, 5 ¿ 6.
- àß½¿ íδ »ÑαѼѡ¡á∩ i ¡Ñ íδ½á íδ ¿¡¿µ¿á½¿º¿α«óá¡á,«¡á íδ íδ-
- ½á áóΓ«¼áΓ¿τÑ߬¿ πßΓá¡«ó½Ñ¡á ó 0 »α¿ ½¿¡¬«óá¡¿¿. é φΓ«¼ ß½πτáÑ
- ¡á»ÑτáΓá¡¡δÑ º¡áτÑ¡¿∩ í뫨 íδ αáó¡δ 1, 2 ¿ 3.
-
-
-
- - 55 -
-
- 4.6.2. Äí"∩ó½Ñ¡¿Ñ »ÑαѼѡ¡«⌐ ¡á ó¡πΓαÑ¡¡Ñ¼ πα«ó¡Ñ
-
-
- ïεí«⌐ ¿º τÑΓδαÑσ ߻ѵ¿Σ¿¬áΓ«α«ó ¬½áßßá »á¼∩Γ¿ ¼«ªÑΓ íδΓ∞
- ¿ß»«½∞º«óá¡ ñ½∩ «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ ¡á ó¡πΓαÑ¡¡Ñ¼ πα«ó¡Ñ. àß½¿
- ߻ѵ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿ «»π߬áÑΓß∩ ó «í"∩ó½Ñ¡¿¿ »ÑαѼѡ¡«⌐ ¡á
- ó¡πΓαÑ¡¡Ñ¼ πα«ó¡Ñ, Γ« »«ñαáºπ¼ÑóáÑΓß∩ ¬½áßß »á¼∩Γ¿ auto.
- æ»Ñµ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿ auto «í"∩ó½∩ÑΓ »ÑαѼѡ¡πε ß ½«-
- ¬á½∞¡δ¼ óαѼѡѼ ª¿º¡¿. ÅÑαѼѡ¡á∩ ó¿ñ¿¼á Γ«½∞¬« ó Γ«¼ í½«¬Ñ, úñÑ
- «¡á «í"∩ó½Ñ¡á. Äí"∩ó½Ñ¡¿∩ »ÑαѼѡ¡δσ auto ¼«úπΓ ó¬½ετáΓ∞ ¿¡¿µ¿á-
- ½¿ºáΓ«αδ. ÅÑαѼѡ¡δÑ ¬½áßßá »á¼∩Γ¿ auto áóΓ«¼áΓ¿τÑ߬¿ ¡Ñ ¿¡¿µ¿á-
- ½¿º¿απεΓß∩, á ¿¡¿µ¿á½¿º¿απεΓß∩ ∩ó¡« »α¿ «í"∩ó½Ñ¡¿¿ ¿½¿ »α¿ßóá¿óá-
- ¡¿¿ ¡áτá½∞¡δσ º¡áτÑ¡¿⌐, »«ßαÑñßΓó«¼ «»ÑαáΓ«α«ó ó¡πΓα¿ í½«¬á. àß½¿
- ¡ÑΓ ¿¡¿µ¿á½¿ºáµ¿¿, Γ« óѽ¿τ¿¡á »ÑαѼѡ¡«⌐ auto ßτ¿ΓáÑΓß∩ ¡Ñ«»αÑ-
- ñѽѡ¡«⌐.
- æ»Ñµ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿ register ß««íΘáÑΓ ¬«¼»¿½∩Γ«απ «
- Γ«¼, τΓ«íδ «¡ αáß»αÑñѽ¿½ »á¼∩Γ∞ »«ñ »ÑαѼѡ¡πε ó αÑú¿ßΓαÑ, Ñß½¿
- φΓ« 󫺼«ª¡«. êß»«½∞º«óá¡¿Ñ αÑú¿ßΓα«ó«⌐ »á¼∩Γ¿ «íδτ¡« »α¿ó«ñ¿Γ ¬
- í«½ÑÑ íδßΓα«¼π óαѼѡ¿ ñ«ßΓπ»á ¿ ¬ ¼Ñ¡∞ΦѼπ αẼÑαπ αѺπ½∞Γ¿απε-
- ΘÑú« ¬«ñá. ÅÑαѼѡ¡δÑ, «í"∩ó½Ñ¡¡δÑ ß ¬½áßß«¼ »á¼∩Γ¿ register ¿¼Ñ-
- εΓ Γπ ªÑ ßá¼πε ó¿ñ¿¼«ßΓ∞, τΓ« ¿ »ÑαѼѡ¡δÑ auto.
- ù¿ß½« αÑú¿ßΓα«ó, ¬«Γ«α«Ñ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡« »«ñ »á¼∩Γ∞
- »ÑαѼѡ¡δσ, ºáó¿ß¿Γ «Γ ¼áΦ¿¡δ. è«úñá ¬«¼»¿½∩Γ«α óßΓαÑτáÑΓ ß»Ñµ¿-
- Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿ register ó «í"∩ó½Ñ¡¿¿, á ßó«í«ñ¡«ú« αÑú¿ßΓ-
- αá ¡Ñ ¿¼ÑÑΓß∩, Γ« ñ½∩ »ÑαѼѡ¡«⌐ αáß»αÑñѽ∩ÑΓß∩ »á¼∩Γ∞ ¬½áßßá
- auto. 諼»¿½∩Γ«α ¡áº¡áτáÑΓ »ÑαѼѡ¡δ¼ αÑú¿ßΓα«óπε »á¼∩Γ∞ ó Γ«¼
- »«α∩ñ¬Ñ, ó ¬«Γ«α«¼ »«∩ó½∩εΓß∩ «í"∩ó½Ñ¡¿∩ ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ. ÉÑú¿ß-
- Γα«óá∩ »á¼∩Γ∞, Ñß½¿ «¡á ¿¼ÑÑΓß∩, úáαá¡Γ¿α«óá¡á Γ«½∞¬« ñ½∩ µÑ½«ú«
- ¿ áñαÑß¡«ú« Γ¿»«ó.
- ÅÑαѼѡ¡á∩, «í"∩ó½Ñ¡¡á∩ ¡á ó¡πΓαÑ¡¡Ñ¼ πα«ó¡Ñ ß« ߻ѵ¿Σ¿¬á-
- Γ«α«¼ ¬½áßßá »á¼∩Γ¿ static,¿¼ÑÑΓ ú½«íá½∞¡«Ñ óαѼ∩ ª¿º¡¿ ¿ ¿¼ÑÑΓ
- ó¿ñ¿¼«ßΓ∞ Γ«½∞¬« ó¡πΓα¿ í½«¬á, ó ¬«Γ«α«¼ «¡á «í"∩ó½Ñ¡á. é «Γ½¿τ¿Ñ
- «Γ »ÑαѼѡ¡δσ auto, »ÑαѼѡ¡δÑ, «í"∩ó½Ñ¡¡δÑ ¬á¬ static, ß«σαá¡∩εΓ
- ßó«Ñ º¡áτÑ¡¿Ñ »α¿ ºáóÑαΦÑ¡¿¿ í½«¬á.
- ÅÑαѼѡ¡δÑ ¬½áßßá »á¼∩Γ¿ static ¼«úπΓ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡δ
- ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼. àß½¿ ∩ó¡«⌐ ¿¡¿µ¿á½¿ºáµ¿¿ ¡ÑΓ, Γ« »ÑαѼѡ-
- ¡á∩ ¬½áßßá »á¼∩Γ¿ static áóΓ«¼áΓ¿τÑ߬¿ πßΓá¡áó½¿óáÑΓß∩ ó 0. ê¡¿-
- µ¿á½¿ºáµ¿∩ óδ»«½¡∩ÑΓß∩ «ñ¿¡ αẠó« óαѼ∩ ¬«¼»¿½∩µ¿¿. ê¡¿µ¿á½¿ºá-
- µ¿∩ »ÑαѼѡ¡«⌐ ¬½áßßá »á¼∩Γ¿ static ¡Ñ »«óΓ«α∩ÑΓß∩ »α¿ ¡«ó«¼ óσ«-
- ñÑ ó í½«¬.
- ÅÑαѼѡ¡á∩, «í"∩ó½Ñ¡¡á∩ ß« ߻ѵ¿Σ¿¬áΓ«α«¼ ¬½áßßá »á¼∩Γ¿
- extern, ∩ó½∩ÑΓß∩ ßß佬«⌐ ¡á »ÑαѼѡ¡πε ß ΓѼ ªÑ ßá¼δ¼ ¿¼Ñ¡Ñ¼, «»-
- αÑñѽѡ¡πε ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ ó ½εí«¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ »α«úαá¼¼δ.
- ûѽ∞ ó¡πΓαÑ¡¡Ñú« «í"∩ó½Ñ¡¿∩ extern ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ
- ßñѽáΓ∞ «»αÑñѽѡ¿Ñ »ÑαѼѡ¡«⌐ ó¡ÑΦ¡Ñú« πα«ó¡∩ ó¿ñ¿¼«⌐ ó¡πΓα¿
- í½«¬á. é¡πΓαÑ¡¡ÑÑ «í'∩ó½Ñ¡¿Ñ extern ¡Ñ ¿º¼Ñ¡∩ÑΓ ó¿ñ¿¼«ßΓ∞ ú½«-
- íá½∞¡«⌐ »ÑαѼѡ¡«⌐ ó ½εí«⌐ ñαπú«⌐ τáßΓ¿ »α«úαá¼¼δ.
-
- Åα¿¼Ñα:
-
- int i = 1;
-
- main()
- { /* reference to i, defined above */
- extern int i;
-
- /* initial value is zero; a is
-
- - 56 -
-
-
- visible only within main */
- static int a;
-
- /* b is stored in a register, if possible */
- register int b = 0;
-
- /* default storage class is auto */
- int c = 0;
-
- /* values printed are 1, 0, 0, 0 */
- printf("%d\n%d\n%d\n%d\n", i, a, b, c);
- other();
- }
- other()
- {
- /* i is redefined */
- int i = 16;
-
- /* this a is visible only within other */
- static int a = 2;
- a += 2;
- /* values printed are 16, 4 */
- printf("%d\n%d\n", i, a);
- }
-
- ÅÑαѼѡ¡á∩ i «»αÑñѽ∩ÑΓß∩ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ ß ¿¡¿µ¿á½¿ºáµ¿-
- Ñ⌐ 1. é Σπ¡¬µ¿¿ main «í"∩ó½Ñ¡á ßß佬á extern ¡á »ÑαѼѡ¡πε i
- ó¡ÑΦ¡Ñú« πα«ó¡∩. ÅÑαѼѡ¡á∩ ¬½áßßá »á¼∩Γ¿ static áóΓ«¼áΓ¿τÑ߬¿
- πßΓá¡áó½¿óáÑΓß∩ ó 0, Γᬠ¬á¬ ¿¡¿µ¿á½¿ºáΓ«α «»πΘÑ¡. é맮ó Σπ¡¬µ¿¿
- print (»αÑñ»«½áúáÑΓß∩, τΓ« Σπ¡¬µ¿∩ print «»αÑñѽѡá ó ¬á¬«¼-Γ«
- ¼ÑßΓÑ ¿ßσ«ñ¡«⌐ »α«úαá¼¼δ.) »ÑτáΓáÑΓ óѽ¿τ¿¡δ 1, 0, 0, 0.
- é Σπ¡¬µ¿¿ other, »ÑαѼѡ¡á∩ i »ÑαÑ«»αÑñѽ∩ÑΓß∩ ¬á¬ ½«¬á½∞-
- ¡á∩ »ÑαѼѡ¡á∩ ß ¡áτá½∞¡δ¼ º¡áτÑ¡¿Ñ¼ 16. ¥Γ« ¡Ñ ó½¿∩ÑΓ ¡á º¡áτÑ-
- ¡¿Ñ ó¡ÑΦ¡Ñ⌐ »ÑαѼѡ¡«⌐ i. ÅÑαѼѡ¡á∩ a «í"∩ó½∩ÑΓß∩ ¬á¬ »ÑαѼѡ¡á∩
- ¬½áßßá »á¼∩Γ¿ static ß ¡áτá½∞¡δ¼ º¡áτÑ¡¿Ñ¼ 2. Ä¡á ¡Ñ »α«Γ¿ó«αÑτ¿Γ
- »ÑαѼѡ¡«⌐ a, «í"∩ó½Ñ¡¡«⌐ ó Σπ¡¬µ¿¿ main, Γᬠ¬á¬ ó¿ñ¿¼«ßΓ∞ »ÑαÑ-
- ¼Ñ¡¡δσ ¬½áßßá »á¼∩Γ¿ static ¡á ó¡πΓαÑ¡¡Ñ¼ πα«ó¡Ñ «úαá¡¿τÑ¡á í½«-
- ¬«¼, ó ¬«Γ«α«¼ «¡á «í"∩ó½Ñ¡á.
- ç¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ πóѽ¿τ¿óáÑΓß∩ ¡á 2 ¿ ßΓá¡«ó¿Γß∩ αáó¡δ¼
- 4. àß½¿ íδ Σπ¡¬µ¿∩ other íδ½á óδºóá¡á ß¡«óá ó Γ«⌐ ªÑ ßἫ⌐ »α«ú-
- αá¼¼Ñ, Γ« ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ a ßΓὫ íδ αáó¡δ¼ 4. é¡πΓαÑ¡¡¿Ñ »Ñ-
- αѼѡ¡δÑ ¬½áßßá »á¼∩Γ¿ static ß«σαá¡∩εΓ ßó«¿ º¡áτÑ¡¿∩, ¬«úñá ºá-
- ¬á¡τ¿óáÑΓß∩ óδ»«½¡Ñ¡¿Ñ í½«¬á, ó ¬«Γ«α«¼ «¡¿ «í"∩ó½Ñ¡δ.
-
-
- 4.6.3. Äí"∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ ¡á ó¡ÑΦ¡Ñ¼ ¿ ó¡πΓαÑ¡¡Ñ¼ πα«ó¡∩σ
-
- öπ¡¬µ¿¿ ¼«úπΓ íδΓ∞ «í"∩ó½Ñ¡δ ß« ߻ѵ¿Σ¿¬áΓ«αἿ ¬½áßßá »á-
- ¼∩Γ¿ static ¿½¿ extern. öπ¡¬µ¿¿ óßÑúñá ¿¼ÑεΓ ú½«íá½∞¡«Ñ óαѼ∩
- ª¿º¡¿.
- Åαáó¿½á ó¿ñ¿¼«ßΓ¿ ñ½∩ Σπ¡¬µ¿⌐ «Γ½¿τáεΓß∩ «Γ »αáó¿½ ó¿ñ¿¼«ß-
- Γ¿ ñ½∩ »ÑαѼѡ¡δσ. Äí"∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐ ¡á ó¡πΓαÑ¡¡Ñ¼ πα«ó¡Ñ ¿¼ÑεΓ
- ëà ªÑ ßá¼δ⌐ ß¼δß½, τΓ« ¿ «í"∩ó½Ñ¡¿∩ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ. ¥Γ« º¡á-
- τ¿Γ, τΓ« Σπ¡¬µ¿¿ ¡Ñ ¼«úπΓ ¿¼ÑΓ∞ í½«τ¡«⌐ ó¿ñ¿¼«ßΓ¿ ¿ ó¿ñ¿¼«ßΓ∞
- Σπ¡¬µ¿⌐ ¡Ñ ¼«ªÑΓ íδΓ∞ 󽫪ѡ¡«⌐. öπ¡¬µ¿∩ «í"∩ó½Ñ¡¡á∩ ¬á¬ static,
-
- - 57 -
-
-
- ó¿ñ¿¼á Γ«½∞¬« ó »αÑñѽáσ ¿ßσ«ñ¡«ú« Σá⌐½á, ó ¬«Γ«α«¼ «¡á «»αÑñѽ∩-
- ÑΓß∩. ïεíá∩ Σπ¡¬µ¿∩ ó Γ«¼ ªÑ ßἫ¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ ¼«ªÑΓ óδºóáΓ∞
- Σπ¡¬µ¿ε static, ¡« Σπ¡¬µ¿¿ static ¿º ñαπú¿σ Σá⌐½«ó ¡ÑΓ. öπ¡¬µ¿∩
- static ß ΓѼ ªÑ ßá¼δ¼ ¿¼Ñ¡Ñ¼ ¼«ªÑΓ íδΓ∞ «í"∩ó½Ñ¡á ó ñαπú«¼ ¿ßσ«ñ-
- ¡«¼ Σá⌐½Ñ.
- öπ¡¬µ¿¿, «í"∩ó½Ñ¡¡δÑ ¬á¬ extern ó¿ñ¿¼δ ó »αÑñѽáσ óßÑσ ¿ß-
- σ«ñ¡δσ Σá⌐½«ó, ¬«Γ«αδÑ ß«ßΓáó½∩εΓ »α«úαá¼¼π. ïεíá∩ Σπ¡¬µ¿∩ ¼«ªÑΓ
- óδºóáΓ∞ Σπ¡¬µ¿ε extern.
- Äí"∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐, ó ¬«Γ«αδσ «»πΘÑ¡ ߻ѵ¿Σ¿¬áΓ«α ¬½áßßá
- »á¼∩Γ¿, ßτ¿ΓáεΓß∩ »« π¼«½τá¡¿ε extern.
-
-
- 4.7. ê¡¿µ¿á½¿ºáµ¿∩
-
- é «í"∩ó½Ñ¡¿¿ »ÑαѼѡ¡«⌐ ¼«ªÑΓ íδΓ∞ »α¿ßó«Ñ¡« ¡áτá½∞¡«Ñ º¡á-
- τÑ¡¿Ñ »«ßαÑñßΓó«¼ ¿¡¿µ¿á½¿ºáΓ«αá. éѽ¿τ¿¡á ¿½¿ óѽ¿τ¿¡δ ¿¡¿µ¿á½¿-
- ºáΓ«αá »α¿ßóá¿óáεΓß∩ »ÑαѼѡ¡«⌐.
-
- æ¿¡Γá¬ß¿τÑ߬¿, ºá»¿ß¿ ¿¡¿µ¿á½¿ºáΓ«αá »αÑñΦÑßΓóπÑΓ º¡á¬ αáó-
- ¡« (=)
-
- =<initializer>
-
- î«úπΓ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡δ »ÑαѼѡ¡δÑ ½εí«ú« Γ¿»á. öπ¡¬µ¿¿
- ¡Ñ ¿¡¿µ¿á½¿º¿απεΓß∩. Äí"∩ó½Ñ¡¿∩, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ ß»Ñµ¿Σ¿¬áΓ«α
- ¬½áßßá »á¼∩Γ¿ extern ¡Ñ ¼«úπΓ ß«ñÑαªáΓ∞ ¿¡¿µ¿á½¿ºáΓ«αá.
- ÅÑαѼѡ¡δÑ, «í"∩ó½Ñ¡¡δÑ ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ, ¼«úπΓ íδΓ∞ ¿¡¿-
- µ¿á½¿º¿α«óá¡δ. àß½¿ «¡¿ ∩ó¡« ¡Ñ ¿¡¿µ¿á½¿º¿α«óá¡δ, Γ« «¡¿ πßΓá¡áó-
- ½¿óáεΓß∩ ó ¡π½∞ ó« óαѼ∩ ¬«¼»¿½∩µ¿¿ ¿½¿ ½¿¡¬«óá¡¿∩. ïεíá∩ »ÑαÑ-
- ¼Ñ¡¡á∩, «í"∩ó½Ñ¡¡á∩ ß« ߻ѵ¿Σ¿¬áΓ«α«¼ ¬½áßßá »á¼∩Γ¿ static, ¼«ªÑΓ
- íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡á ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼. ê¡¿µ¿á½¿ºáµ¿∩ »ÑαÑ-
- ¼Ñ¡¡δσ ¬½áßßá static óδ»«½¡∩ÑΓß∩ «ñ¿¡ αẠó« óαѼ∩ ¬«¼»¿½∩µ¿¿.
- àß½¿ «ΓßπΓßΓóπÑΓ ∩ó¡á∩ ¿¡¿µ¿á½¿ºáµ¿∩, Γ« »ÑαѼѡ¡δÑ ¬½áßßá »á¼∩Γ¿
- static áóΓ«¼áΓ¿τÑ߬¿ πßΓá¡áó½¿óáεΓß∩ ó ¡π½∞.
- ê¡¿µ¿á½¿ºáµ¿∩ »ÑαѼѡ¡δσ auto ¿ register óδ»«½¡∩ÑΓß∩ ¬áªñδ⌐
- αẠ»α¿ óσ«ñÑ ó í½«¬, ó ¬«Γ«α«¼ «¡¿ «í"∩ó½Ñ¡δ. àß½¿ ¿¡¿µ¿á½¿ºáΓ«α
- «»πΘÑ¡ ó «í"∩ó½Ñ¡¿¿ »ÑαѼѡ¡«⌐ ¬½áßßá »á¼∩Γ¿ auto ¿½¿ register,
- Γ« ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ ¡Ñ «»αÑñѽѡ«. ê¡¿µ¿á½¿ºáµ¿∩
- ß«ßΓáó¡δσ Γ¿»«ó auto (¼áßß¿ó, ßΓαπ¬Γπαá, ß«ó¼ÑΘÑ¡¿Ñ) ºá»αÑΘÑ¡á.
- ïεí«Ñ ß«ßΓáó¡«Ñ «í"∩ó½Ñ¡¿Ñ ¬½áßßá »á¼∩Γ¿ static ¼«ªÑΓ íδΓ∞ ¿¡¿µ¿-
- ὿º¿α«óá¡« ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ.
- ìáτá½∞¡δ¼¿ º¡áτÑ¡¿∩¼¿ ñ½∩ ó¡ÑΦ¡¿σ «í"∩ó½Ñ¡¿⌐ »ÑαѼѡ¡«⌐ ¿
- ñ½∩ óßÑσ »ÑαѼѡ¡δσ static ¬á¬ ó¡ÑΦ¡¿σ Γᬠ¿ ó¡πΓαÑ¡¡¿σ ñ«½ª¡«
- íδΓ∞ ¬«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ. ÇóΓ«¼áΓ¿τÑ߬¿Ñ ¿ αÑú¿ßΓα«óδÑ »ÑαѼѡ-
- ¡δÑ ¼«úπΓ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡δ ¬«¡ßΓá¡Γ¡δ¼¿ ¿½¿ »ÑαѼѡ¡δ¼¿ óÑ-
- ½¿τ¿¡á¼¿.
-
-
- 4.7.1. üẫóδÑ Γ¿»δ ¿ Γ¿»δ π¬áºáΓѽÑ⌐
-
- æ¿¡Γá¬ß¿ß:
-
- =<expression>
-
- éѽ¿τ¿¡á óδαáªÑ¡¿∩ »α¿ßóá¿óáÑΓß∩ »ÑαѼѡ¡«⌐. ä½∩ óδαáªÑ¡¿∩
-
- - 58 -
-
-
- ñ«»πßΓ¿¼δ »αáó¿½á »αÑ«íαẫóá¡¿∩.
- Åα¿¼Ñαδ:
-
- int x = 10; /* Example 1 */
-
- register int *px = 0; /* Example 2 */
-
- int c = (3 * 1024); /* Example 3 */
-
- int *b = &x; /* Example 4 */
-
- é »Ñαó«¼ »α¿¼ÑαÑ x ¿¡¿µ¿á½¿º¿απÑΓß∩ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼
- 10. é« óΓ«α«¼ »α¿¼ÑαÑ, π¬áºáΓѽ∞ px ¿¡¿µ¿á½¿º¿α«óá¡ ¡π½Ñ¼, ó αÑ-
- ºπ½∞ΓáΓÑ τÑú« »«½πτ¿½ß∩ "null" π¬áºáΓѽ∞. é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ ¿ß-
- »«½∞ºπÑΓß∩ ¬«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ c. é τÑΓóÑαΓ«¼
- »α¿¼ÑαÑ ¿¡¿µ¿á½¿º¿απÑΓß∩ π¬áºáΓѽ∞ b áñαÑß«¼ ñαπú«⌐ »ÑαѼѡ¡«⌐ x.
-
-
- 4.7.2. æ«ßΓáó¡δÑ Γ¿»δ
-
- æ¿¡Γá¬ß¿ß:
-
- ={<initializer-list>}
-
- 滿߫¬ ¿¡¿µ¿á½¿ºáΓ«α«ó <initializer-list> - φΓ« »«ß½Ññ«óá-
- Γѽ∞¡«ßΓ∞ ¿¡¿µ¿á½¿ºáΓ«α«ó, αáºñѽѡ¡δσ ºá»∩Γ묨. èáªñδ⌐ ¿¡¿µ¿á½¿-
- ºáΓ«α ó »«ß½Ññ«óáΓѽ∞¡«ßΓ¿- φΓ« ½¿í« ¬«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ, ½¿í«
- ß»¿ß«¬ ¿¡¿µ¿á½¿ºáΓ«α«ó. Å«φΓ«¼π, ºá¬½ετÑ¡¡δ⌐ ó Σ¿úπα¡δÑ ß¬«í¬¿
- ß»¿ß«¬, ¼«ªÑΓ »«∩ó¿Γ∞ß∩ ó¡πΓα¿ ñαπú«ú« ß»¿ß¬á ¿¡¿µ¿á½¿ºáµ¿¿. ¥Γá
- ¬«¡ßΓαπ¬µ¿∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ φ½Ñ¼Ñ¡Γ«ó ß«ßΓáó¡δσ
- ¬«¡ßΓαπ¬µ¿⌐.
- ä½∩ ¬áªñ«ú« ß»¿ß¬á ¿¡¿µ¿á½¿ºáµ¿¿ º¡áτÑ¡¿∩ ¬«¡ßΓá¡Γ¡δσ óδαá-
- ªÑ¡¿⌐ »α¿ßóá¿óáεΓß∩ ó »«α∩ñ¬Ñ ß½Ññ«óá¡¿∩ φ½Ñ¼Ñ¡Γ«ó ß«ßΓáó¡«⌐ »Ñ-
- αѼѡ¡«⌐. è«úñá ¿¡¿µ¿á½¿º¿απÑΓß∩ ß«ó¼ÑΘÑ¡¿Ñ, Γ« ß»¿ß«¬ ¿¡¿µ¿á½¿-
- ºáΓ«α«ó »αÑñßΓáó½∩ÑΓ ß«í«⌐ Ññ¿¡ßΓóÑ¡¡«Ñ ¬«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ.
- éѽ¿τ¿¡á ¬«¡ßΓá¡Γ¡«ú« óδαáªÑ¡¿∩ »α¿ßóá¿óáÑΓß∩ »Ñαó«¼π φ½Ñ¼Ñ¡Γπ
- ß«ó¼ÑΘÑ¡¿∩.
- àß½¿ ó ß»¿ß¬Ñ ¿¡¿µ¿á½¿ºáµ¿¿ ¼Ñ¡∞ΦÑ óѽ¿τ¿¡, τѼ ¿σ ¿¼ÑÑΓß∩
- ó ß«ßΓáó¡«¼ Γ¿»Ñ, Γ« «ßΓáóΦ¿Ñß∩ »á¼∩Γ¿ ¿¡¿µ¿á½¿º¿απεΓß∩ ¡π½Ñ¼.
- àß½¿ τ¿ß½« ¿¡¿µ¿á½¿º¿απεΘ¿σ óѽ¿τ¿¡ í«½∞ΦÑ τѼ ΓαÑíπÑΓß∩, Γ« óδ-
- ñáÑΓß∩ «Φ¿í¬á.
- ¥Γ¿ »αáó¿½á »α¿¼Ñ¡∩εΓß∩ ¬ ¬áªñ«¼π 󽫪ѡ¡«¼π ß»¿ß¬π ¿¡¿µ¿á-
- ½¿ºáΓ«α«ó, Γ«τ¡« ΓᬠªÑ ¬á¬ ¿ ¬« óßÑ⌐ ¬«¡ßΓαπ¬µ¿¿ ó µÑ½«¼.
-
- Åα¿¼Ñα:
-
- int p[4] [3] = {
- { 1, 1, 1 },
- { 2, 2, 2 },
- { 3, 3, 3,},
- { 4, 4, 4,},
- };
-
- é »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ ¼áßß¿ó p αẼÑα¡«ßΓ¿ 4 ßΓ᫬¿ ¡á 3
- ßΓ«½íµá. ¥½Ñ¼Ñ¡Γδ »Ñαó«⌐ ßΓ᫬¿ ¿¡¿µ¿á½¿º¿απεΓß∩ 1, óΓ«α«⌐ ßΓ᫬¿
-
- - 59 -
-
-
- 2 ¿ Γ. ñ. çá¼ÑΓ¿¼, τΓ« ß»¿ß¬¿ ¿¡¿µ¿á½¿ºáΓ«α«ó ΓαÑΓ∞Ñ⌐ ¿ τÑΓóÑαΓ«⌐
- ßΓ᫬ ºá¬á¡τ¿óáεΓß∩ ºá»∩Γ«⌐. ū߽Ññ¡¿⌐ ß»¿ß«¬ ¿¡¿µ¿á½¿ºáΓ«α«ó {
- 4, 4, 4,} Γá¬ªÑ ºá¬á¡τ¿óáÑΓß∩ ºá»∩Γ«⌐.
- ¥Γ¿ ñ«»«½¡¿Γѽ∞¡δÑ ºá»∩ΓδÑ ñ«»π߬áεΓß∩, ¡« ¡Ñ ΓαÑíπεΓß∩.
- ÆαÑíπεΓß∩ Γ«½∞¬« ΓÑ ºá»∩ΓδÑ, ¬«Γ«αδÑ αáºñѽ∩εΓ ¬«¡ßΓá¡Γ¡δÑ óδαá-
- ªÑ¡¿∩ ¿ ß»¿ß¬¿ ¿¡¿µ¿á½¿ºáµ¿¿. àß½¿ ß»¿ß«¬ ¿¡¿µ¿á½¿ºáΓ«α«ó ¡Ñ
- ßΓαπ¬Γπα¿α«óá¡ »«ñ ß«ßΓáó¡«⌐ «í"ѬΓ, Γ« Ñú« óѽ¿τ¿¡δ »α¿ßóá¿óáεΓ-
- ß∩ ó Γ«¼ »«α∩ñ¬Ñ, ó ¬«Γ«α«¼ »«ñßΓ䬫óá¡δ φ½Ñ¼Ñ¡Γδ «í"ѬΓá. Å«φΓ«-
- ¼π óδΦÑ»α¿óÑñÑ¡¡á∩ ¿¡¿µ¿á½¿ºáµ¿∩ φ¬ó¿óá½Ñ¡Γ¡á ß½ÑñπεΘÑ⌐:
-
- int p[4] [3] = {
- 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4
- };
-
- ö¿úπα¡δÑ ß¬«í¬¿ ¼«úπΓ Γá¬ªÑ »«∩ó½∩Γ∞ß∩ ó«¬απú ¿¡ñ¿ó¿ñπá½∞-
- ¡δσ ¿¡¿µ¿á½¿ºáΓ«α«ó ó ß»¿ß¬Ñ.
- è«úñá ¿¡¿µ¿á½¿º¿απεΓß∩ ß«ßΓáó¡δÑ »ÑαѼѡ¡δÑ, Γ« ¡πª¡« »«ºá-
- í«Γ¿Γ∞ß∩ « Γ«¼, τΓ«íδ »αáó¿½∞¡« ¿ß»«½∞º«óáΓ∞ Σ¿úπα¡δÑ ß¬«í¬¿ ¿
- ß»¿ß¬¿ ¿¡¿µ¿á½¿ºáΓ«α«ó. é ß½ÑñπεΘѼ »α¿¼ÑαÑ ¿½½εßΓα¿απÑΓß∩ í«½ÑÑ
- ñÑΓá½∞¡« ¿¡ΓÑα»αÑΓᵿ∩ ¬«¼»¿½∩Γ«α«¼ Σ¿úπα¡δσ ߬«í«¬.
-
- typedef struct {
- int n1, n2, n3;
- } triplet;
-
- triplet nlist[2] [3] = {
- { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }, /* Line 1 */
- { { 10,11,12}, { 13,14,15}, { 15,16,17} } /* Line 2 */
- };
-
- é »α¿¼ÑαÑ nlist «í"∩ó½∩ÑΓß∩ ¬á¬ ¼áßß¿ó ßΓαπ¬Γπα, ß«ßΓ«∩Θ¿⌐
- ¿º ñóπσ ßΓ᫬ ¿ ΓαÑσ ßΓ«½íµ«ó. èáªñá∩ ßΓαπ¬Γπαá ß«ßΓ«¿Γ ¿º ΓαÑσ
- φ½Ñ¼Ñ¡Γ«ó. ÅÑαóá∩ ßΓα«¬á ¿¡¿µ¿á½¿ºáµ¿¿ ¡áº¡áτáÑΓ óѽ¿τ¿¡δ »Ñαó«⌐
- ßΓα«¬Ñ ¼áßß¿óá nlist ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- 1. ÅÑαóá∩ ½Ñóá∩ Σ¿úπα¡á∩ ߬«í¬á Line 1 ¿¡Σ«α¼¿απÑΓ ¬«¼»¿½∩-
- Γ«α « Γ«¼, τΓ« φΓ« ¡áτὫ ¿¡¿µ¿á½¿ºáµ¿¿ »Ñαó«⌐ ßΓ᫬¿ ¼áßß¿óá
- nlist(nlist[0]).
- 2. éΓ«αá∩ ½Ñóá∩ Σ¿úπα¡á∩ ߬«í¬á «º¡áτáÑΓ Γ«, τΓ« ¡áτ¿¡áÑΓß∩
- ¿¡¿µ¿á½¿ºáµ¿∩ »Ñαó«ú« φ½Ñ¼Ñ¡Γá »Ñαó«⌐ ßΓ᫬¿ ¼áßß¿óá ( nlist[0]
- [0] ).
- 3. ÅÑαóá∩ »αáóá∩ Σ¿úπα¡á∩ ߬«í¬á ß««íΘáÑΓ «í «¬«¡τá¡¿¿ ¿¡¿-
- µ¿á½¿ºáµ¿¿ »Ñαó«ú« φ½Ñ¼Ñ¡Γá- ßΓαπ¬Γπαδ nlist[0] [0]. æ½ÑñπεΘá∩
- ½Ñóá∩ Σ¿úπα¡á∩ ߬«í¬á ß««íΘáÑΓ « ¡áτá½Ñ ¿¡¿µ¿á½¿ºáµ¿¿ óΓ«α«ú«
- φ½Ñ¼Ñ¡Γá »Ñαó«⌐ ßΓ᫬¿ nlist[0] [1].
- 4. Åα«µÑßß »α«ñ«½ªáÑΓß∩ ñ« ¬«¡µá Line 1 ¿ ºá¬á¡τ¿óáÑΓß∩ »«
- »«ß½Ññ¡Ñ⌐ »αáó«⌐ Σ¿úπα¡«⌐ ߬«í¬Ñ.
-
- ǡὫú¿τ¡«, Line 2 ¡áº¡áτáÑΓ óѽ¿τ¿¡δ óΓ«α«⌐ ßΓα«¬Ñ ¼áßß¿óá
- nlist.
- çá¼ÑΓ¿¼, τΓ« ó¡ÑΦ¡¿Ñ Σ¿úπα¡δÑ ß¬«í¬¿ ¿¡¿µ¿á½¿ºáΓ«α«ó Line 1
- ¿ Line 2 ΓαÑíπεΓß∩. æ½ÑñπεΘá∩ ¬«¡ßΓαπ¬µ¿∩, ó ¬«Γ«α«⌐ ó¡ÑΦ¡¿Ñ Σ¿-
- úπα¡δÑ ß¬«í¬¿ «»πΘÑ¡δ íπñÑΓ ¡ÑóÑα¡«⌐.
-
- /* THIS CAUSES AN ERROR */
-
- - 60 -
-
-
- triplet nlist[2] [3] = {
- { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, /* Line 1 */
- { 10,11,12}, { 13,14,15}, {16,17,18 } /* Line 2 */
- };
-
- é φΓ«¼ »α¿¼ÑαÑ »Ñαóá∩ ½Ñóá∩ Σ¿úπα¡á∩ ߬«í¬á ó Line 1 ßΓáα-
- ΓπÑΓ ¿¡¿µ¿á½¿ºáµ¿ε nlist[0], ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ ¼áßß¿ó«¼ ¿º ΓαÑσ
- ßΓαπ¬Γπα. éѽ¿τ¿¡δ 1, 2, 3 ¡áº¡áτáεΓß∩ ΓαѼ φ½Ñ¼Ñ¡Γá¼ »Ñαó«⌐
- ßΓαπ¬Γπαδ. è«úñá óßΓαÑΓ¿Γß∩ »αáóá∩ Σ¿úπα¡á∩ ߬«í¬á (»«ß½Ñ óѽ¿τ¿-
- ¡δ 3), ¿¡¿µ¿á½¿ºáµ¿∩ nlist[0] ºá¬«¡τ¿Γß∩ ¿ ñóÑ «ßΓáóΦ¿Ñß∩ ßΓαπ¬-
- Γπαδ áóΓ«¼áΓ¿τÑ߬¿ ¿¡¿µ¿á½¿º¿απεΓß∩ ¡π½Ñ¼. ǡὫú¿τ¡«, { 4, 5, 6
- } ¿¡¿µ¿á½¿º¿απÑΓ »Ñαóπε ßΓαπ¬Γπαπ ó« óΓ«α«⌐ ßΓα«¬Ñ nlist, á «ß-
- ΓáóΦ¿Ñß∩ ñóÑ ßΓαπ¬Γπαδ nlist[1] πßΓá¡«ó∩Γß∩ ó ¡π½∞. è«úñá ¬«¼»¿-
- ½∩Γ«α óßΓαÑΓ¿Γ ß½ÑñπεΘ¿⌐ ß»¿ß«¬ ¿¡¿µ¿á½¿ºáµ¿¿ { 7, 8, 9 }, Γ« φΓ«
- »α¿óÑñÑΓ ¬ »«»δ⪥ ¿¡¿µ¿á½¿º¿α«óáΓ∞ nlist[2]. Æá¬ ¬á¬ nlist ß«-
- ñÑαª¿Γ Γ«½∞¬« ñóÑ ßΓ᫬¿, Γ« íπñÑΓ óδñá¡« ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.
-
- Åα¿¼Ñαδ:
-
- /******************* Example 1 *********************/
-
- struct list {
- int i, j, k;
- float n[2] [3];
- } x = {
- 1,
- 2,
- 3,
- {4.0, 4.0, 4.0}
- };
-
- /******************* Example 2 *********************/
-
- union {
- char x[2] [3];
- int i, j, k;
- } y = {
- {'1'},
- {'4'}
- };
-
- é »Ñαó«¼ »α¿¼ÑαÑ Γα¿ φ½Ñ¼Ñ¡Γá int ßΓαπ¬Γπα¡«⌐ »ÑαѼѡ¡«⌐ x
- ¿¡¿µ¿á½¿º¿α«óá¡δ 1, 2, ¿ 3 ß««ΓóÑΓßΓóÑ¡¡«. Æα¿ φ½Ñ¼Ñ¡Γá »Ñαó«⌐
- ßΓ᫬¿ ¼áßß¿óá m ¿¡¿µ¿á½¿º¿α«óá¡δ ¬á¬ 4.0. ¥½Ñ¼Ñ¡Γδ óΓ«α«⌐ ßΓ᫬¿
- ¿¡¿µ¿á½¿º¿α«óá¡δ ¡π½Ñ¼ »« π¼«½τá¡¿ε.
- é« óΓ«α«¼ »α¿¼ÑαÑ ¿¡¿µ¿á½¿º¿απÑΓß∩ »ÑαѼѡ¡á∩ y Γ¿»á ß«ó¼Ñ-
- ΘÑ¡¿∩. ÅÑαóδ¼ φ½Ñ¼Ñ¡Γ«¼ ß«ó¼ÑΘÑ¡¿∩ ∩ó½∩ÑΓß∩ ¼áßß¿ó, ñ½∩ ¬«Γ«α«ú«
- ΓαÑíπÑΓß∩ ß«ßΓáó¡«⌐ ¿¡¿µ¿á½¿ºáΓ«α. 滿߫¬ ¿¡¿µ¿á½¿ºáµ¿¿ {'1'} ºá-
- ñáÑΓ óѽ¿τ¿¡δ ñ½∩ »Ñαó«⌐ ßΓ᫬¿ ¼áßß¿óá. ū߬«½∞¬π ó ß»¿ß¬Ñ óßÑú«
- «ñ¡á óѽ¿τ¿¡á, Γ« Γ«½∞¬« »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ßΓ᫬¿ ¼áßß¿óá ¿¡¿µ¿á½¿-
- º¿απÑΓß∩ ß¿¼ó«½«¼ 1 , á «ßΓáóΦ¿Ñß∩ ñóá φ½Ñ¼Ñ¡Γá ó ßΓα«¬Ñ ¿¡¿µ¿á-
- ½¿º¿απεΓß∩ ¡π½Ñ¼ (ß¿¼ó«½«¼ \0) »« π¼«½τá¡¿ε. ǡὫú¿τ¡«, »Ñαóδ⌐
- φ½Ñ¼Ñ¡Γ óΓ«α«⌐ ßΓ᫬¿ ¼áßß¿óá x ¿¡¿µ¿á½¿º¿απÑΓß∩ ß¿¼ó«½«¼ 4, á
- «ßΓáóΦ¿Ñß∩ ñóá φ½Ñ¼Ñ¡Γá ó ßΓα«¬Ñ ¿¡¿µ¿á½¿º¿απεΓß∩ ¡π½Ñ¼.
-
-
- - 61 -
-
-
-
- 4.7.3. æΓ᫬«óδÑ ¿¡¿µ¿á½¿ºáΓ«αδ
-
- îáßß¿ó ¼«ªÑΓ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡ ßΓα«τ¡δ¼ ½¿ΓÑαὫ¼.
- ìá»α¿¼Ñα,
-
- char code[ ] = "abc";
-
- ¿¡¿µ¿á½¿º¿απÑΓ code ¬á¬ ¼áßß¿ó ß¿¼ó«½«ó ¿º τÑΓδαÑσ φ½Ñ¼Ñ¡-
- Γ«ó. ùÑΓóÑαΓδ¼ φ½Ñ¼Ñ¡Γ«¼ ∩ó½∩ÑΓß∩ ß¿¼ó«½ \0, ¬«Γ«αδ⌐ ºáóÑαΦáÑΓ óßÑ
- ßΓ᫬«óδÑ ½¿ΓÑαá½δ.
- àß½¿ ߻ѵ¿Σ¿µ¿απÑΓß∩ αẼÑα ¼áßß¿óá, á ßΓ᫬á í«½∞ΦÑ τѼ
- ߻ѵ¿Σ¿µ¿α«óá¡¡δ⌐ αẼÑα, Γ« ½¿Φ¡¿Ñ ß¿¼ó«½δ «ΓíαáßδóáεΓß∩. æ½Ññπ-
- εΘÑÑ «í"∩ó½Ñ¡¿Ñ ¿¡¿µ¿á½¿º¿απÑΓ »ÑαѼѡ¡πε code, ¬á¬ ΓαÑσφ½Ñ¼Ñ¡Γ-
- ¡δ⌐ ¼áßß¿ó ß¿¼ó«½«ó:
-
- char code[3] = "abcd"
-
- é »α¿¼ÑαÑ Γ«½∞¬« Γα¿ »ÑαóδÑ ß¿¼ó«½á ¿¡¿µ¿á½¿ºáΓ«αá ¡áº¡áτá-
- εΓß∩ ñ½∩ ¼áßß¿óá code. æ¿¼ó«½ d ¿ ß¿ó«½ ¡π½∞ «ΓíαáßδóáεΓß∩.
- àß½¿ ßΓα«¬á ¬«α«τÑ, τѼ ߻ѵ¿Σ¿µ¿α«óá¡¡δ⌐ αẼÑα ¼áßß¿óá,
- Γ« «ßΓáóΦ¿Ñß∩ φ½Ñ¼Ñ¡Γδ ¼áßß¿óá ¿¡¿µ¿á½¿º¿απεΓß∩ ¡π½Ñ¼ (ß¿¼ó«½«¼
- \0).
-
-
- 4.8. Äí"∩ó½Ñ¡¿∩ Γ¿»«ó
-
- Äí"∩ó½Ñ¡¿Ñ Γ¿»á «»αÑñѽ∩ÑΓ ¿¼∩ ¿ φ½Ñ¼Ñ¡Γδ ßΓαπ¬Γπα¡«ú« ¿½¿
- ß«ó¼ÑΘáεΘÑú« Γ¿»«ó ¿½¿ ¿¼∩ ¿ »ÑαÑτ¿ß½¿¼«Ñ ¼¡«ªÑßΓó« »ÑαÑτ¿ß½¿¼«ú«
- Γ¿»á.
- ê¼∩ Γ¿»á ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡« ó «í"∩ó½Ñ¡¿∩σ »ÑαѼѡ¡δσ ¿
- Σπ¡¬µ¿⌐ ó ¬áτÑßΓóÑ ßß佬¿ ¡á φΓ«Γ Γ¿». ¥Γ« »«½Ñº¡«, ¬«úñá ¼¡«ú¿Ñ
- »ÑαѼѡ¡δÑ ¿½¿ Σπ¡¬µ¿¿ ¿¼ÑεΓ «ñ¿¡ ¿ ëà ªÑ Γ¿».
- Äí"∩ó½Ñ¡¿Ñ typedef «»αÑñѽ∩ÑΓ ß»Ñµ¿Σ¿¬áΓ«α Γ¿»á ñ½∩ Γ¿»á.
- ¥Γ« «í"∩ó½Ñ¡¿Ñ ¿ß»«½∞ºπÑΓß∩ ñ½∩ Γ«ú«, τΓ«íδ ß«ºñáóáΓ∞ í«½ÑÑ ¬«-
- α«Γ¬¿Ñ ¿½¿ í«½ÑÑ «ß¼δ߽ѡ¡δÑ ¿¼Ñ¡á Γ¿»«ó πªÑ «»αÑñѽѡ¡δσ ó æ¿
- ¿½¿ «í"∩ó½Ñ¡¡δσ »«½∞º«óáΓѽѼ.
-
-
- 4.8.1. Æ¿»δ ßΓαπ¬Γπα, ß«ó¼ÑΘÑ¡¿⌐ ¿ »ÑαÑτ¿ß½Ñ¡¿⌐
-
- Äí"∩ó½Ñ¡¿∩ Γ¿»«ó ßΓαπ¬Γπα, ß«ó¼ÑΘÑ¡¿⌐ ¿ »ÑαÑτ¿ß½Ñ¡¿⌐ ¿¼ÑεΓ
- Γπ ªÑ ßá¼πε «íΘπε ß¿¡Γá¬ß¿τÑ߬πε Σ«α¼π, ¬á¬ ¿ «í"∩ó½Ñ¡¿∩ »ÑαѼѡ-
- ¡δσ φΓ¿σ Γ¿»«ó. é «í"∩ó½Ñ¡¿¿ Γ¿»á ¿ñÑ¡Γ¿Σ¿¬áΓ«α »ÑαѼѡ¡«⌐ «»π-
- ΘÑ¡, Γᬠ¬á¬ ¡ÑΓ »ÑαѼѡ¡«⌐ ¬«Γ«αá∩ «í"∩ó½∩ÑΓß∩. ê¼Ñ¡Ñ¼ ßΓαπ¬Γπ-
- αδ, ß«ó¼ÑΘÑ¡¿∩ ¿½¿ »ÑαÑτ¿ß½Ñ¡¿∩ ∩ó½∩ÑΓß∩ ΓÑú.
- é «í"∩ó½Ñ¡¿¿ Γ¿»á ¼«ªÑΓ »«∩ó¿Γ∞ß∩ ß»¿ß«¬ «í"∩ó½Ñ¡¿⌐ φ½Ñ¼Ñ¡-
- Γ«ó- <member-declaration-list> ¿½¿ ß»¿ß«¬ »ÑαÑτ¿ß½Ñ¡¿∩-
- <enum-list>, «»αÑñѽ∩εΘ¿Ñ Γ¿».
- 櫬αáΘÑ¡¡á∩ Σ«α¼á «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐, ó ¬«Γ«α«¼ tag ßßδ-
- ½áÑΓß∩ ¡á Γ¿», «»αÑñѽѡ¡δ⌐ úñÑ-Γ« ÑΘÑ, »α¿ «í"∩ó½Ñ¡¿¿ Γ¿»á ¡Ñ
- ¿ß»«½∞ºπÑΓß∩.
- Åα¿¼Ñαδ:
-
- /******************** Example 1 ********************/
-
- - 62 -
-
-
-
- enum status {
- loss = -1,
- bye,
- tie = 0,
- win,
- };
-
- /********************* Example 2 *******************/
-
- struct student {
- char name[20];
- int id, claas;
- };
-
- é »Ñαó«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ Γ¿» »ÑαÑτ¿ß½Ñ¡¿∩, »«¿¼Ñ¡«óá¡-
- ¡δ⌐ status. ê¼∩ Γ¿»á ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡« ó «í'∩ó½Ñ¡¿∩σ »Ñα-
- ¼Ñ¡¡δσ Γ¿»á »ÑαÑτ¿ß½Ñ¡¿∩. êñÑ¡Γ¿Σ¿¬áΓ«α loss ∩ó¡« πßΓá¡áó½¿óáÑΓß∩
- ó -1. êñÑ¡Γ¿Σ¿¬áΓ«αδ bye ¿ tie áßß«µ¿¿απεΓß∩ ß« º¡áτÑ¡¿Ñ¼ 0, á
- win »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ 1. é« óΓ«α«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ ßΓαπ¬Γπα-
- ¡δ⌐ Γ¿», »«¿¼Ñ¡«óá¡¡δ⌐ student. ÆÑ»Ñα∞ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ΓᬫÑ
- «í"∩ó½Ñ¡¿Ñ, ¬á¬ struct student employee, τΓ«íδ «í"∩ó¿Γ∞ ßΓαπ¬Γπα-
- ¡πε »ÑαѼѡ¡πε employee Γ¿»á student.
-
-
-
-
- 4.8.2. Äí"∩ó½Ñ¡¿∩ typedef
-
- æ¿¡Γá¬ß¿ß:
-
- typedef <type-spesifier><declarator>[,<declarator>...];
-
- Äí"∩ó½Ñ¡¿∩ typedef ∩ó½∩εΓß∩ á¡á½«ú«¼ «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡«⌐,
- ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« ¬½ετÑó«Ñ ß½«ó« typedef ºá¼Ñ¡∩ÑΓ ß»Ñµ¿Σ¿-
- ¬áΓ«α ¬½áßßá »á¼∩Γ¿.
- Äí"∩ó½Ñ¡¿Ñ ¿¡ΓÑα»αÑΓ¿απÑΓß∩ ΓѼ ªÑ ßá¼δ¼ »πΓѼ, ¬á¬ «í"∩ó-
- ½Ñ¡¿∩ »ÑαѼѡ¡«⌐ ¿½¿ Σπ¡¬µ¿¿, ¡« <declarator> ó¼ÑßΓ« Γ«ú«, τΓ«íδ
- ßΓáΓ∞ »ÑαѼѡ¡«⌐ Γ¿»á, ߻ѵ¿Σ¿µ¿α«óá¡¡«ú« «í"∩ó½Ñ¡¿Ñ¼, ßΓá¡«ó¿Γß∩
- ß¿¡«¡¿¼«¼ ¿¼Ñ¡¿ Γ¿»á. Äí"∩ó½Ñ¡¿Ñ typedef ¡Ñ ß«ºñáÑΓ Γ¿»«ó. Ä¡«
- ß«ºñáÑΓ ß¿¡«¡¿¼δ ñ½∩ ßπΘÑßΓóπεΘ¿σ ¿¼Ñ¡ Γ¿»«ó, ¬«Γ«αδÑ í뫨 ߻ѵ¿-
- Σ¿µ¿α«óá¡δ ñαπú¿¼ ß»«ß«í«¼. ïεí«⌐ Γ¿» ¼«ªÑΓ íδΓ∞ «í"∩ó½Ñ¡ ß
- typedef, ó¬½ετá∩ Γ¿»δ π¬áºáΓѽ∩, Σπ¡¬µ¿¿ ¿ ¼áßß¿óá. ê¼∩ ß ¬½ετÑ-
- óδ¼ ß½«ó«¼ typedef ñ½∩ Γ¿»«ó π¬áºáΓѽ∩, ßΓαπ¬Γπαδ ¿½¿ ß«ó¼ÑΘÑ¡¿∩
- ¼«ªÑΓ íδΓ∞ «í"∩ó½Ñ¡« »αѪñÑ τѼ φΓ¿ Γ¿»δ íπñπΓ «»αÑñѽѡδ, ¡« ó
- »αÑñѽáσ ó¿ñ¿¼«ßΓ¿ «í"∩ó½Ñ¡¿∩.
-
- Åα¿¼Ñαδ:
-
- /******************** Example 1 ********************/
-
- typedef int WHOLE;
-
-
-
- - 63 -
-
- /******************** Example 2 ********************/
-
- typedef struct club {
- char name[30];
- int sise, year;
- } GROUP;
-
- /******************** Example 3 ********************/
-
- typedef GROUP *PG;
-
- /******************** Example 4 ********************/
-
- typedef void DRAWE(int, int);
-
- é »Ñαó«¼ »α¿¼ÑαÑ «í"∩ó½∩ÑΓß∩ WHOLE ¬á¬ ß¿¡«¡¿¼ ñ½∩ int .
- é« óΓ«α«¼ »α¿¼ÑαÑ «í" ∩ó½∩ÑΓß∩ GROUP ¬á¬ ßΓαπ¬Γπα¡δ⌐ Γ¿» ß
- ΓαѼ∩ φ½Ñ¼Ñ¡ΓἿ. Æá¬ ¬á¬ ߻ѵ¿Σ¿µ¿α«óá¡ Γá¬ªÑ ΓÑú clab, Γ« ¿¼∩
- GROUP ¿ ΓÑú club ¼«úπ íδΓ∞ ¿ß»«½∞º«óá¡δ ó «í"∩ó½Ñ¡¿∩σ.
- é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ ¿ß»«½∞ºπÑΓß∩ »αÑñ¿ñπΘÑÑ ¿¼∩ typedef ñ½∩
- «í"∩ó½Ñ¡¿∩ áñαÑß¡«ú« Γ¿»á. Æ¿» PG «í"∩ó½∩ÑΓß∩ ¬á¬ π¬áºáΓѽ∞ ¡á
- Γ¿» GROUP, ¬«Γ«αδ⌐ ó ßó«ε «τÑαÑñ∞ «»αÑñѽѡ ¬á¬ ßΓαπ¬Γπα¡δ⌐ Γ¿».
- é »«ß½Ññ¡Ñ¼ »α¿¼ÑαÑ »αÑñßΓáó½Ñ¡ Γ¿» DRAWE ñ½∩ Σπ¡¬µ¿¿ ¡Ñ
- ó«ºóαáΘáεΘÑ⌐ º¡áτÑ¡¿∩ ¿ ΓαÑíπεΘÑ⌐ ñóá áαúπ¼Ñ¡Γá Γ¿»á int. ¥Γ« «º-
- ¡áτáÑΓ, ¡á»α¿¼Ñα, τΓ« «í"∩ó½Ñ¡¿Ñ DRAWE box; φ¬ó¿óá½Ñ¡Γ¡« «í"∩ó½Ñ-
- ¡¿ε void box(int, int);
-
-
- 4.9. ê¼Ñ¡á Γ¿»«ó
-
- ê¼∩ Γ¿»á ߻ѵ¿Σ¿µ¿απÑΓ «ß«íÑ¡¡«ßΓ¿ Γ¿»á ñá¡¡δσ. ê¼Ñ¡á Γ¿»«ó
- ¿ß»«½∞ºπεΓß∩ ó ΓαÑσ ¬«¡ΓѬßΓáσ: ó ß»¿ß¬áσ Γ¿»«ó áαúπ¼Ñ¡Γ«ó, »α¿
- «í"∩ó½Ñ¡¿¿ Σπ¡¬µ¿⌐, ó óδτ¿ß½Ñ¡¿∩σ cast (»αÑ«íαẫóá¡¿∩σ Γ¿»«ó), ¿
- ó sizeof «»Ñαᵿ∩σ. 滿߬¿ Γ¿»«ó áαúπ¼Ñ¡Γ«ó αáßß¼áΓα¿ó὿ß∞ ó
- αáºñÑ½Ñ 4.5. "Äí"∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐". ÅαÑ«íαẫóá¡¿∩ cast ¿ «»Ñαᵿ∩
- sizeof «íßπªñáεΓß∩ ó αáºñѽáσ 5.7.2. ¿ 5.3.4. ß««ΓóÑΓßΓóÑ¡¡«.
- ê¼Ñ¡á¼¿ ñ½∩ «ß¡«ó¡δσ, »ÑαÑτ¿ß½∩εΘ¿σ, ßΓαπ¬Γπα¡δσ ¿ ß«ó¼ÑΘáεΘ¿σ
- Γ¿»«ó ∩ó½∩εΓß∩ ߻ѵ¿Σ¿¬áΓ«αδ Γ¿»á ñ½∩ ¬áªñ«ú« ¿º ¡¿σ. ê¼Ñ¡á ñ½∩
- Γ¿»«ó π¬áºáΓѽ∩, ¼áßß¿óá ¿ Σπ¡¬µ¿¿ ºáñáεΓß∩ ß½ÑñπεΘÑ⌐ ß¿¡Γá¬ß¿-
- τÑ߬«⌐ Σ«α¼«⌐:
-
- <type-specifier><abstract-declarator>
-
- ÇíßΓαá¬Γ¡δ⌐ ñѬ½áαáΓ«α <abstract-declarator>- φΓ« ñѬ½áαá-
- Γ«α íѺ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá, ß«ßΓ«∩Θ¿⌐ ¿º «ñ¡«ú« ¿½¿ í«½ÑÑ ¼«ñ¿Σ¿¬áΓ«-
- α«ó π¬áºáΓѽÑ⌐, ¼áßß¿ó«ó ¿ Σπ¡¬µ¿⌐. î«ñ¿Σ¿¬áΓ«α π¬áºáΓѽ∩ (*)
- óßÑúñá »«∩ó½∩ÑΓß∩ »ÑαÑñ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ó ñѬ½áαáΓ«αÑ, ó Γ« óαѼ∩
- ¬á¬ ¼«ñ¿Σ¿¬áΓ«α ¼áßß¿óá ([]) ¿½¿ Σπ¡¬µ¿¿ ( () ) »«∩ó½∩εΓß∩ »«ß½Ñ
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. Æá¬¿¼ «íαẫ¼, τΓ«íδ »αáó¿½∞¡« ¿¡ΓÑα»αÑΓ¿α«óáΓ∞
- áíßΓαá¬Γ¡δ⌐ ñѬ½áαáΓ«α, ¡πª¡« ¡áτ¿¡áΓ∞ ¿¡ΓÑα»αÑΓᵿε ß »«ñαáºπ¼Ñ-
- óáѼ«ú« ¿ñÑ¡Γ¿Σ¿¬áΓ«αá.
- ÇíßΓαá¬Γ¡δÑ ñѬ½¿αáΓ«αδ ¼«úπΓ íδΓ∞ ß«ßΓáó¡δ¼¿. æ¬«í¬¿ ó
- ß«ßΓáó¡«¼ áíßΓαá¬Γ¡«¼ ñѬ½áαáΓ«αÑ ß»Ñµ¿Σ¿µ¿απεΓ »«α∩ñ«¬ ¿¡ΓÑα»αÑ-
- Γᵿ¿, »«ñ«í¡« Γ«¼π ¬á¬ φΓ« ñѽáÑΓß∩ »α¿ ¿¡ΓÑα»αÑΓᵿ¿ ß«ßΓáó¡δσ
- ñѬ½áαáΓ«α«ó «í"∩ó½Ñ¡¿⌐. ÇíßΓαá¬Γ¡δ⌐ ñѬ½áαáΓ«α, ß«ßΓ«∩Θ¿⌐ ¿º
- »πßΓδσ ¬απú½δσ ߬«í«¬ () ¡Ñ ñ«»π߬áÑΓß∩, »«ß¬«½∞¬π φΓ« ñóπß¼δß-
- ½Ñ¡¡«. é φΓ«¼ ß½πτáÑ ¡Ñ󫺼«ª¡« «»αÑñѽ¿Γ∞ ¡áσ«ñ¿Γß∩ ½¿ »«ñαáºπ-
-
- - 64 -
-
-
- ¼ÑóáѼδ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ó¡πΓα¿ ß¬«í«¬, ¿ ó Γᬫ¼ ß½πτáÑ- φΓ« ¡Ñ¼«-
- ñ¿Σ¿µ¿α«óá¡¡δ⌐ Γ¿», ¿½¿ »ÑαÑñ ߬«í¬á¼¿, Γ«úñá- φΓ« Γ¿» Σπ¡¬µ¿¿.
- æ»Ñµ¿Σ¿¬áΓ«αδ Γ¿»á, πßΓá¡«ó½Ñ¡¡δÑ »«ßαÑñßΓó«¼ «í"∩ó½Ñ¡¿⌐ typedef,
- Γá¬ªÑ αáßß¼áΓα¿óáεΓß∩ ¬á¬ ¿¼Ñ¡á Γ¿»«ó.
- Åα¿¼Ñαδ:
-
- long * /* Example 1 */
-
- int (*) [5] /* Example 2 */
-
- int (*) (void) /* Example 3 */
-
- é »Ñαó«¼ »α¿¼ÑαÑ ºáñá¡« ¿¼∩ Γ¿»á ¬á¬ π¬áºáΓѽ∞ ¡á Γ¿» long.
- é« óΓ«α«¼ ¿ ΓαÑΓ∞Ѽ »α¿¼Ñαáσ »«¬áºá¡« ¬á¬¿¼ «íαẫ¼ ߬«í¬¿
- ¼«ñ¿Σ¿µ¿απεΓ ß«ßΓáó¡δÑ áíßΓαá¬Γ¡δÑ ñѬ½áαáΓ«αδ. é »α¿¼ÑαÑ 2 ºáñá-
- ¡« ¿¼∩ Γ¿»á ñ½∩ π¬áºáΓѽ∩ ¡á ¼áßß¿ó ¿φ »∩Γ¿ º½Ñ¼Ñ¡Γ«ó. é ΓαÑΓ∞Ѽ
- »α¿¼ÑαÑ ¿¼Ñ¡πÑΓß∩ π¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε, ¡Ñ ΓαÑíπεΘπε áαúπ¼Ñ¡Γ«ó ¿
- ó«ºóαáΘáεΘπε º¡áτÑ¡¿Ñ Γ¿»á int.
-