home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / c1.doc / c4.doc < prev    next >
Encoding:
Text File  |  1988-04-27  |  96.0 KB  |  2,003 lines

  1.                                       - 96 -
  2.                                          
  3.                
  4.                                    6. ÄÅàÉÇÆÄÉ¢
  5.                
  6.                 
  7.                 
  8.                6.1. éóÑñÑ¡¿Ñ
  9.                 
  10.                Ä»ÑαáΓ«αδ æ¿ π»αáó½∩εΓ »α«µÑßß«¼  óδ»«½¡Ñ¡¿∩  »α«úαá¼¼δ.  é
  11.          æ¿, ¬á¬ ¿ ó ñαπú¿σ ∩ºδ¬áσ »α«úαá¼¼¿α«óá¡¿∩, ¿¼ÑεΓß∩ πß½«ó¡δÑ «»Ñ-
  12.          αáΓ«αδ,  «»ÑαáΓ«αδ  µ¿¬½á,  óδí«αá,  »ÑαÑñáτ¿ π»αáó½Ñ¡¿∩ ¿ Γ.ñ. é
  13.          φΓ«¼ αáºñѽѠ«»¿ßδóáεΓß∩ «»ÑαáΓ«αδ æ¿ ó á½Σáó¿Γ¡«¼ »«α∩ñ¬Ñ.  ì¿ªÑ
  14.          »αÑñßΓáó½Ñ¡ ß»¿ß«¬ φΓ¿σ «»ÑαáΓ«α«ó:
  15.                break
  16.                <compound>
  17.                continue
  18.                do
  19.                <expression>
  20.                for
  21.                goto
  22.                if
  23.                <null>
  24.                return
  25.                switch
  26.                while
  27.                
  28.                Ä»ÑαáΓ«αδ  æ¿  ß«ßΓ«∩Γ ¿º ¬½ετÑóδσ ß½«ó, óδαáªÑ¡¿⌐ ¿ ñαπú¿σ
  29.          «»ÑαáΓ«α«ó. é «»ÑαáΓ«αáσ æ¿ ñ«»πßΓ¿¼δ ß½ÑñπεΘ¿Ñ ¬½ετÑóδÑ ß½«óá:
  30.                 
  31.                break
  32.                default
  33.                for
  34.                return
  35.                case
  36.                d«
  37.                goto
  38.                switch
  39.                continue
  40.                else
  41.                if
  42.                while
  43.                 
  44.                éδαáªÑ¡¿∩¼¿ ó «»ÑαáΓ«αáσ æ¿ ∩ó½∩εΓß∩ óδαáªÑ¡¿∩, «»¿ßá¡¡δÑ ó
  45.          αáºñѽѠ 5  "éδαáªÑ¡¿∩  ¿ »α¿ßóá¿óá¡¿∩". Ä»ÑαáΓ«αἿ, ñ«»πßΓ¿¼δ¼¿
  46.          ó¡πΓα¿ «»ÑαáΓ«α«ó æ¿, ¼«úπΓ íδΓ∞  ½εíδÑ  «»ÑαáΓ«αδ,  «»¿ßá¡¡δÑ  ó
  47.          φΓ«¼ αáºñѽÑ. Ä»ÑαáΓ«α, ¬«Γ«αδ⌐ ∩ó½∩ÑΓß∩ ¬«¼»«¡Ñ¡Γ«¼ ñαπú«ú« «»Ñ-
  48.          αáΓ«αá,  ¡áºδóáÑΓß∩  "Γѽ«¼"  ó¬½ετáεΘÑú«  «»ÑαáΓ«αá.ùáßΓ« «»Ñαá-
  49.          Γ«α-Γѽ« ∩ó½∩ÑΓß∩ ß«ßΓáó¡δ¼ «»ÑαáΓ«α«¼, ß«ßΓ«∩Θ¿¼ ¿º  «ñ¡«ú«  ¿½¿
  50.          í«½ÑÑ  «»ÑαáΓ«α«ó.  æ«ßΓáó¡«⌐  «»ÑαáΓ«α  «úαá¡¿τ¿óáÑΓß∩ Σ¿úπα¡δ¼¿
  51.          ß¬«í¬á¼¿. éßÑ ñαπú¿Ñ «»ÑαáΓ«αδ æ¿ ºá¬á¡τ¿óáεΓß∩ Γ«τ¬«⌐ ß  ºá»∩Γ«⌐
  52.          (;).
  53.                ïεí«⌐  ¿º  «»ÑαáΓ«α«ó æ¿ ¼«ªÑΓ íδΓ∞ ß»ÑαÑñ¿ »«¼ÑτÑ¡ ¼ÑΓ¬«⌐,
  54.          ß«ßΓ«∩ΘÑ⌐ ¿º ¿¼Ñ¡¿  ¿  ñó«ÑΓ«τ¿∩.  Ä»ÑαáΓ«α¡δÑ  ¼ÑΓ¬¿  «»«º¡áεΓß∩
  55.          Γ«½∞¬«  «»ÑαáΓ«α«¼  goto  ¿ »«φΓ«¼π αáßß¼áΓα¿óáεΓß∩ ó αáºñѽѠ6.8
  56.          "goto ¿ »«¼ÑτÑ¡¡δÑ «»ÑαáΓ«αδ".
  57.                Å«α∩ñ«¬ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ æ¿ ß«ó»áñáÑΓ ß »«α∩ñ¬«¼ αáß»«-
  58.          ½«ªÑ¡¿∩  «»ÑαáΓ«α«ó ó ΓѬßΓÑ »α«úαá¼¼δ, ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ ß½πτá-
  59.  
  60.                                       - 97 -
  61.            
  62.            
  63.          Ñó, ¬«úñá «»ÑαáΓ«α ∩ó¡« »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ ó ñαπúπε τáßΓ∞  »α«ú-
  64.          αá¼¼ .
  65.                 
  66.                6.2. Ä»ÑαáΓ«α break
  67.                                           
  68.                 
  69.                æ¿¡Γá¬ß¿ß:
  70.                breakk;
  71.                 
  72.                éδ»«½¡Ñ¡¿Ñ:
  73.                Ä»ÑαáΓ«α  break  »αÑαδóáÑΓ  óδ»«½¡Ñ¡¿Ñ  «»ÑαáΓ«α«ó do, for,
  74.          switch ¿½¿ while, ó ¬«Γ«αδσ «¡ »«∩ó½∩ÑΓß∩. ô»αáó½Ñ¡¿Ñ  »ÑαÑñáÑΓß∩
  75.          «»ÑαáΓ«απ,  ß½ÑñπεΘÑ¼π  ºá  »αÑαóá¡¡δ¼. Å«∩ó½Ñ¡¿Ñ «»ÑαáΓ«αá break
  76.          ó¡Ñ «»ÑαáΓ«α«ó do, for, switch, while »α¿ó«ñ¿Γ ¬ «Φ¿í¬Ñ.
  77.                é¡πΓα¿ ó½«ªÑ¡¡δσ «»ÑαáΓ«α«ó «»ÑαáΓ«α break ºáóÑαΦáÑΓ Γ«½∞¬«
  78.          «»ÑαáΓ«αδ do, for, switch ¿½¿ while.  ùΓ«íδ  »ÑαÑñáΓ∞  π»αáó½Ñ¡¿Ñ
  79.          ó¡Ñ ó½«ªÑ¡¡«⌐ ßΓαπ¬Γπαδ, ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ «»ÑαáΓ«αδ return
  80.          ¿ goto.
  81.                 
  82.                Åα¿¼Ñα
  83.                 for (i=0; i<LENGTH-1;i++) {
  84.                    for (j=0;j<WIDTH-1;j++) {
  85.                       if (lines [i][j] == '\0') {
  86.                          length [i[=j;
  87.                          break;
  88.                       }
  89.                   }
  90.                 }
  91.                 
  92.                é  óδΦÑ»α¿óÑñÑ¡¡«¼  »α¿¼ÑαÑ »«ßΓα«τ¡« «íαáíáΓδóáÑΓß∩ ¼áßß¿ó
  93.          lines »ÑαѼѡ¡«-ñ½¿¡¡δσ ßΓ᫬. Ä»ÑαáΓ«α break »αÑαδóáÑΓ  óδ»«½¡Ñ-
  94.          ¡¿Ñ ó¡πΓαÑ¡¡Ñú« «»ÑαáΓ«αá for »«ß½Ñ Γ«ú«, ¬á¬ ¡á⌐ñÑ¡ ß¿¼ó«½ ¬«¡µá
  95.          ßΓ᫬¿ (\0). Åα¿ φΓ«¼ φ½Ñ¼Ñ¡Γπ length [i] «ñ¡«¼Ñα¡«ú« ¼áßß¿óá »α¿ß-
  96.          óá¿óáÑΓß∩ ñ½¿¡á ó íá⌐Γáσ i-«⌐ ßΓ᫬¿. ô»αáó½Ñ¡¿Ñ »ÑαÑñáÑΓß∩ ó¡ÑΦ-
  97.          ¡Ñ¼π  «»ÑαáΓ«απ for. ÅÑαѼѡ¡á∩ i ¿¡¬αÑ¼Ñ¡Γ¿απÑΓß∩ ¿ »α«µÑßß »«ó-
  98.          Γ«α∩ÑΓß∩ ñ« ΓÑσ »«α, »«¬á º¡áτÑ¡¿Ñ i ¡Ñ ßΓá¡ÑΓ í«½∞ΦÑ  ¿½¿  αáó¡«
  99.          ¬«¡ßΓá¡ΓÑ LENGTH-1.
  100.          
  101.                
  102.                6.3. æ«ßΓáó¡«⌐ «»ÑαáΓ«α
  103.                 
  104.                æ¿¡Γá¬ß¿ß:
  105.                 
  106.                 {
  107.                 [<declaration>]
  108.                 .
  109.                 .
  110.                 .
  111.                 <statement>
  112.                
  113.                 [<statement>]
  114.                 .
  115.                 .
  116.                 .
  117.                 }
  118.  
  119.                                       - 98 -
  120.            
  121.            
  122.                 
  123.                éδ»«½¡Ñ¡¿Ñ:
  124.                äÑ⌐ßΓó¿∩ »α¿ óδ»«½¡Ñ¡¿¿ ß«ßΓáó¡«ú« «»ÑαáΓ«αá ß«ßΓ«∩Γ ó Γ«¼,
  125.          τΓ« óδ»«½¡Ñ¡¿Ñ Ñú« «»ÑαáΓ«α«ó «ßπΘÑßΓó½∩ÑΓß∩ ó »«α∩ñ¬Ñ ¿σ »«∩ó½Ñ-
  126.          ¡¿∩,  ºá ¿ß¬½ετÑ¡¿Ñ¼ ß½πτáÑó, ¬«úñá «τÑαÑñ¡«⌐ «»ÑαáΓ«α ∩ó¡« »ÑαÑ-
  127.          ñáÑΓ π»αáó½Ñ¡¿Ñ ó ñαπú«Ñ ¼ÑßΓ«.
  128.                æ¿¡Γá¬ß¿τÑ߬¿Ñ   »αáó¿½á   ¿   ßѼá¡Γ¿¬á    «í"∩ó½Ñ¡¿⌐    -
  129.          <declaration>,  ¬«Γ«αδÑ  ¼«úπΓ  »«∩ó¿Γ∞ß∩  ó ºáú«½«ó¬Ñ ß«ßΓáó¡«ú«
  130.          «»ÑαáΓ«αá, «»¿ßá¡δ ó αáºñѽѠ4 "Äí"∩ó½Ñ¡¿∩".
  131.                 
  132.                 Åα¿¼Ñα
  133.                 if (i>0)  {
  134.                      linne [i]=x;
  135.                      x++;
  136.                      i--;
  137.                 }
  138.                 
  139.                Æ¿»¿τ¡« »«∩ó½Ñ¡¿Ñ ß«ßΓáó¡«ú« «»ÑαáΓ«αá ó ¬áτÑßΓóÑ Γѽá ñαπ-
  140.          ú«ú« «»ÑαáΓ«αá, ¡á»α¿¼Ñα, Γᬫú«, ¬á¬ «»ÑαáΓ«α if. é  »α¿óÑñÑ¡¡«¼
  141.          »α¿¼ÑαÑ,  Ñß½¿ i í«½∞ΦÑ ¡π½∩, Γ« »«ß½Ññ«óáΓѽ∞¡« óδ»«½¡∩εΓß∩ «»Ñ-
  142.          αáΓαδ ß«ßΓáó¡«ú« «»ÑαáΓ«αá.
  143.                 
  144.                Å«¼ÑτÑ¡¡δÑ «»ÑαáΓ«αδ
  145.                 
  146.                Å«ñ«í¡«  ñαπú¿¼  «»ÑαáΓ«αá¼  æ¿, ½εí«⌐ «»ÑαáΓ«α ó ß«ßΓáó¡«¼
  147.          «»ÑαáΓ«αÑ ¼«ªÑΓ íδΓ∞ »«¼ÑτÑ¡. Å«φΓ«¼π »ÑαÑñáτá π»αáó½Ñ¡¿∩  ó¡πΓα∞
  148.          ß«ßΓáó¡«ú« «»ÑαáΓ«αá ó«º¼«ª¡á. Äñ¡á¬«, »ÑαÑñáτ¿ π»αáó½Ñ¡¿∩ ó¡πΓα∞
  149.          ß«ßΓáó¡«ú«  «»ÑαáΓ«αá  «»áß¡δ, ¬«úñá  ß«ßΓáó¡«⌐ «»ÑαáΓ«α ß«ñÑনΓ
  150.          «í"∩ó½Ñ¡¿∩,  ¬«Γ«αδÑ  ¿¡¿µ¿á½¿º¿απεΓ  »ÑαѼѡ¡δÑ.  Äí"∩ó½Ñ¡¿∩   ó
  151.          ß«ßΓáó¡«¼  «»ÑαáΓ«αÑ »αÑñΦÑßΓóπεΓ óδ»«½¡∩Ñ¼δ¼ «»ÑαáΓ«αá¼, ΓᬠτΓ«
  152.          »ÑαÑñáτá  π»αáó½Ñ¡¿∩  ¡Ñ»«ßαÑñßΓóÑ¡¡«  ¡á  óδ»«½¡∩Ѽδ⌐   «»ÑαáΓ«α
  153.          ó¡πΓα¿ ß«ßΓáó¡«ú« «»ÑαáΓ«αá ¼¿¡πÑΓ ¿¡¿µ¿á½¿ºáµ¿ε. ÉѺπ½∞ΓáΓ íπñÑΓ
  154.          ¡Ñ»αÑñ߬áºπѼ.
  155.                 
  156.                 
  157.                6.4. Ä»ÑαáΓ«α continue
  158.                 
  159.                æ¿¡Γá¬ß¿ß:
  160.          
  161.                continue;
  162.              
  163.                éδ»«½¡Ñ¡¿Ñ:
  164.                Ä»ÑαáΓ«α c«ntinue »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ ¡á ß½ÑñπεΘπε ¿ΓÑαᵿε
  165.          ó «»ÑαáΓoαáσ µ¿¬½á do, for, while, ó ¬«Γ«αδσ «¡ ¼«ªÑΓ  »«∩ó¿Γ∞ß∩.
  166.          ÄßΓáóΦ¿Ñß∩  «»ÑαáΓ«αδ  ó ΓѽѠ  óδΦÑ»ÑαÑτ¿ß½Ñ¡¡δσ µ¿¬½«ó »α¿ φΓ«¼
  167.          ¡Ñ óδ»«½¡∩εΓß∩. é¡πΓα¿ do ¿½¿ while µ¿¬½«ó ß½ÑñπεΘá∩ ¿ΓÑαᵿ∩ ¡á-
  168.          τ¿¡áÑΓß∩ ß »ÑαÑóδτ¿ß½Ñ¡¿∩ óδαáªÑ¡¿∩ do ¿½¿ while «»ÑαáΓ«α«ó.  ä½∩
  169.          «»ÑαáΓ«αá  for  ß½ÑñπεΘá∩  ¿ΓÑαᵿ∩  ¡áτ¿¡áÑΓß∩ ß óδαáªÑ¡¿∩ µ¿¬½á
  170.          «»ÑαáΓ«αá for.
  171.                 
  172.                Åα¿¼Ñα:
  173.                 while (i-->0)  {
  174.                      x=f(i);
  175.                      if (x==1)
  176.                         continue;
  177.  
  178.                                       - 99 -
  179.            
  180.            
  181.                      y=x*x;
  182.                 }
  183.                 
  184.                ÆÑ½« «»ÑαáΓ«αá óδ»«½¡∩ÑΓß∩ , Ñß½¿ i>0. æ¡áτá½á f(i) »α¿ßóá-
  185.          ¿óáÑΓß∩ x,  ºáΓѼ,  Ñß½¿  x  αáó¡«  1,  Γ«  óδ»«½¡∩ÑΓß∩  «»ÑαáΓ«α
  186.          continue.  ÄßΓá½∞¡δÑ «»ÑαáΓ«αδ Γѽᠿú¡«α¿απεΓß∩ ¿ óδ»«½¡Ñ¡¿Ñ ó«-
  187.          º«í¡«ó½∩ÑΓß∩ ß ºáú«½«ó¬á µ¿¬½á, Γ.Ñ. óδτ¿ß½∩ÑΓß∩ óδαáªÑ¡¿Ñ i-->0.
  188.          
  189.                
  190.                6.5. Ä»ÑαáΓ«α do
  191.                 
  192.                 æ¿¡Γá¬ß¿ß:
  193.                 do
  194.                   <statement>
  195.                 while (<expression>);
  196.                 
  197.                éδ»«½¡Ñ¡¿Ñ:
  198.                ÆÑ½« «»ÑαáΓ«αá do óδ»«½¡∩ÑΓß∩ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« αẠñ« ΓÑσ
  199.          »«α, »«¬á óδαáªÑ¡¿Ñ <expression>  ßΓá¡ÑΓ  ½«ª¡δ¼  (αáó¡δ¼  ¡π½ε).
  200.          é¡áτá½Ñ  óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α <statement> Γѽá, ºáΓѼ óδτ¿ß½∩ÑΓß∩
  201.          óδαáªÑ¡¿Ñ <expression>. àß½¿ óδαáªÑ¡¿Ñ ½«ª¡«, Γ« «»ÑαáΓ«α do  ºá-
  202.          óÑαΦáÑΓß∩ ¿ π»αáó½Ñ¡¿Ñ »ÑαÑñáÑΓß∩ ß½ÑñπεΘÑ¼π «»ÑαáΓ«απ ó »α«úαá¼-
  203.          ¼Ñ.  àß½¿  óδαáªÑ¡¿Ñ  ¿ßΓ¿¡¡«  (¡Ñ αáó¡« ¡π½ε), Γ« Γѽ« «»ÑαáΓ«αá
  204.          óδ»«½¡∩ÑΓß∩ ß¡«óá ¿ ß¡«óá »α«óÑα∩ÑΓß∩ óδαáªÑ¡¿Ñ. éδ»«½¡Ñ¡¿Ñ  Γѽá
  205.          «»ÑαáΓ«αá  »α«ñ«½ªáÑΓß∩  ñ«  ΓÑσ  »«α,  »«¬á  óδαáªÑ¡¿Ñ ¡Ñ ßΓá¡ÑΓ
  206.          ½«ª¡δ¼. Ä»ÑαáΓ«α do ¼«ªÑΓ ΓᬪѠºáóÑαΦ¿Γ∞ óδ»«½¡Ñ¡¿Ñ »α¿ óδ»«½¡Ñ-
  207.          ¡¿¿ «»ÑαáΓ«α«ó break, goto ¿½¿ return ó¡πΓα¿ Γѽᠫ»ÑαáΓ«αá do.
  208.                 
  209.                Åα¿¼Ñα:
  210.                 do {
  211.                     y=f(x);
  212.                     x--;
  213.                 } while (x>0);
  214.                 
  215.                é¡áτá½Ñ óδ»«½¡∩εΓß∩ ñóá «»ÑαáΓ«αá y=f(x); ¿ x--; ¡Ñ «íαáΘá∩
  216.          ó¡¿¼á¡¿Ñ ¡á ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ  x.  çáΓѼ  óδτ¿ß½∩ÑΓß∩  óδαáªÑ¡¿Ñ
  217.          x>0. àß½¿ x>0, Γ« Γѽ« «»ÑαáΓ«αá óδ»«½¡∩ÑΓß∩ ß¡«óá, ¿ ß¡«óá »ÑαÑ-
  218.          óδτ¿ß½∩ÑΓß∩ óδαáªÑ¡¿Ñ x>0. ÆÑ½« «»ÑαáΓ«αá óδ»«½¡∩ÑΓß∩ ñ« ΓÑσ »«α,
  219.          »«¬á x ¡Ñ ßΓá¡ÑΓ ¼Ñ¡∞ΦÑ ¿½¿ αáó¡δ¼ ¡π½ε.
  220.                 
  221.                 
  222.                6.6. Ä»ÑαáΓ«α-óδαáªÑ¡¿Ñ
  223.                 
  224.                æ¿¡Γá¬ß¿ß:
  225.                 
  226.                expression;
  227.                 
  228.                éδ»«½¡Ñ¡¿Ñ:
  229.                éδαáªÑ¡¿Ñ  <expression> óδτ¿ß½∩ÑΓß∩ ó ß««ΓóÑΓßΓó¿¿ ß »αáó¿-
  230.          ½á¼¿, ¿º½«ªÑ¡¡δ¼¿ ó αáºñѽѠ5 "éδαáªÑ¡¿∩ ¿ »α¿ßóá¿óá¡¿∩".
  231.                 
  232.                Åα¿¼Ñαδ
  233.                x=(y+3);     / *example 1* /
  234.                x++;         / *example 2* /
  235.                f(x);        / *example 3* /
  236.  
  237.                                       - 100 -
  238.            
  239.            
  240.                 
  241.                é æ¿ »α¿ßóá¿óá¡¿∩ ∩ó½∩εΓß∩ óδαáªÑ¡¿∩¼¿. ç¡áτÑ¡¿Ñ¼ óδαáªÑ¡¿∩
  242.          ∩ó½∩ÑΓß∩  º¡áτÑ¡¿Ñ,   ¬«Γ«α«Ñ   »α¿ßóá¿óáÑΓß∩   (Γᬠ  ¡áºδóáѼ«Ñ
  243.          "»αáó«-ßΓ«α«¡ÑÑ º¡áτÑ¡¿Ñ").
  244.                é »Ñαó«¼ »α¿¼ÑαÑ x »α¿ßóá¿óáÑΓß∩ º¡áτÑ¡¿Ñ y+3.
  245.                é« óΓ«α«¼ »α¿¼ÑαÑ x ¿¡¬αÑ¼Ñ¡Γ¿απÑΓß∩.
  246.                é  ΓαÑΓ∞Ѽ »α¿¼ÑαÑ »«¬áºá¡« óδαáªÑ¡¿Ñ Σπ¡¬µ¿«¡á½∞¡«ú« ó맮-
  247.          óá.ç¡áτÑ¡¿Ñ¼ óδαáªÑ¡¿∩ ∩ó½∩ÑΓß∩ º¡áτÑ¡¿Ñ, ó«ºóαáΘáѼ«Ñ  Σπ¡¬µ¿Ñ⌐.
  248.          àß½¿  Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  º¡áτÑ¡¿Ñ, Γ« «íδτ¡« «»ÑαáΓ«α-óδαáªÑ¡¿Ñ
  249.          ß«ñÑαª¿Γ «»Ñαáµ¿ε »α¿ßóá¿óá¡¿∩, τΓ«íδ ºá»«¼¡¿Γ∞ º¡áτÑ¡¿Ñ ó«ºóαáΓá
  250.          óδºóá¡¡«⌐ Σπ¡¬µ¿¿. àß¿ ó«ºóαáΘáѼá∩ óѽ¿τ¿¡á ¡Ñ ¿ß»«½∞ºπÑΓß∩, ¬á¬
  251.          ó ñá¡¡«¼ »α¿¼ÑαÑ, ó맮ó Σπ¡¬µ¿¿ óδ»«½¡∩ÑΓß∩, ¡« ó«ºóαáΘáѼá∩  óÑ-
  252.          ½¿τ¿¡á (Ñß½¿ «¡á ÑßΓ∞) ¡Ñ ¿ß»«½∞ºπÑΓß∩.
  253.          
  254.                
  255.                6.7. Ä»ÑαáΓ«α for
  256.                 
  257.                æ¿¡Γá¬ß¿ß:
  258.            
  259.          for ([<init-expression>];[<cond-expression>];[<loop-exp>])
  260.                 statement
  261.                 
  262.                ÆÑ½«  «»ÑαáΓ«αá  for  óδ»«½¡∩ÑΓß∩  ¡π½∞ ¿ í«½ÑÑ αáº, ñ« ΓÑσ
  263.          »«α, »«¬á πß½«ó¡«Ñ óδαáªÑ¡¿Ñ <cond-expression> ¡Ñ ßΓá¡ÑΓ  ½«ª¡δ¼.
  264.          éδαáªÑ¡¿∩     ¿¡¿µ¿á½¿ºáµ¿¿     <init-expression>     ¿     µ¿¬½á
  265.          <loop-expression> ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ ¿ ¼«-
  266.          ñ¿Σ¿¬áµ¿¿ óѽ¿τ¿¡ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ «»ÑαáΓ«αá for.
  267.                ÅÑαóδ¼ Φáú«¼ »α¿ óδ»«½¡Ñ¡¿¿ «»ÑαáΓ«αá for ∩ó½∩ÑΓß∩ óδτ¿ß½Ñ-
  268.          ¡¿Ñ óδαáªÑ¡¿∩ ¿¡¿µ¿á½¿ºáµ¿¿, Ñß½¿ «¡« ¿¼ÑÑΓß∩.  çáΓѼ  óδτ¿ß½Ñ¡¿Ñ
  269.          πß½«ó¡«ú« óδαáªÑ¡¿∩ ß ΓαѼ∩ ó«º¼«ª¡δ¼¿ αѺπ½∞ΓáΓἿ:
  270.                1.  àß½¿  πß½«ó¡«Ñ  óδαáªÑ¡¿Ñ  ¿ßΓ¿¡¡«  (¡Ñ αáó¡« ¡π½ε), Γ«
  271.          óδ»«½¡∩ÑΓß∩ Γѽ« «»ÑαáΓ«αá.  çáΓѼ  óδτ¿ß½∩ÑΓß∩  óδαáªÑ¡¿Ñ  µ¿¬½á
  272.          (Ñß½¿ «¡« ÑßΓ∞). Åα«µÑßß »«óΓ«α∩ÑΓß∩ ß¡«óá ß óδτ¿ß½Ñ¡¿Ñ¼ πß½«ó¡«-
  273.          ú« óδαáªÑ¡¿∩.
  274.                2.  àß½¿ πß½«ó¡«Ñ óδαáªÑ¡¿Ñ «»πΘÑ¡«, Γ« Ñú« º¡áτÑ¡¿Ñ »α¿¡¿-
  275.          ¼áÑΓß∩ ºá ¿ßΓ¿¡π ¿ »α«µÑßß óδ»«½¡Ñ¡¿∩ »α«ñ«½ªáÑΓß∩, ¬á¬  »«¬áºá¡«
  276.          óδΦÑ.  é  φΓ«¼  ß½πτáÑ  «»ÑαáΓ«α for ¼«ªÑΓ ºáóÑαΦ¿Γ∞ß∩ Γ«½∞¬« »α¿
  277.          óδ»«½¡Ñ¡¿¿ ó ΓѽѠ«»ÑαáΓ«αá «»ÑαáΓ«α«ó break, goto, return.
  278.                3. àß¿ πß½«ó¡«Ñ óδαáªÑ¡¿Ñ ½«ª¡«,  Γ«  óδ»«½¡Ñ¡¿Ñ  «»ÑαáΓ«αá
  279.          for  ºá¬á¡τ¿óáÑΓß∩ ¿ π»αáó½Ñ¡¿Ñ »ÑαÑñáÑΓß∩ ß½ÑñπεΘÑ¼π «»ÑαáΓ«απ ó
  280.          »α«úαá¼¼Ñ.
  281.                Ä»ÑαáΓ«α for ¼«ªÑΓ ºáóÑαΦ¿Γ∞ß∩  »α¿  óδ»«½¡Ñ¡¿¿  «»ÑαáΓ«α«ó
  282.          break, return, goto ó ΓѽѠ«»ÑαáΓ«αá.
  283.                 
  284.                Åα¿¼Ñα
  285.                for (i=space=tab=0; i<MAX; i++) {
  286.                     if (line [i] == '\x20')
  287.                          space++;
  288.                     if (line [i] == '\t') {
  289.                          tab++;
  290.                          line [i] = '\x20';
  291.                     }
  292.                 }
  293.                 
  294.                é   »α¿óÑñÑ¡¡«¼  »α¿¼ÑαÑ  »«ñßτ¿ΓδóáεΓß∩  ß¿¼ó«½δ  »α«íѽ«ó
  295.  
  296.                                       - 101 -
  297.            
  298.            
  299.          ('\x20') ¿ Γáíπ½∩µ¿⌐ ('\t')  ó  ¼áßß¿óÑ  ß¿¼ó«½«ó,  »«¿¼Ñ¡«óá¡¡«¼
  300.          line, ¿ ºá¼Ñ¡á ¬áªñ«ú« ß¿¼ó«½á Γáíπ½∩µ¿¿ ¡á »α«íѽ.
  301.                æ¡áτá½á i, space ¿  tab  ¿¡¿µ¿á½¿º¿απεΓß∩  ¡π½Ñ¼.  çáΓѼ  i
  302.          ßαáó¡¿óáÑΓß∩  ß ¬«¡ßΓá¡Γ«⌐ MAX. àß½¿ i ¼Ñ¡∞ΦÑ MAX, Γ« óδ»«½¡∩ÑΓß∩
  303.          Γѽ« «»ÑαáΓ«αá. é ºáó¿ß¿¼«ßΓ¿ «Γ º¡áτÑ¡¿∩ line  [i],  óδ»«½¡∩εΓß∩
  304.          «»ÑαáΓ«αδ if.
  305.                çáΓѼ  »ÑαѼѡ¡á∩ i ¿¡¬αÑ¼Ñ¡Γ¿απÑΓß∩ ¿ ß¡«óá ßαáó¡¿óáÑΓß∩ ß
  306.          ¬«¡ßΓá¡Γ«⌐ MAX. ÆÑ½« «»ÑαáΓ«αá óδ»«½¡∩ÑΓß∩ ñ« ΓÑσ »«α, »«¬á  º¡á-
  307.          τÑ¡¿Ñ i ¡Ñ ßΓá¡ÑΓ í«½∞ΦÑ ¿½¿ αáó¡« MAX.
  308.                 
  309.                6.8. GOTO ¿ »«¼ÑτÑ¡¡δÑ «»ÑαáΓ«αδ
  310.                 
  311.                æ¿¡Γá¬ß¿ß:
  312.                 
  313.                goto <name>;
  314.                .
  315.                .
  316.                .
  317.                <name>: <statement>
  318.                 
  319.                éδ»«½¡Ñ¡¿Ñ:
  320.                                      
  321.                Ä»ÑαáΓ«α goto »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¡á «»Ñαá-
  322.          Γ«α,  »«¼ÑτÑ¡¡δ⌐  <name>.  Å«¼ÑτÑ¡¡δ⌐  «»ÑαáΓ«α óδ»«½¡∩ÑΓß∩ ßαáºπ
  323.          »«ß½Ñ óδ»«½¡Ñ¡¿∩ «»ÑαáΓ«αá goto. àß½¿ «»ÑαáΓ«α  ß  ñá¡¡«⌐  ¼ÑΓ¬«⌐
  324.          «ΓßπΓßΓóπÑΓ ¿½¿ ßπΘÑßΓóπÑΓ í«½ÑÑ «ñ¡«ú« «»ÑαáΓ«αá, »«¼ÑτÑ¡¡δσ «ñ-
  325.          ¡«⌐  ¿  Γ«⌐  ªÑ  ¼ÑΓ¬«⌐, Γ« φΓ« »α¿ó«ñ¿Γ ¬ «Φ¿í«τ¡«¼π αѺπ½∞ΓáΓπ.
  326.          îÑΓ¬á «»ÑαáΓ«αá ¿¼ÑÑΓ «Γ¡«ΦÑ¡¿Ñ Γ«½∞¬« ¬ «»ÑαáΓ«απ goto. àß½¿ »«-
  327.          ¼ÑτÑ¡¡δ⌐ «»ÑαáΓ«α óßΓαÑτáÑΓß∩ ó ½εí«¼ ñαπú«¼ ¬«¡ΓѬßΓÑ, Γ« «¡ óδ-
  328.          »«½¡∩ÑΓß∩ íѺ πτÑΓá ¼ÑΓ¬¿.
  329.                 
  330.                Åα¿¼Ñα
  331.                if (errorcode>0)
  332.                    goto exit;
  333.                .
  334.                .
  335.                .
  336.                exit:return (errorcode);
  337.                 
  338.                é  »α¿¼ÑαÑ  «»ÑαáΓ«α  goto »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ ¡á «»ÑαáΓ«α,
  339.          »«¼ÑτÑ¡¡δ⌐ ¼ÑΓ¬«⌐ exit, ¬«úñá »α«¿ßσ«ñ¿Γ «Φ¿í¬á.
  340.                 
  341.                ö«α¼áΓ ¼ÑΓ«¬
  342.                 
  343.                îÑΓ¬á  -  φΓ«  »α«ßΓ«⌐  ¿ñÑ¡Γ¿Σ¿¬áΓ«α,  ß¿¡Γá¬ß¿ß  ¬«Γ«α«ú«
  344.          «»¿ßá¡  ó αáºñѽѠ2.4. èáªñá∩ ¼ÑΓ¬á ñ«½ª¡á íδΓ∞ «Γ½¿τ¡á «Γ ñαπú¿σ
  345.          ¼ÑΓ«¬ ó Γ«⌐ ªÑ ßἫ⌐ Σπ¡¬µ¿¿.
  346.                 
  347.                6.9. Ä»ÑαáΓ«α if
  348.                 
  349.                æ¿¡Γá¬ß¿ß:
  350.                 
  351.                if (<expression>)
  352.                    <statement 1>
  353.                [else
  354.  
  355.                                       - 102 -
  356.            
  357.            
  358.                    <statement 2>]
  359.                 
  360.                éδ»«½¡Ñ¡¿Ñ:
  361.                ÆÑ½« «»ÑαáΓ«αá if óδ»«½¡∩ÑΓß∩ ßÑ½Ñ¬Γ¿ó¡«, ó ºáó¿ß¿¼«ßΓ¿  «Γ
  362.          º¡áτÑ¡¿∩  óδαáªÑ¡¿∩  <expression>. æ¡áτá½á óδτ¿ß½∩ÑΓß∩ óδαáªÑ¡¿Ñ.
  363.          àß½¿ º¡áτÑ¡¿Ñ óδαáªÑ¡¿∩ ¿ßΓ¿¡á (¡Ñ ¡π½∞), Γ« óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α
  364.          <statement 1>. àß½¿  óδαáªÑ¡¿Ñ  ½«ª¡«,  Γ«  óδ»«½¡∩ÑΓß∩  «»ÑαáΓ«α
  365.          <statement 2>, ¡Ñ»«ßαÑñßΓóÑ¡¡« ß½ÑñπεΘ¿⌐ ºá ¬½ετÑóδ¼ ß½«ó«¼ else.
  366.          àß½¿ óδαáªÑ¡¿Ñ <expression> ½«ª¡« ¿ »αÑñ½«ªÑ¡¿Ñ else ... «»πΘÑ¡«,
  367.          Γ«  π»αáó½Ñ¡¿Ñ  »ÑαÑñáÑΓß∩ ¡á óδ»«½¡Ñ¡¿Ñ «»ÑαáΓ«αá, ß½ÑñπεΘÑú« ºá
  368.          «»ÑαáΓ«α«¼ if.
  369.                 
  370.                Åα¿¼Ñα
  371.                if (i>0)
  372.                      y=x/i;
  373.                                     
  374.                else {
  375.                      x=i;
  376.                      y=f(x);
  377.                 }
  378.                 
  379.                é »α¿¼ÑαÑ óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α y=x/i;, Ñß½¿ i í«½∞ΦÑ  ¡π½∩.
  380.          àß½¿  i  ¼Ñ¡∞ΦÑ  ¿½¿  αáó¡«  ¡π½ε,  Γ«  º¡áτÑ¡¿Ñ  i »α¿ßóá¿óáÑΓß∩
  381.          »ÑαѼѡ¡«⌐ x ¿ ó«ºóαáΓ Σπ¡¬µ¿¿ f(x) »α¿ßóá¿óáÑΓß∩ »ÑαѼѡ¡«⌐ y.
  382.                 
  383.                é½«ªÑ¡¿∩
  384.                 
  385.                æ¿ ¡Ñ »«ññÑনóáÑΓ «»ÑαáΓ«α "else  if",  ¡«  Γ«Γ  ªÑ  ßá¼δ⌐
  386.          φΣΣÑ¬Γ  ñ«ßΓ¿úáÑΓß∩ »«ßαÑñßΓó«¼ ß½«ªÑ¡¡δσ «»ÑαáΓ«α«ó if. Ä»ÑαáΓ«α
  387.          if ¼«ªÑΓ íδΓ∞ ó½«ªÑ¡ ó »αÑñ½«ªÑ¡¿Ñ if ¿½¿ »αÑñ½«ªÑ¡¿Ñ else ñαπú«-
  388.          ú« «»ÑαáΓ«αá if. è«úñá «»ÑαáΓ«αδ if ó¬½áñδóáεΓß∩, Γ« ¿ß»«½∞ºπεΓß∩
  389.          Σ¿úπα¡δѠ߬«í¬¿, τΓ«íδ ßúαπ»»¿α«óáΓ∞ ß«ßΓáó¡δÑ «»ÑαáΓ«αδ, ¬«Γ«αδÑ
  390.          »α«∩ß¡∩εΓ ß¿Γπᵿε.
  391.                àß½¿  Σ¿úπα¡δÑ  ß¬«í¬¿  «ΓßπΓßΓóπεΓ,  Γ«  ¬«¼»¿½∩Γ«α  ¼«ªÑΓ
  392.          »α¿¡∩Γ∞ ¡ÑóÑα¡«Ñ αÑΦÑ¡¿Ñ, ß«τÑΓá∩ ¬áªñ«Ñ else ß í«½ÑÑ í½¿º¬¿¼ if,
  393.          π ¬«Γ«α«ú« «ΓßπΓßóπÑΓ else.
  394.                 
  395.                Åα¿¼Ñαδ
  396.                 
  397.                /****** example 1 ******/
  398.                if (i>0) /* without braces */
  399.                      if (j>i)
  400.                           x=j;
  401.                      else
  402.                           x=i;
  403.                 
  404.                /****** example 2 ******/
  405.                 if (i>0) {     /* with braces */
  406.                      if (j>1)
  407.                          x=j;
  408.                 }
  409.                 else
  410.                     x=i;
  411.                 
  412.                é »Ñαó«¼ »α¿¼ÑαÑ else áßß«µ¿¿απÑΓß∩ ß ó¡πΓαÑ¡¡¿¼ «»ÑαáΓ«α«¼
  413.  
  414.                                       - 103 -
  415.            
  416.            
  417.          if.  àß½¿ i ¼Ñ¡∞ΦÑ ¿½¿ αáó¡« 0, Γ« ¡ÑΓ º¡áτÑ¡¿∩, ¬«Γ«α«Ñ »α¿ßóá¿-
  418.          óáÑΓß∩ x.
  419.                é« óΓ«α«¼ »α¿¼ÑαÑ Σ¿úπα¡δѠ߬«í¬¿  «úαá¡¿τ¿óáεΓ  ó¡πΓαÑ¡¡¿⌐
  420.          «»ÑαáΓ«α  if  ¿ ΓѼ ßá¼δ¼ ñѽáεΓ »αÑñ½«ªÑ¡¿Ñ else τáßΓ∞ε ó¡ÑΦ¡Ñú«
  421.          «»ÑαáΓ«αá if. àß½¿ i ¼Ñ¡∞ΦÑ ¿½¿ αáó¡« ¡π½ε, Γ« º¡áτÑ¡¿Ñ i »α¿ßóá-
  422.          ¿óáÑΓß∩ »ÑαѼѡ¡«⌐ x.
  423.                 
  424.                 
  425.                6.10. Ä»ÑαáΓ«α null
  426.                         
  427.                 
  428.                æ¿¡Γá¬ß¿ß:
  429.                    ;
  430.                 
  431.                éδ»«½¡Ñ¡¿Ñ:
  432.                Ä»ÑαáΓ«α null - φΓ« «»ÑαáΓ«α, ß«ßΓ«∩Θ¿⌐ Γ«½∞¬« ¿º  Γ«τ¬¿  ß
  433.          ºá»∩Γ«⌐.   Ä¡  ¼«ªÑΓ  »«∩ó¿Γ∞ß∩  ó  ½εí«¼  ¼ÑßΓÑ,  úñÑ  ΓαÑíπÑΓß∩
  434.          «»ÑαáΓ«α. è«úñá óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α null, ¡¿τÑú« ¡Ñ »α«¿ßσ«ñ¿Γ.
  435.                 
  436.                Åα¿¼Ñα
  437.                for (i=0; i<10; linee [i++]=0)
  438.                          ;
  439.                 
  440.                Æá¬¿Ñ «»ÑαáΓ«αδ, ¬á¬ do, for, if, while, ΓαÑíπεΓ,  τΓ«íδ  ó
  441.          ΓѽѠ «»ÑαáΓ«αá íδ½ σ«Γ∩ íδ «ñ¿¡ «»ÑαáΓ«α. Ä»ÑαáΓ«α null πñ«ó½ÑΓ-
  442.          ó«α∩ÑΓ ΓαÑí«óá¡¿∩¼ ß¿¡Γá¬ß¿ßá ó ß½πτá∩σ, ¬«úñá ¡Ñ ΓαÑíπÑΓß∩  Γѽá
  443.          «»ÑαáΓ«αá.  é  »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ ΓαÑΓ∞Ñ óδαáªÑ¡¿Ñ «»ÑαáΓ«αá for
  444.          ¿¡¿µ¿á½¿º¿απÑΓ »ÑαóδÑ 10 φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá line ¡π½Ñ¼. ÆÑ½«  «»Ñ-
  445.          αáΓ«αá  ó¬½ετáÑΓ  «»ÑαáΓ«α  null, Γ.¬. ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ó ñαπú¿σ
  446.          «»ÑαáΓ«αáσ.
  447.                 
  448.                Å«¼ÑτÑ¡¡δ⌐ «»ÑαáΓ«α null
  449.                 
  450.                Ä»ÑαáΓ«α  null,  »«ñ«í¡« ½εí«¼π ñαπú«¼π æ¿ «»ÑαáΓ«απ, ¼«ªÑΓ
  451.          íδΓ∞ »«¼ÑτÑ¡ ¼ÑΓ¬«⌐. ùΓ«íδ »«¼ÑΓ¿Γ∞ «í"ѬΓ, ¬«Γ«αδ⌐  ¡Ñ  ∩ó½∩ÑΓß∩
  452.          «»ÑαáΓ«α«¼,  Γᬫ⌐  ¬á¬  ºá¬αδóáεΘá∩ß∩ Σ¿úπα¡á∩ ß¬«í¬á ß«ßΓáó¡«ú«
  453.          «»ÑαáΓ«αá, ¼«ª¡«  óßΓáó¿Γ∞  »ÑαÑñ  «í"Ñ¬Γ«¼  »«¼ÑτÑ¡¡δ⌐  «»ÑαáΓ«α
  454.          null.
  455.          
  456.                
  457.                6.11. Ä»ÑαáΓ«α return
  458.                 
  459.                æ¿¡Γá¬ß¿ß:
  460.                 
  461.                return [<expression>];
  462.                 
  463.                éδ»«½¡Ñ¡¿Ñ:
  464.                Ä»ÑαáΓ«α return ºá¬á¡τ¿óáÑΓ óδ»«½¡Ñ¡¿Ñ Σπ¡¬µ¿¿,  ó  ¬«Γ«α«⌐
  465.          «¡  »«∩ó½∩ÑΓß∩, ¿ ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ ó óδºδóáεΘπε Σπ¡¬µ¿ε. ô»-
  466.          αáó½Ñ¡¿Ñ »ÑαÑñáÑΓß∩ ó óδºδóáεΘπε Σπ¡¬µ¿ε ó Γ«τ¬π, ¡Ñ»«ßαÑñßΓóÑ¡¡«
  467.          ß½ÑñπεΘπε ºá ó맮ó«¼. ç¡áτÑ¡¿Ñ óδαáªÑ¡¿∩ <expression>,  Ñß½¿  «¡«
  468.          ÑßΓ∞,   ó«ºóαáΘáÑΓß∩   ó   óδºδóáεΘπε   Σπ¡¬µ¿ε.  àß½¿  óδαáªÑ¡¿Ñ
  469.          <expression> «»πΘÑ¡«, Γ« ó«ºóαáΘáѼá∩ Σπ¡¬µ¿Ñ⌐ óѽ¿τ¿¡á ¡Ñ  «»αÑ-
  470.          ñѽѡá.
  471.                 
  472.  
  473.                                       - 104 -
  474.            
  475.            
  476.                Åα¿¼Ñα
  477.                main ()
  478.                {
  479.                        void draw (int,int);
  480.                        long sq (int);
  481.                                      
  482.                        .
  483.                        .
  484.                        .
  485.                        y=sq (x);
  486.                        draw (x,y);
  487.                        .
  488.                        .
  489.                        .
  490.                 }
  491.                 long sq (x)
  492.                 int x;
  493.                 {
  494.                    return (x*x);
  495.                 }
  496.                 void draw (x,y)
  497.                 int x,y;
  498.                 {
  499.                    .
  500.                    .
  501.                    .
  502.                    return;
  503.                 }
  504.                 
  505.                öπ¡¬µ¿∩  main  óδºδóáÑΓ  ñóÑ Σπ¡¬µ¿¿, sq ¿ draw. öπ¡¬µ¿∩ sq
  506.          ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ x*x ó main. éѽ¿τ¿¡á  ó«ºóαáΓá  »α¿ßóá¿óáÑΓß∩
  507.          »ÑαѼѡ¡«⌐ y. öπ¡¬µ¿∩ draw «í"∩ó½∩ÑΓß∩ ¬á¬ Σπ¡¬µ¿∩ void ¿ ¡Ñ ó«º-
  508.          óαáΘáÑΓ º¡áτÑ¡¿∩. Å«»δΓ¬á »α¿ßó«¿Γ∞ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ Σπ¡¬µ¿¿
  509.          draw »α¿óѽ« íδ ¬ «Φ¿í¬Ñ.
  510.                éδαáªÑ¡¿Ñ <expression> «»ÑαáΓ«αá return ºá¬½ετÑ¡« ó ß¬«í¬¿,
  511.          ¬á¬ »«¬áºá¡« ó »α¿¼ÑαÑ. ƒºδ¬ ¡Ñ ΓαÑíπÑΓ ß¬«í«¬.
  512.                 
  513.                ÄΓßπΓßΓó¿Ñ «»ÑαáΓ«αá return
  514.                 
  515.                àß½¿  «»ÑαáΓ«α return ¡Ñ »«∩ó¿½ß∩ ó «»αÑñѽѡ¿¿ Σπ¡¬µ¿¿, Γ«
  516.          π»αáó½Ñ¡¿Ñ áóΓ«¼áΓ¿τÑ߬¿ »ÑαÑñáÑΓß∩ ó  óδºδóáεΘπε  Σπ¡¬µ¿ε  »«ß½Ñ
  517.          óδ»«½¡Ñ¡¿∩  »«ß½Ññ¡Ñú«  «»ÑαáΓ«αá  ó  óδºóá¡¡«⌐ Σπ¡¬µ¿¿. ç¡áτÑ¡¿Ñ
  518.          ó«ºóαáΓá óδºóá¡¡«⌐ Σπ¡¬µ¿¿ »α¿ φΓ«¼ ¡Ñ «»αÑñѽѡ«. àß½¿  º¡áτÑ¡¿Ñ
  519.          ó«ºóαáΓá  ¡Ñ  ΓαÑíπÑΓß∩, Γ« Σπ¡¬µ¿∩ ñ«½ª¡á íδΓ∞ «í"∩ó½Ñ¡á ß Γ¿»«¼
  520.          ó«ºóαáΓá void.
  521.          
  522.                
  523.                6.12. Ä»ÑαáΓ«α switch
  524.                 
  525.                æ¿¡Γá¬ß¿ß:
  526.                 
  527.                switch (<expression>) {
  528.                      [<declaration>]
  529.                      .
  530.                      .
  531.  
  532.                                       - 105 -
  533.            
  534.            
  535.                      .
  536.                      [case <constant-expression>:]
  537.                                      
  538.                      .
  539.                      .
  540.                      .
  541.                           [<statement>]
  542.                           .
  543.                           .
  544.                           .
  545.                      [default:
  546.                               <statement>]
  547.                      [case <constant-expression>:]
  548.                      .
  549.                      .
  550.                      .
  551.                           [<statement>]
  552.                           .
  553.                           .
  554.                           .
  555.                 }
  556.                 
  557.                éδ»«½¡Ñ¡¿Ñ:
  558.                Ä»ÑαáΓ«α switch »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ  «ñ¡«¼π  ¿º  «»ÑαáΓ«α«ó
  559.          <statement>  ßó«Ñú«  Γѽá. Ä»ÑαáΓ«α, »«½πτáεΘ¿⌐ π»αáó½Ñ¡¿Ñ, - φΓ«
  560.          Γ«Γ      «»ÑαáΓ«α,      τ∞Ñ      case-¬«¡ßΓá¡Γ¡«Ñ       óδαáªÑ¡¿Ñ
  561.          <cjnstant-expression>     αáó¡«     º¡áτÑ¡¿ε     switch-óδαáªÑ¡¿∩
  562.          <expression> ó ¬απú½δσ ß¬«í¬áσ.
  563.                éδ»«½¡Ñ¡¿Ñ Γѽᠫ»ÑαáΓ«αá ¡áτ¿¡áÑΓß∩ ß óδíαá¡¡«ú« «»ÑαáΓ«αá
  564.          ¿ »α«ñ«½ªáÑΓß∩ ñ« ¬«¡µá Γѽᠠ¿½¿  ñ«  ΓÑσ  »«α,  »«¬á  «τÑαÑñ¡«⌐
  565.          «»ÑαáΓ«α <statement> »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ ºá »αÑñѽδ Γѽá.
  566.                Ä»ÑαáΓ«α  default óδ»«½¡¿Γß∩, Ñß½¿ case-¬«¡ßΓá¡Γ¡«Ñ óδαáªÑ-
  567.          ¡¿Ñ  <constant-expression>  ¡Ñ  αáó¡«  º¡áτÑ¡¿ε  switch-óδαáªÑ¡¿∩
  568.          <expression>.  àß½¿  default-«»ÑαáΓ«α  «»πΘÑ¡,  á ß««ΓóÑΓßΓóπεΘ¿⌐
  569.          case  ¡Ñ  ¡á⌐ñÑ¡,  Γ«  óδ»«½¡∩Ѽδ⌐   «»ÑαáΓ«α   ó   ΓѽѠ  switch
  570.          «ΓßπΓßΓóπÑΓ.  Switch-óδαáªÑ¡¿Ñ  <expression> - φΓ« µÑ½á∩ óѽ¿τ¿¡á
  571.          αẼÑαá int ¿½¿ ¬«α«τÑ. Ä¡« ¼«ªÑΓ íδΓ∞ ΓᬪѠóѽ¿τ¿¡«⌐ Γ¿»á enum.
  572.          àß½¿ <expression> ¬«α«τÑ τѼ int, «¡« αáßΦ¿α∩ÑΓß∩ ñ« int.
  573.                èáªñ«Ñ  case-¬«¡ßΓá¡Γ¡«Ñ  óδαáªÑ¡¿Ñ   <cjnstant-expression>
  574.          »αÑ«íαáºπÑΓß∩   ¬   Γ¿»π   switch-óδαáªÑ¡¿∩.   ç¡áτÑ¡¿Ñ   ¬áªñ«ú«
  575.          case-¬«¡ßΓá¡Γ¡«ú« óδαáªÑ¡¿∩ ñ«½ª¡« íδΓ∞  π¡¿¬á½∞¡δ¼  ó¡πΓα¿  Γѽá
  576.          «»ÑαáΓ«αá.
  577.                Case  ¿  default  ¼ÑΓ¬¿ ó ΓѽѠ«»ÑαáΓ«αá switch ßπΘÑßΓóÑ¡¡δ
  578.          Γ«½∞¬« »α¿ ¡áτá½∞¡«⌐ »α«óÑα¬Ñ, ¬«úñá «»αÑñѽ∩ÑΓß∩ ßΓáαΓ«óá∩ Γ«τ¬á
  579.          ñ½∩ óδ»«½¡Ñ¡¿∩ Γѽᠫ»ÑαáΓ«αá. éßÑ «»ÑαáΓ«αδ  »«∩ó½∩εΘ¿Ñß∩  ¼Ñªñπ
  580.          ßΓáαΓ«óδ¼  «»ÑαáΓ«α«¼ ¿ ¬«¡µ«¼ Γѽá, óδ»«½¡∩εΓß∩, ¡Ñ «íαáΘá∩ ó¡¿¼á-
  581.          ¡¿∩ ¡á ßó«¿ ¼ÑΓ¬¿, Ñß½¿ ¬á¬«⌐-Γ« ¿º «»ÑαáΓ«α«ó ¡Ñ »ÑαÑñáÑΓ π»αáó-
  582.          ½Ñ¡¿∩ ¿º Γѽᠫ»ÑαáΓ«αá switch.
  583.                é  ºáú«½«ó¬Ñ ß«ßΓáó¡«ú« «»ÑαáΓ«αá, Σ«α¼¿απεΘÑú« Γѽ« «»Ñαá-
  584.          Γ«αá switch, ¼«úπΓ »«∩ó¿Γ∞ß∩ «í"∩ó½Ñ¡¿∩, ¡« ¿¡¿µ¿á½¿ºáΓ«αδ, ó¬½ε-
  585.          τÑ¡¡δÑ ó «í"∩ó½Ñ¡¿∩, ¡Ñ  íπñπΓ  óδ»«½¡Ñ¡δ.  ìạáτÑ¡¿Ñ  «»ÑαáΓ«αá
  586.          switch  ß«ßΓ«¿Γ  ó Γ«¼, τΓ«íδ »ÑαÑñáΓ∞ π»αáó½Ñ¡¿Ñ ¡Ñ»«ßαÑñßΓóÑ¡¡«
  587.          ¡á óδ»«½¡∩Ѽδ⌐ «»ÑαáΓ«α ó¡πΓα¿ Γѽá, «í«⌐ñ∩ ßΓ᫬¿,  ¬«Γ«αδÑ  ß«-
  588.          ñÑαªáΓ ¿¡¿µ¿á½¿ºáµ¿ε.
  589.                 
  590.  
  591.                                       - 106 -
  592.            
  593.            
  594.                Åα¿¼Ñαδ:
  595.                /***.....* example 1 *.....***/
  596.                switch (c) {
  597.                      case 'A':
  598.                         capa++;
  599.                      case 'a':
  600.                         lettera++;
  601.                      default:
  602.                         total++;
  603.                   }
  604.                 
  605.                /***.....* example 2 *.....***/
  606.                switch (i) {
  607.                      case -1:
  608.                              n++;
  609.                              break;
  610.                      case 0:
  611.                              z++;
  612.                              break;
  613.                      case 1:
  614.                              p++;
  615.                              break;
  616.                   }
  617.                 
  618.                é »Ñαó«¼ »α¿¼ÑαÑ óßÑ Γα¿ «»ÑαáΓ«αá ó ΓѽѠswitch óδ»«½¡∩εΓ-
  619.          ß∩,  Ñß½¿ c αáó¡« 'A'. ÅÑαÑñáτá π»αáó½Ñ¡¿∩ «ßπΘÑßΓó½∩ÑΓß∩ ¡á »Ñα-
  620.          óδ⌐ «»ÑαáΓ«α capa++, ñá½ÑÑ «»ÑαáΓ«αδ  óδ»«½¡∩εΓß∩  ó  »«α∩ñ¬Ñ  ¿σ
  621.          ß½Ññ«óá¡¿∩ ó ΓѽÑ.
  622.                àß½¿   c   αáó¡«   'a',   Γ«  »ÑαѼѡ¡δÑ  lettera  ¿  total
  623.          ¿¡¬αÑ¼Ñ¡Γ¿απεΓß∩. ìᬫ¡Ñµ, Ñß½¿ c ¡Ñ αáó¡«  ¡¿  'A'  ¡¿  'a',  Γ«
  624.          ¿¡¬αÑ¼Ñ¡Γ¿απÑΓß∩ Γ«½∞¬« »ÑαѼѡ¡á∩ total.
  625.                é«  óΓ«α«¼  »α¿¼ÑαÑ  ó  ΓѽѠswitch »«ß½Ñ ¬áªñ«ú« «»ÑαáΓ«αá
  626.          ß½ÑñπÑΓ   «»ÑαáΓ«α    break.    Ä»ÑαáΓ«α    break    «ßπΘÑßΓó½∩ÑΓ
  627.          »α¿¡πñ¿Γѽ∞¡δ⌐  óδσ«ñ  ¿º  switch »«ß½Ñ óδ»«½¡Ñ¡¿∩ «ñ¡«ú« ¿º φΓ¿σ
  628.          «»ÑαáΓ«α«ó. Å«ß½Ññ¡¿⌐ «»ÑαáΓ«α break  ¡Ñ  ∩ó½∩ÑΓß∩  «í∩ºáΓѽ∞¡δ¼,
  629.          »«ß¬«½∞¬π  íѺ  ¡Ñú« π»αáó½Ñ¡¿Ñ í佫 íδ »ÑαÑñá¡« ¿º Γѽᠡᠬ«¡Ñµ
  630.          ß«ßΓáó¡«ú« «»ÑαáΓ«αá, ¡« «¡ ó¬½ετÑ¡ ñ½∩ Ññ¿¡««íαế∩.
  631.                 
  632.                î¡«ªÑßΓóÑ¡¡δÑ ¼ÑΓ¬¿
  633.                 
  634.                Ä»ÑαáΓ«α Γѽᠠswitch  ¼«ªÑΓ  íδΓ∞  »«¼ÑτÑ¡  ¼¡«ªÑßΓóÑ¡¡δ¼¿
  635.          ¼ÑΓ¬á¼¿, ¬á¬ »«¬áºá¡« ó ¡¿ªÑß½ÑñπεΘѼ »α¿¼ÑαÑ:
  636.                                      
  637.                case 'a':
  638.                case 'b':
  639.                case 'c':
  640.                case 'd':
  641.                case 'e':
  642.                case 'f': hexcvt (c);
  643.                 
  644.                ò«Γ∩ ½εí«⌐ «»ÑαáΓ«α ó¡πΓα¿ Γѽᠫ»ÑαáΓ«αá switch ¼«ªÑΓ íδΓ∞
  645.          »«¼ÑτÑ¡,  «ñ¡á¬«  ¡Ñ  ΓαÑíπÑΓß∩ «»ÑαáΓ«αá, τΓ«íδ »«∩ó¿½áß∞ ¼ÑΓ¬á.
  646.          Ä»ÑαáΓ«αδ íѺ ¼ÑΓ«¬ ¼«úπΓ íδΓ∞ ß¼ÑΦá¡δ ß »«¼ÑτÑ¡¡δ¼¿ «»ÑαáΓ«αἿ.
  647.          æ½ÑñπÑΓ »«¼¡¿Γ∞, «ñ¡á¬«, τΓ« Ñß½¿ switch «»ÑαáΓ«α »ÑαÑñá½  π»αáó-
  648.          ½Ñ¡¿Ñ  «ñ¡«¼π  ¿º «»ÑαáΓ«α«ó ßó«Ñú« Γѽá, Γ« óßÑ ß½ÑñπεΘ¿Ñ ºá ¡¿¼
  649.  
  650.                                       - 107 -
  651.            
  652.            
  653.          «»ÑαáΓ«αδ ó í½«¬Ñ óδ»«½¡∩εΓß∩, ¡Ñ «íαáΘá∩ ó¡¿¼á¡¿∩ ¡á ßó«¿ ¼ÑΓ¬¿.
  654.                    
  655.                 
  656.                6.13. Ä»ÑαáΓ«α while
  657.                 
  658.                æ¿¡Γá¬ß¿ß:
  659.                while (<expression>)
  660.                       <statement>
  661.                 
  662.                éδ»«½¡Ñ¡¿Ñ:
  663.                ÆÑ½« «»ÑαáΓ«αá while óδ»«½¡∩ÑΓß∩ ¡π½∞ ¿½¿ í«½ÑÑ αẠñ«  ΓÑσ
  664.          »«α,  »«¬á  óδαáªÑ¡¿Ñ  <expression>  ßΓá¡ÑΓ ½«ª¡δ¼ (αáó¡δ¼ ¡π½ε).
  665.          é¡áτá½Ñ óδτ¿ß½∩ÑΓß∩ óδαáªÑ¡¿Ñ <expression>. àß½¿ <expression> ¿º-
  666.          ¡áτá½∞¡« ½«ª¡«, Γ« Γѽ« «»ÑαáΓ«αá while ¡Ñ óδ»«½¡∩ÑΓß∩ ¿ π»αáó½Ñ-
  667.          ¡¿Ñ »ÑαÑñáÑΓß∩ ¡á ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α »α«úαá¼¼δ. àß½¿ <expression>
  668.          ∩ó½∩ÑΓß∩ ¿ßΓ¿¡«⌐ (¡Ñ ¡π½∞), Γ« óδ»«½¡∩ÑΓß∩ Γѽ« «»ÑαáΓ«αá.  ÅÑαÑñ
  669.          ¬áªñδ¼   ß½ÑñπεΘ¿¼   óδ»«½¡Ñ¡¿Ñ¼   Γѽᠠ «»ÑαáΓ«αá  <expression>
  670.          »ÑαÑóδτ¿ß½∩ÑΓß∩. Å«óΓ«αÑ¡¿Ñ óδ»«½¡Ñ¡¿∩ Γѽᠫ»ÑαáΓ«αá  »α«¿ßσ«ñ¿Γ
  671.          ñ«  ΓÑσ  »«α, »«¬á <expression> «ßΓáÑΓß∩ ¿ßΓ¿¡¡δ¼. Ä»ÑαáΓ«α while
  672.          ¼«ªÑΓ ΓᬪѠºáóÑαΦ¿Γ∞ß∩ »α¿ óδ»«½¡Ñ¡¿¿  «»ÑαáΓ«α«ó  break,  goto,
  673.          return ó¡πΓα¿ Γѽá while.
  674.                 
  675.                Åα¿¼Ñα
  676.                while (i>=0) {
  677.                       string1 [i] = string2 [i];
  678.                       i--;
  679.                }
  680.                 
  681.                é  óδΦÑ»α¿óÑñÑ¡¡«¼  »α¿¼ÑαÑ ¬«»¿απεΓß∩ ß¿¼ó«½δ ¿º string2 ó
  682.          string1. àß½¿ i í«½∞ΦÑ ¿½¿ αáó¡«  ¡π½ε,  Γ«  string2[i]  »α¿ßóá¿-
  683.          óáÑΓß∩ ¿¡ñѬߡ«⌐ »ÑαѼѡ¡«⌐ string1[i] ¿ i ñѬαÑ¼Ñ¡Γ¿απÑΓß∩. è«ú-
  684.          ñá  i  ßΓá¡«ó¿Γß∩  ¼Ñ¡∞ΦÑ  ¡π½∩,Γ« óδ»«½¡Ñ¡¿Ñ «»ÑαáΓ«αá while ºá-
  685.          óÑαΦáÑΓß∩.
  686.                 
  687.                 
  688.                                        
  689.                                     7. öôìèûêê
  690.                      
  691.                
  692.                7.1. éóÑñÑ¡¿Ñ
  693.                 
  694.                öπ¡¬µ¿∩  -  φΓ«  ¡Ñºáó¿ß¿¼á∩  ß«ó«¬π»¡«ßΓ∞   «í"∩ó½Ñ¡¿⌐   ¿
  695.          «»ÑαáΓ«α«ó,  «íδτ¡«  »αÑñ¡áº¡áτÑ¡¡á∩  ñ½∩ óδ»«½¡Ñ¡¿∩ «»αÑñѽѡ¡«⌐
  696.          ºáñáτ¿. Åα«úαá¼¼δ ¡á æ¿ ß«ßΓ«∩Γ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ¿º «ñ¡«⌐  Σπ¡¬µ¿¿
  697.          main,  ¡« ¼«úπΓ ß«ñÑαªáΓ∞ ¿ í«½∞ΦÑ Σπ¡¬µ¿⌐. é »«ñαáºñѽáσ ñá¡¡«ú«
  698.          αáºñѽᠫ»¿ßδóáÑΓß∩ ¬á¬ «»αÑñѽ∩Γ∞, «í"∩ó½∩Γ∞ ¿ óδºδóáΓ∞  Σπ¡¬µ¿¿
  699.          æ¿.
  700.                Ä»αÑñѽѡ¿Ñ   Σπ¡¬µ¿¿   ß»Ñµ¿Σ¿µ¿απÑΓ   ¿¼∩   Σπ¡¬µ¿¿,   ÑÑ
  701.          Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ, «í"∩ó½Ñ¡¿∩ ¿ «»ÑαáΓ«αδ, ¬«Γ«αδÑ  «»αÑñѽ∩εΓ
  702.          ÑÑ  ñÑ⌐ßΓó¿∩.  é  «»αÑñѽѡ¿¿  Σπ¡¬µ¿¿ ¼«ªÑΓ íδΓ∞ ºáñá¡ Γá¬ªÑ Γ¿»
  703.          ó«ºóαáΓá ¿ ÑÑ ¬½áßß »á¼∩Γ¿.
  704.                é «í"∩ó½Ñ¡¿¿ ºáñáÑΓß∩ ¿¼∩,  Γ¿»  ó«ºóαáΓá  ¿  ¬½áßß  »á¼∩Γ¿
  705.          Σπ¡¬µ¿¿,   τ∞Ñ  ∩ó¡«Ñ  «»αÑñѽѡ¿Ñ  »α«¿ºóÑñÑ¡«  ó  ñαπú«⌐  τáßΓ¿
  706.          »α«úαá¼¼δ. é «í"∩ó½Ñ¡¿¿ Σπ¡¬µ¿¿ ¼«úπΓ íδΓ∞ ΓᬪѠ ß»Ñµ¿Σ¿µ¿α«óá¡δ
  707.          τ¿ß½«  ¿ Γ¿»δ áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿¿. ¥Γ« »«ºó«½∩ÑΓ ¬«¼»¿½∩Γ«απ ßαáó-
  708.  
  709.                                       - 108 -
  710.            
  711.            
  712.          ¡¿Γ∞  Γ¿»δ  ñÑ⌐ßΓó¿Γѽ∞¡δσ  áαúπ¼Ñ¡Γ«ó  ¿  Σ«α¼á½∞¡δσ  »áαá¼ÑΓα«ó
  713.          Σπ¡¬µ¿¿.  Äí"∩ó½Ñ¡¿∩ ¡Ñ «í∩ºáΓѽ∞¡δ ñ½∩ Σπ¡¬µ¿⌐, ó«ºóαáΘáεΘ¿σ óÑ-
  714.          ½¿τ¿¡δ Γ¿»á int. ùΓ«íδ «íÑß»Ñτ¿Γ∞ ¬«ααÑ¬Γ¡«Ñ «íαáΘÑ¡¿Ñ »α¿ ñαπú¿σ
  715.          Γ¿»áσ ó«ºóαáΓ«ó, ¡Ñ«íσ«ñ¿¼« «í"∩ó¿Γ∞ Σπ¡¬µ¿ε »ÑαÑñ ÑÑ ó맮ó«¼.
  716.                é맮ó Σπ¡¬µ¿¿ »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ ¿º óδºδóáεΘÑ⌐  Σπ¡¬µ¿¿  ¬
  717.          óδºóá¡¡«⌐. äÑ⌐ßΓó¿Γѽ∞¡δÑ áαúπ¼Ñ¡Γδ, Ñß½¿ «¡¿ ÑßΓ∞, »ÑαÑñáεΓß∩ »«
  718.          º¡áτÑ¡¿ε  ó  óδºóá¡¡πε Σπ¡¬µ¿ε. Åα¿ óδ»«½¡Ñ¡¿¿ «»ÑαáΓ«αá return ó
  719.          óδºδóá¡¡«⌐ Σπ¡¬µ¿¿  π»αáó½Ñ¡¿Ñ  ¿,  ó«º¼«ª¡«,  º¡áτÑ¡¿Ñ  ó«ºóαáΓá
  720.          »ÑαÑñáεΓß∩ ó óδºδóáεΘπε Σπ¡¬µ¿ε.
  721.                 
  722.                 
  723.                7.2. Ä»αÑñѽѡ¿Ñ Σπ¡¬µ¿¿
  724.                 
  725.                Ä»αÑñѽѡ¿Ñ Σπ¡¬µ¿¿ ß»Ñµ¿Σ¿µ¿απÑΓ ¿¼∩, Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ
  726.          ¿  Γѽ«  Σπ¡¬µ¿¿. Ä¡« ¼«ªÑΓ ΓᬪѠ«»αÑñѽ∩Γ∞ Γ¿» ó«ºóαáΓá ¿ ¬½áßß
  727.          »á¼∩Γ¿ Σπ¡¬µ¿¿. æ¿¡Γá¬ß¿ß «»αÑñѽѡ¿∩ Σπ¡¬µ¿¿ ß½ÑñπεΘ¿⌐:
  728.                 
  729.                [<sc-specifier>][<type-specifier>]<declarator>
  730.                                 ([<parameter-list>])
  731.                                 [<parameter-declarations>]
  732.                                 <function-body>
  733.                 
  734.                æ»Ñµ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿ <sc-specifier> ºáñáÑΓ ¬½áßß  »á-
  735.          ¼∩Γ¿  Σπ¡¬µ¿¿, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ ¿½¿ static ¿½¿ extern. æ»Ñµ¿Σ¿-
  736.          ¬áΓ«α Γ¿»á <type-specifier> ¿ ñѬ½áαáΓ«α <declaration>  ß»Ñµ¿Σµ¿-
  737.          απεΓ    Γ¿»   ó«ºóαáΓá   ¿   ¿¼∩   Σπ¡¬µ¿¿.   æ»¿ß«¬   »áαá¼ÑΓα«ó
  738.          <parameter-list> - φΓ« ß»¿ß«¬ (󫺼«ª¡« »πßΓ«⌐) Σ«α¼á½∞¡δσ  »áαá-
  739.          ¼ÑΓα«ó,  ¬«Γ«αδÑ  ¿ß»«½∞ºπεΓß∩  Σπ¡¬µ¿Ñ⌐.  Äí"∩ó½Ñ¡¿∩  »áαá¼ÑΓα«ó
  740.          <parameter-declarations> ºáñáεΓ Γ¿»δ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó.  ÆÑ½«
  741.          Σπ¡¬µ¿¿  <function-body>  -  φΓ«  ß«ßΓáó¡«⌐  «»ÑαáΓ«α, ß«ñÑαªáΘ¿⌐
  742.          «í"∩ó½Ñ¡¿∩ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ ¿ «»ÑαáΓ«αδ. é ß½ÑñπεΘ¿σ αáºñѽáσ
  743.          ñÑΓá½∞¡« «»¿ßδóáεΓß∩ ß«ßΓáó¡δÑ τáßΓ¿ «»αÑñѽѡ¿∩ Σπ¡¬µ¿¿.
  744.                
  745.                
  746.                7.2.1. è½áßß »á¼∩Γ¿
  747.                 
  748.                æ»Ñµ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿ ó «»αÑñѽѡ¿¿ Σπ¡¬µ¿¿ «»αÑñѽ∩ÑΓ
  749.          Σπ¡¬µ¿ε  ¬á¬  static  ¿½¿ extern. öπ¡¬µ¿∩ ß ¬½áßß«¼ »á¼∩Γ¿ static
  750.          ó¿ñ¿¼á Γ«½∞¬« ó Γ«¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ, ó ¬«Γ«α«¼ «¡á «»αÑñѽѡá. éßÑ
  751.          ñαπú¿Ñ Σπ¡¬µ¿¿ ß ¬½áßß«¼ »á¼∩Γ¿ extern, ºáñá¡¡δ¼ ∩ó¡« ¿½¿ ¡Ñ∩ó¡«,
  752.          ó¿ñ¿¼δ ó« óßÑσ ¿ßσ«ñ¡δσ Σá⌐½áσ, ¬«Γ«αδÑ «íαáºπεΓ »α«úαá¼¼π.
  753.                àß½¿ ß»Ñµ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿  «»π߬áÑΓß∩  ó  «»αÑñѽѡ¿¿
  754.          Σπ¡¬µ¿¿,  Γ«  »«ñαáºπ¼ÑóáÑΓß∩  ¬½áßß  »á¼∩Γ¿ extern. æ»Ñµ¿Σ¿¬áΓ«α
  755.          ¬½áßßá »á¼∩Γ¿ extern ¼«ªÑΓ íδΓ∞ ∩ó¡« ºáñá¡ ó «»αÑñѽѡ¿¿ Σπ¡¬µ¿¿,
  756.          ¡« φΓ«ú« ¡Ñ ΓαÑíπÑΓß∩.
  757.                æ»Ñµ¿Σ¿¬áΓ«α  ¬½áßßá »á¼∩Γ¿ ΓαÑíπÑΓß∩ »α¿ «»αÑñѽѡ¿¿ Σπ¡¬-
  758.          µ¿¿ Γ«½∞¬« ó «ñ¡«¼ ß½πτáÑ, ¬«úñá Σπ¡¬µ¿∩ «í"∩ó½∩ÑΓß∩ úñÑ-¡¿íπñ∞ ó
  759.          ñαπú«¼ ¼ÑßΓÑ ó Γ«¼ ªÑ ßἫ¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ ß ß»Ñµ¿Σ¿¬áΓ«α«¼ ¬½áß-
  760.          ßá »á¼∩Γ¿ static. æ»Ñµ¿Σ¿¬áΓ«α ¬½áßßá »á¼∩Γ¿  static  ¼«ªÑΓ  íδΓ∞
  761.          ΓᬪѠ ¿ß»«½∞º«óá¡,  ¬«úñá  «»αÑñѽ∩Ѽá∩  Σπ¡¬µ¿∩  »αÑñóáα¿Γѽ∞¡«
  762.          «í"∩ó½Ñ¡á ó Γ«¼ ªÑ ßἫ¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ íѺ ß»Ñµ¿Σ¿¬áΓ«αá  ¬½áßßá
  763.          »á¼∩Γ¿. èᬠ»αá󿽫, Σπ¡¬µ¿∩, «í"∩ó½Ñ¡¡á∩ íѺ ß»Ñµ¿Σ¿¬áΓ«αá ¬½áß-
  764.          ßá  »á¼∩Γ¿,  »«ñαáºπ¼ÑóáÑΓ ¬½áßß extern. Äñ¡á¬«, Ñß½¿ «»αÑñѽѡ¿Ñ
  765.          Σπ¡¬µ¿¿ ∩󡫠߻ѵ¿Σ¿µ¿απÑΓ ¬½áßß static, Γ« Σπ¡¬µ¿¿ ñáÑΓß∩  ¬½áßß
  766.          static.
  767.  
  768.                                       - 109 -
  769.            
  770.            
  771.                
  772.                
  773.                7.2.2. Æ¿» ó«ºóαáΓá
  774.                 
  775.                Æ¿» ó«ºóαáΓá Σπ¡¬µ¿¿ «»αÑñѽ∩ÑΓ αẼÑα ¿ Γ¿»  ó«ºóαáΘáѼ«ú«
  776.          º¡áτÑ¡¿∩. Äí"∩ó½Ñ¡¿Ñ Γ¿»á ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ß¿¡Γá¬ß¿ß:
  777.                 
  778.                [<type-specifier>] <declarator>,
  779.                 
  780.                úñÑ  ß»Ñµ¿Σ¿¬áΓ«α Γ¿»á <type-specifier> ó¼ÑßΓÑ ß ñѬ½áαáΓ«-
  781.          α«¼ <declarator> «»αÑñѽ∩ÑΓ Γ¿»  ó«ºóαáΓá  ¿  ¿¼∩  Σπ¡¬µ¿¿.  àß½¿
  782.          <type-specifier>  ¡Ñ  ºáñá¡, Γ« »«ñαáºπ¼ÑóáÑΓß∩, τΓ« Γ¿» ó«ºóαáΓá
  783.          int. æ»Ñµ¿Σ¿¬áΓ«α Γ¿»á ¼«ªÑΓ ß»Ñµ¿Σ¿µ¿α«óáΓ∞ «ß¡«ó¡«⌐,  ßΓαπ¬Γπα-
  784.          ¡δ⌐ ¿ ß«ó¼ÑΘáεΘ¿⌐ Γ¿»δ. äѬ½áαáΓ«α ß«ßΓ«¿Γ ¿º ¿ñÑ¡Γ¿Σ¿¬áΓ«αá Σπ¡-
  785.          ¬µ¿¿, ó«º¼«ª¡« ¼«ñ¿Σ¿µ¿α«óá¡¡«ú« ß µÑ½∞ε «í"∩ó½Ñ¡¿∩ áñαÑß¡«ú« Γ¿-
  786.          »á.  öπ¡¬µ¿¿ ¡Ñ ¼«úπΓ ó«ºóαáΘáΓ∞ ¼áßß¿ó«ó ¿½¿ Σπ¡¬µ¿⌐, ¡« «¡¿ ¼«-
  787.          úπΓ ó«ºóαáΘáΓ∞ π¬áºáΓѽ¿ ¡á ½εí«⌐ Γ¿», ó¬½ετá∩ ¼áßß¿óδ ¿ Σπ¡¬µ¿¿.
  788.          Æ¿» ó«ºóαáΓá, ºáñáóáѼδ⌐ ó «»αÑñѽѡ¿¿ Σπ¡¬µ¿¿, ñ«½ªÑ¡ ß««ΓóÑΓßΓ-
  789.          ó«óáΓ∞ Γ¿»á¼ ó«ºóαáΓ«ó, ºáñá¡¡δσ ó «í"∩ó½Ñ¡¿∩σ φΓ«⌐ Σπ¡¬µ¿¿, ßñÑ-
  790.          ½á¡¡δσ úñÑ-Γ« ó »α«úαá¼¼Ñ. öπ¡¬µ¿¿ ß Γ¿»«¼ ó«ºóαáΓá int ¼«úπΓ  ¡Ñ
  791.          «í"∩ó½∩Γ∞ß∩  »ÑαÑñ ó맮ó«¼. öπ¡¬µ¿¿ ß ñαπú¿¼¿ Γ¿»á¼¿ ó«ºóαáΓ«ó ¡Ñ
  792.          ¼«úπΓ íδΓ∞ óδºóá¡δ »αѪñÑ, τѼ «¡¿ íπñπΓ «»αÑñÑ½Ñ¡δ ¿½¿  «í"∩ó½Ñ-
  793.          ¡δ.
  794.                Æ¿»  º¡áτÑ¡¿∩  ó«ºóαáΓá  Σπ¡¬µ¿¿ ¿ß»«½∞ºπÑΓß∩ Γ«½∞¬« Γ«úñá,
  795.          ¬«úñá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ  óδαáíáΓδóáÑΓß∩,  Ñß½¿
  796.          óδ»«½¡∩ÑΓß∩  «»ÑαáΓ«α return, ß«ñÑαªáΘ¿⌐ óδαáªÑ¡¿Ñ. éδαáªÑ¡¿Ñ óδ-
  797.          τ¿ß½∩ÑΓß∩, »αÑ«íαáºπÑΓß∩ ¬ Γ¿»π ó«ºóαáΓá, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«,  ¿
  798.          ó«ºóαáΘáÑΓß∩  ó Γ«τ¬π ó맮óá. àß½¿ «»ÑαáΓ«α return ¡Ñ óδ»«½¡∩ÑΓß∩
  799.          ¿½¿ Ñß½¿ óδ»«½¡∩Ѽδ⌐ «»ÑαáΓ«α return ¡Ñ  ß«ñÑαª¿Γ  óδαáªÑ¡¿∩,  Γ«
  800.          º¡áτÑ¡¿Ñ ó«ºóαáΓá Σπ¡¬µ¿¿ ¡Ñ «»αÑñѽѡ«. àß½¿ ó φΓ«¼ ß½πτáÑ óδºδ-
  801.          óáεΘá∩  Σπ¡¬µ¿∩ «ª¿ñáÑΓ º¡áτÑ¡¿Ñ ó«ºóαáΓá, Γ« »«óÑñÑ¡¿Ñ »α«úαá¼¼δ
  802.          ΓᬪѠ¡Ñ «»αÑñѽѡ«.
  803.                 
  804.                Åα¿¼Ñαδ
  805.                /*.....* example 1 *.....*/
  806.                      /* return type is int */
  807.                static add (x,y)
  808.                int x,y
  809.                {
  810.                     return (x+y);
  811.                 }
  812.                 
  813.                /*.....* example 2 *.....*/
  814.                typedef struct {
  815.                     char name [20];
  816.                     int id;
  817.                     long class;
  818.                } STUDENT
  819.                     /* return type is STUDENT */
  820.                     STUDENT sortstu (a,b)
  821.                     STUDENT a,b;
  822.                {
  823.                     return ((a.id<b.id)? a:b);
  824.                }
  825.                     /* return type is char pointer */
  826.  
  827.                                       - 110 -
  828.            
  829.            
  830.                 char *smallstr (s1,s2)
  831.                 char s1 [], s2 [];
  832.                {
  833.                     int i;
  834.                     i = 0;
  835.                     while (s1[i]!='\0'&&s2[i]!='\0')
  836.                         i++;
  837.                     if (s1[i]=='\0'')
  838.                         return (s1);
  839.                                      
  840.                    else
  841.                         return (s2);
  842.                }
  843.                 
  844.                é »Ñαó«¼ »α¿¼ÑαÑ »«  π¼«½τá¡¿ε  Γ¿»  ó«ºóαáΓá  Σπ¡¬µ¿¿  add
  845.          «»αÑñѽѡ  ¬á¬  int.  öπ¡¬µ¿∩  ¿¼ÑÑΓ ¬½áßß »á¼∩Γ¿ static. ¥Γ« «º-
  846.          ¡áτáÑΓ, τΓ« Σ¡¬µ¿∩ ¼«ªÑΓ íδΓ∞ óδºóá¡á Γ«½∞¬«  Σπ¡¬µ¿∩¼¿  Γ«ú«  ªÑ
  847.          ßἫú« ¿ßσ«ñ¡«ú« Σá⌐½á.
  848.                é«  óΓ«α«¼ »α¿¼ÑαÑ »«ßαÑñßΓó«¼ «í"∩ó½Ñ¡¿∩ typedef «»αÑñѽѡ
  849.          ßΓαπ¬Γπα¡δ⌐ Γ¿» STUDENT. äá½ÑÑ «»αÑñѽѡá Σπ¡¬µ¿∩ sortstu ß Γ¿»«¼
  850.          ó«ºóαáΓá STUDENT. öπ¡¬µ¿∩ óδí¿αáÑΓ  ¿  ó«ºóαáΘáÑΓ  «ñ¿¡  ¿º  ñóπσ
  851.          ßΓαπ¬Γπα¡δσ áαúπ¼Ñ¡Γ«ó.
  852.                é ΓαÑΓ∞Ѽ »α¿¼ÑαÑ «»αÑñѽѡá Σπ¡¬µ¿∩, ó«ºóαáΘáεΘá∩ π¬ºáΓѽ∞
  853.          ¡á  ¼áßß¿ó  ß¿¼ó«½«ó. öπ¡¬µ¿∩ »α¿¡¿¼áÑΓ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γ«ó ñóá
  854.          ß¿¼ó«½∞¡δσ ¼áßß¿óá  (ßΓ᫬¿)  ¿  ó«ºóαáΘáÑΓ  π¬áºáΓѽ∞  ¡á  í«½ÑÑ
  855.          ¬«α«Γ¬πε ßΓ᫬π. ô¬áºáΓѽ∞ ¡á ¼áßß¿ó áñαÑßπÑΓ φ½Ñ¼Ñ¡Γδ Γ¿»á char.
  856.          Æá¬¿¼ «íαẫ¼, Γ¿» ó«ºóαáΓá Σπ¡¬µ¿¿ íπñÑΓ π¬áºáΓѽѼ ¡á char.
  857.                
  858.                
  859.                7.2.3. ö«α¼á½∞¡δÑ »áαá¼ÑΓαδ
  860.                 
  861.                ö«α¼á½∞¡δÑ  »áαá¼ÑΓαδ  -  φΓ« »ÑαѼѡ¡δÑ, ¬«Γ«αδÑ »α¿¡¿¼áεΓ
  862.          º¡áτÑ¡¿∩,   »ÑαÑñá¡¡δÑ   Σπ¡¬µ¿¿   «Γ   Σπ¡¬µ¿«¡á½∞¡«ú«   ó맮óá.
  863.          ö«α¼á½∞¡δÑ  »áαá¼ÑΓαδ  «í"∩ó½∩εΓß∩  ó  ß»¿ß¬Ñ »áαá¼ÑΓα«ó ó ¡áτá½Ñ
  864.          «»¿ßá¡¿∩ Σπ¡¬µ¿¿. æ»¿ß«¬ »áαá¼ÑΓα«ó «»αÑñѽ∩ÑΓ ¿¼Ñ¡á »áαá¼ÑΓα«ó ¿
  865.          »«α∩ñ«¬, ó ¬«Γ«α«¼ «¡¿ »α¿¡¿¼áεΓ º¡áτÑ¡¿∩ »α¿ ó맮óÑ Σπ¡¬µ¿¿.
  866.                æ»¿ß«¬   »áαá¼ÑΓα«ó   ß«ßΓ«¿Γ    ¿º    ¡π½∩    ¿½¿    í«½ÑÑ
  867.          ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó,   αáºñѽѡ¡δσ   ºá»∩Γ«⌐.   æ»¿ß«¬   ñ«½ªÑ¡  íδΓ∞
  868.          «úαá¡¿τÑ¡ ¬απú½δ¼¿ ß¬«í¬á¼¿ ñáªÑ ó ß½πτáÑ, ¬«úñá «¡ »πßΓ.
  869.                Å«ß½Ñ »«ß½Ññ¡Ñú« ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ó ß»¿ß¬Ñ  »áαá¼ÑΓα«ó  ¼«ªÑΓ
  870.          »«∩ó¿Γ∞ß∩ ºá»∩Γá∩ ß »«ß½ÑñπεΘ¿¼ ¼¡«ú«Γ«τ¿Ñ¼ (,...), φΓ« «º¡áτáÑΓ,
  871.          τΓ«  τ¿ß½«  áαúπ¼Ñ¡Γ«ó  Σπ¡¬µ¿¿ »ÑαѼѡ¡«. Äñ¡á¬« »αÑñ»«½áúáÑΓß∩,
  872.          τΓ« Σπ¡¬µ¿∩ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ  ¿¼ÑÑΓ  ßΓ«½∞¬«  áαúπ¼Ñ¡Γ«ó,  ß¬«½∞¬«
  873.          ß½ÑñπÑΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó »ÑαÑñ »«ß½Ññ¡Ñ⌐ ºá»∩Γ«⌐.
  874.                æ»¿ß«¬ »áαá¼ÑΓα«ó ¼«ªÑΓ ß«ßΓ«∩Γ∞ Γ«½∞¬« ¿º ¼¡«ú«Γ«τ¿∩ (...)
  875.          ¿  ¡Ñ  ß«ñÑαªáΓ∞  ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó.  ¥Γ«   «º¡áτáÑΓ,   τΓ«   τ¿ß½«
  876.          »áαá¼ÑΓα«ó Σπ¡¬µ¿¿ »ÑαѼѡ¡« ¿ ¼«ªÑΓ íδΓ∞ αáó¡δ¼ ¡π½ε.
  877.                 
  878.                çá¼Ñτá¡¿Ñ:
  879.                ùΓ«íδ  »«ññÑαªáΓ∞  ß«ó¼ÑßΓ¿¼«ßΓ∞  ß  »α«úαἼἿ »αÑñδñπΘ¿σ
  880.          óÑαß¿⌐, ¬«¼»¿½∩Γ«α ñ«»π߬áÑΓ ß¿¼ó«½ ºá»∩Γ«⌐ íѺ ¼¡«ú«Γ«τ¿∩ ó ¬«¡-
  881.          µÑ ß»¿ß¬á »áαá¼ÑΓα«ó ñ½∩ «í«º¡áτÑ¡¿∩ ¿σ »ÑαѼѡ¡«ú« τ¿ß½á.  çá»∩-
  882.          Γá∩  ¼«ªÑΓ  íδΓ∞ ¿ß»«½∞º«óá¡á ¿ ó¼ÑßΓ« ¼¡«ú«Γ«τ¿∩, τΓ«íδ ºá»¿ßáΓ∞
  883.          ß»¿ß«¬ »áαá¼ÑΓα«ó Σπ¡¬µ¿¿, »α¿¡¿¼áεΘÑ⌐ ¡π½∞ ¿½¿ í«½ÑÑ áαúπ¼Ñ¡Γ«ó.
  884.          êß»«½∞º«óá¡¿Ñ ºá»∩Γ«⌐ »«ññÑনóáÑΓß∩ Γ«½∞¬« ñ½∩  ß«ó  ¼ÑßΓ¿¼«ßΓ¿.
  885.  
  886.                                       - 111 -
  887.            
  888.            
  889.          êß»«½∞º«óá¡¿Ñ ¼¡«ú«Γ«τ¿∩ αѬ«¼Ñ¡ñπÑΓß∩ ñ½∩ ¡«ó«ú« »αÑñßΓáó½Ñ¡¿∩.
  890.                 
  891.                Äí"∩ó½Ñ¡¿∩  »áαá¼ÑΓα«ó «»αÑñѽ∩εΓ Γ¿» ¿ αẼÑα óѽ¿τ¿¡, ºá-
  892.          »«¼¿¡áѼδσ ó Σ«α¼á½∞¡δσ »áαá¼ÑΓαáσ. ¥Γ¿ «í"∩ó½Ñ¡¿∩ ¿¼ÑεΓ  Γ«Γ  ªÑ
  893.          ßá¼δ⌐  ß¿¡Γá¬ß¿ß,  ¬á¬ ¿ ñαπú¿Ñ «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡δσ (ß¼. αáºñѽ
  894.          4.4.). ö«α¼á½∞¡δÑ »Ñαá¼ÑΓαδ ¼«úπΓ íδΓ∞  «ß¡«ó¡«ú«,  ßΓαπ¬Γπα¡«ú«,
  895.          ß«ó¼ÑΘáεΘÑú«, áñαÑß¡«ú« Γ¿»«ó ¿½¿ Γ¿»á ¼áßß¿ó.
  896.                Åáαá¼ÑΓαδ ¼«úπΓ ¿¼ÑΓ∞ Γ«½∞¬« ¬½áßßδ »á¼∩Γ¿ auto ¿ register.
  897.          àß½¿ ¬½áßß »á¼∩Γ¿ ¡Ñ ºáñá¡, Γ« »«ñαáºπ¼ÑóáÑΓß∩ ¬½áßß »á¼∩Γ¿ auto.
  898.          àß½¿ Σ«α¼á½∞¡δ⌐ »áαá¼ÑΓα »αÑñßΓáó½Ñ¡ ó ß»¿ß¬Ñ »áαá¼ÑΓα«ó,  ¡«  ¡Ñ
  899.          «í"∩ó½Ñ¡,   Γ«   »αÑñ»«½áúáÑΓß∩,  τΓ«  »áαá¼ÑΓα  ¿¼ÑÑΓ  Γ¿»  int.
  900.          ö«α¼á½∞¡δÑ »áαá¼ÑΓαδ ¼«úπΓ íδΓ∞ «í"∩ó½Ñ¡δ ó ½εí«¼ »«α∩ñ¬Ñ.
  901.                êñÑ¡Γ¿Σ¿¬áΓ«αδ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó  ¿ß»«½∞ºπεΓß∩  ó  ΓѽÑ
  902.          Σπ¡¬µ¿¿  ó  ¬áτÑßΓóÑ ßß佫¬ ¡á óѽ¿τ¿¡δ »ÑαÑñáóáѼδÑ Σπ¡¬µ¿¿. ¥Γ¿
  903.          ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ  ¡Ñ  ¼«úπΓ  íδΓ∞  ¿ß»«½∞º«óá¡δ   ñ½∩   »ÑαѼѡ¡δσ,
  904.          «í"∩ó½∩Ѽδσ ó¡πΓα¿ Γѽá Σπ¡¬µ¿¿.
  905.                èᬠ  Σ«α¼á½∞¡δ⌐   »áαá¼ÑΓα   ¼«ªÑΓ  íδΓ∞  «í"∩ó½Ñ¡  Γ«½∞¬«
  906.          ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ¬«Γ«αδ⌐  »αÑñßΓáó½Ñ¡  ó  ß»¿ß¬Ñ  »áαá¼ÑΓα«ó.  àß½¿
  907.          Σπ¡¬µ¿∩   ¿¼ÑÑΓ   »ÑαѼѡ¡«Ñ  τ¿ß½«  áαúπ¼Ñ¡Γ«ó,  Γ«  »α«úαá¼¼¿ßΓ
  908.          «ΓóÑτáÑΓ ¿ ºá «»αÑñѽѡ¿Ñ ¿σ τ¿ß½á ¿ ºá  »«½πτÑ¡¿Ñ  ¿σ  ¿º  ßΓѬá
  909.          ó¡πΓα¿  Γѽá Σπ¡¬µ¿¿. æ¼«Γα¿ΓÑ ß¿ßΓѼ¡πε ñ«¬π¼Ñ¡Γáµ¿ε « ¼á¬α«ßáσ,
  910.          ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ, τΓ«íδ «íÑß»Ñτ¿Γ∞ »ÑαÑ¡«ß¿¼«ßΓ∞ ó
  911.          φΓ«¼ ß½πτáÑ.
  912.                Æ¿» ¬áªñ«ú« Σ«α¼á½∞¡«ú«  »áαá¼ÑΓαá  ñ«½ªÑ¡  ß««ΓóÑΓßΓó«óáΓ∞
  913.          Γ¿»π  Σá¬Γ¿τÑ߬«ú«  áαúπ¼Ñ¡Γá ¿ Γ¿»π ß««ΓóÑΓßΓóπεΘÑú« áαúπ¼Ñ¡Γá ó
  914.          ß»¿ß¬Ñ Γ¿»«ó áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿¿, Ñß½¿ Γᬫ⌐ ß»¿ß«¬ ¿¼ÑÑΓß∩.  àß½¿
  915.          ΓαÑíπÑΓß∩, ¬«¼»¿½∩Γ«α óδ»«½¡∩ÑΓ «íδτ¡δÑ áα¿Σ¼ÑΓ¿τÑ߬¿Ñ »αÑ«íαẫ-
  916.          óá¡¿∩  ñ½∩  ¬áªñ«ú«  Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá ¿ ¬áªñ«ú« Σá¬Γ¿τÑ߬«ú«
  917.          áαúπ¼Ñ¡ΓᠡѺáó¿ß¿¼«.
  918.                Å«ß½Ñ »αÑ«íαẫóá¡¿∩  ¡ÑΓ  Σ«α¼á½∞¡«ú«  »áαá¼ÑΓαá,  ¬«Γ«αδ⌐
  919.          ¬«α«τÑ  τѼ  int,  ¿ ¡ÑΓ Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá, ¬«Γ«αδ⌐ ¿¼ÑÑΓ Γ¿»
  920.          float. ¥Γ« «º¡áτáÑΓ, ¡á»α¿¼Ñα, τΓ« «í"∩ó¿Γ∞  Σ«α¼á½∞¡δ⌐  »áαá¼ÑΓα
  921.          ¬á¬ char óßÑ αáó¡«, τΓ« «í"∩ó¿Γ∞ Ñú« ¬á¬ int.
  922.                àß½¿  αÑ὿º«óá¡δ  ¬½ετÑóδÑ  ß½«óá near, far, huge, Γ« ¬«¼-
  923.          »¿½∩Γ«α ΓᬪѠ ¼«ªÑΓ  »α«óÑßΓ¿  »αÑ«íαẫóá¡¿Ñ  ½εí«ú«  áñαÑß¡«ú«
  924.          áαúπ¼Ñ¡Γá ¬ Σπ¡¬µ¿¿. ÅαÑ«íαẫóá¡¿∩ »α«¿ºó«ñ∩Γß∩ ó ºáó¿ß¿¼«ßΓ¿ «Γ
  925.          π¼á½τ¿óáѼ«ú«  αẼÑαá  π¬áºáΓѽÑ⌐  ó  »α«úαἼѠ¿ «Γ ¡á½¿τ¿∩ ¿½¿
  926.          «ΓßπΓßΓó¿∩ ß»¿ß¬á Γ¿»«ó áαúπ¼Ñ¡Γ«ó  Σπ¡¬µ¿¿.  æ¼«Γα¿ΓÑ  ß¿ßΓѼ¡πε
  927.          ñ«¬π¼Ñ¡Γᵿε,  τΓ«íδ »«½πτ¿Γ∞ í«½ÑÑ »«½¡πε ¿¡Σ«α¼áµ¿ε «í áñαÑß¡δσ
  928.          »αÑ«íαẫóá¡¿∩σ.
  929.                ÅαÑ«íαẫóá¡¡δ⌐ Γ¿» ¬áªñ«ú« Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá «»αÑñѽ∩-
  930.          ÑΓ  ¬á¬  ¿¡ΓÑα»αÑΓ¿απεΓß∩ áαúπ¼Ñ¡Γδ, αẼÑΘÑ¡¡δÑ ó ßΓѬÑ. ìÑß««Γ-
  931.          óÑΓßΓó¿Ñ Γ¿»«ó Σá¬Γ¿τÑ߬¿σ ¿  Σ«α¼á½∞¡δσ  »áαá¼ÑΓα«ó  ¼«ªÑΓ  íδΓ∞
  932.          »α¿τ¿¡«⌐ ¡ÑóÑα¡«⌐ ¿¡ΓÑα»αÑΓᵿ¿.
  933.          
  934.                ìá»α¿¼Ñα,  Ñß½¿  16-Γ¿  í¿Γ«óδ⌐  π¬áºáΓѽ∞  »ÑαÑñáÑΓß∩  ¬á¬
  935.          ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ áαúπ¼Ñ¡Γ,  á  «í"∩ó½Ñ¡  Σ«α¼á½∞¡δ⌐  »áαá¼ÑΓα  Γ¿»á
  936.          long,  Γ« »ÑαóδÑ 32 í¿Γá ßΓÑ¬á »α«¿¡ΓÑα»αÑΓ¿απεΓß∩ ¬á¬ Σ«α¼á½∞¡δ⌐
  937.          »áαá¼ÑΓα. ¥Γá «Φ¿í¬á ß«ºñáÑΓ  »α«í½Ñ¼δ  ¡Ñ  Γ«½∞¬«  ß  Σ«α¼á½∞¡δ¼
  938.          »áαá¼ÑΓα«¼  Γ¿»á  long,  ¡«  ¿  ß ½εí묨 Σ«α¼á½∞¡δ¼¿ »áαá¼ÑΓαἿ,
  939.          ¬«Γ«αδÑ ß½ÑñπεΓ ºá ¡¿¼. ÄΦ¿í¬¿ Γᬫú« ß«αΓá ¼«úπΓ íδΓ∞ «í¡áαπªÑ¡δ
  940.          »πΓѼ ß¿ßΓѼáΓ¿τÑ߬«ú« ¿ß»«½∞º«óá¡¿∩ ß»¿ß¬á  Γ¿»«ó  áαúπ¼Ñ¡Γ«ó  ó
  941.          «í"∩ó½Ñ¡¿∩σ Σπ¡¬µ¿¿.
  942.                 
  943.                Åα¿¼Ñα:
  944.  
  945.                                       - 112 -
  946.            
  947.            
  948.                struct student {
  949.                        char name [20];
  950.                        int id;
  951.                        long class;
  952.                        struct student *nextstu;
  953.                 } student;
  954.                 main ()
  955.                 {
  956.                       int match (struct student *, char *);
  957.                       .
  958.                       .
  959.                       .
  960.                       if (match(student.nexstu ,student.name)>0){
  961.                       {
  962.                       .
  963.                       .
  964.                       .
  965.                       }
  966.                 }
  967.                 match (r,n)
  968.                 struct student *r;
  969.                 char *n;
  970.                 {
  971.                      int i=0;
  972.                      while (r->name [i] == n[i])
  973.                             if (r->name [i++] == '\0')
  974.                                    return (r->id);
  975.                      return (0);
  976.                 }
  977.                 
  978.                 
  979.  
  980.                é   »α¿¼ÑαÑ  ß«ñÑαªáΓß∩  :  «í"∩ó½Ñ¡¿Ñ  ßΓαπ¬Γπα¡«ú«  Γ¿»á,
  981.          forward-«í"∩ó½Ñ¡¿Ñ  Σπ¡¬µ¿¿  match,  ó맮ó  match  ¿  «»αÑñѽѡ¿Ñ
  982.          Σπ¡¬µ¿¿  match.  çá¼ÑΓ¿¼, τΓ« «ñ¡« ¿ Γ« ªÑ ¿¼∩ student ¼«ªÑΓ íδΓ∞
  983.          ¿ß»«½∞º«óá¡«  íѺ  »α«Γ¿ó«αÑτ¿⌐  ñ½∩  ΓѽᠠßΓαπ¬Γπαδ   ¿   ¿¼Ñ¡¿
  984.          ßΓαπ¬Γπα¡«⌐ »ÑαѼѡ¡«⌐.
  985.                öπ¡¬µ¿∩  match  «í"∩ó½Ñ¡á ß ñóπ¼∩ áαúπ¼Ñ¡ΓἿ. ÅÑαóδ⌐ áαúπ-
  986.          ¼Ñ¡Γ - φΓ« π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ Γ¿»á student, óΓ«α«⌐ π¬áºá Γѽ∞
  987.          ¡á «í"Ñ¬Γ Γ¿»á char.
  988.                ô Σπ¡¬µ¿¿ match ñóá Σ«α¼á½∞¡δσ »áαá¼ÑΓαá z ¿ n.
  989.                Åáαá¼ÑΓα n «í"∩ó½Ñ¡ ¬á¬ π¬áºáΓѽ∞ ¡á «í"Ñ¬Γ Γ¿»á char.
  990.                öπ¡¬µ¿∩  óδºδóáÑΓß∩  ß  ñóπ¼∩  áαúπ¼Ñ¡ΓἿ.  Äíá  áαúπ¼Ñ¡Γá
  991.          ∩ó½∩εΓß∩ φ½Ñ¼Ñ¡ΓἿ »ÑαѼѡ¡«⌐ student ßΓαπ¬Γπα¡«ú« Γ¿»á student.
  992.                Å«ß¬«½∞¬π  ¿¼ÑÑΓß∩  forward-«í"∩ó½Ñ¡¿Ñ  Σπ¡¬µ¿  match, ¬«¼-
  993.          »¿½∩Γ«α »α«óÑα¿Γ ß««ΓóÑΓßΓó¿Ñ Γ¿»«ó ñÑ⌐ßΓó¿Γѽ∞¡δσ áαúπ¼Ñ¡Γ«ó  ß«
  994.          ß»¿ß¬á¼¿  Γ¿»«ó  áαúπ¼Ñ¡Γ«ó,  á ºáΓѼ ñÑ⌐ßΓó¿Γѽ∞¡δσ áαúπ¼Ñ¡Γ«ó ß
  995.          Σ«α¼á½∞¡δ¼¿ »áαá¼ÑΓαἿ.
  996.                Æá¬  ¬á¬  Γ¿»δ  ß««ΓóÑΓßΓóπεΓ,  Γ«  ó  »αÑñπ»αѪñÑ¡¿∩σ  ¿½¿
  997.          »αÑ«íαẫóá¡¿∩σ ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿.
  998.                çá¼ÑΓ¿¼,  τΓ«  ¿¼∩  ¼áßß¿óá,  ºáñá¡¡«Ñ  ó  ¬áτÑßΓóÑ óΓ«α«ú«
  999.          áαúπ¼Ñ¡Γá ó ó맮óÑ Σπ¡¬µ¿¿ »αÑ«íαáºπÑΓß∩  ¬  π¬áºáΓÑ½ε  ¡á  char.
  1000.          æ««ΓóÑΓßΓóπεΘ¿⌐  Σ«α¼á½∞¡δ⌐ »áαá¼ÑΓα ΓᬪѠ«í"∩ó½Ñ¡ ¬á¬ π¬áºáΓѽ∞
  1001.          ¡á char ¿ ¿ß»«½∞ºπÑΓß∩ ó óδαáªÑ¡¿¿ ¬á¬ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼áßß¿óá. Æá¬
  1002.          ¬á¬ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼áßß¿óá αáßß¼áΓα¿óáÑΓß∩ ¬á¬ áñαÑß¡«Ñ óδαáªÑ¡¿Ñ,
  1003.  
  1004.                                       - 113 -
  1005.            
  1006.            
  1007.          Γ« αѺπ½∞ΓáΓ «í"∩ó½Ñ¡¿∩ Σ«α¼á½∞¡«ú« »áαá¼ÑΓαᠬᬠchar  *n  íπñÑΓ
  1008.          ΓѼ ªÑ ßá¼δ¼, τΓ« ¿ char n [].
  1009.                é¡πΓα¿   Σπ¡¬µ¿¿  ½«¬á½∞¡á∩  »ÑαѼѡ¡á∩  i  «»αÑñѽ∩ÑΓß∩  ¿
  1010.          ¿ß»«½∞ºπÑΓß∩  ó  ¬áτÑßΓóÑ  ¿¡ñѬßá  ¼áßß¿óá.  öπ¡¬µ¿∩  ó«ºóαáΘáÑΓ
  1011.          ßΓαπ¬Γπα¡δ⌐  φ½Ñ¼Ñ¡Γ  id, Ñß½¿ φ½Ñ¼Ñ¡Γ ßΓαπ¬Γπαδ name ßαáó¡¿½ß∩ ß
  1012.          ¼áß߿󫼠n, ó »α«Γ¿ó¡«¼ ß½πτáÑ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡π½∞.
  1013.                
  1014.                
  1015.                7.2.4. ÆÑ½« Σπ¡¬µ¿¿
  1016.                 
  1017.                ÆÑ½« Σπ¡¬µ¿¿ - φΓ«  »α«ßΓ«  ß«ßΓáó¡«⌐  «»ÑαáΓ«α.  æ«ßΓáó¡«⌐
  1018.          «»ÑαáΓ«α ß«ñÑαª¿Γ «»ÑαáΓ«αδ, ¬«Γ«αδÑ «»αÑñѽ∩εΓ ñÑ⌐ßΓó¿∩ Σπ¡¬µ¿¿,
  1019.          ¿  ¼«ªÑΓ  ΓᬪѠ ß«ñÑαªáΓ∞  «í"∩ó½Ñ¡¿∩ »ÑαѼѡ¡δσ, ¿ß»«½∞ºπѼδσ ó
  1020.          φΓ¿σ «»ÑαáΓ«αáσ. ê¡Σ«α¼áµ¿ε « ß«ßΓáó¡δσ «»ÑαáΓ«αáσ ß¼«Γα¿ ó  αáº-
  1021.          ñѽѠ 6.3.  éßÑ »ÑαѼѡ¡δÑ, «í"∩ó½Ñ¡¡δÑ ó ΓѽѠΣπ¡¬µ¿¿, ¿¼ÑεΓ Γ¿»
  1022.          »á¼∩Γ¿ auto,  Ñß½¿  «¡¿  ¡Ñ  «í"∩ó½Ñ¡δ  ¿¡áτÑ.  è«úñá  óδºδóáÑΓß∩
  1023.          Σπ¡¬µ¿∩,  Γ« ß«ºñáÑΓß∩ »á¼∩Γ∞ ñ½∩ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ ¿ »α«¿ºó«-
  1024.          ñ¿Γß∩ ¿σ ¿¡¿µ¿á½¿ºáµ¿∩ (Ñß½¿ «¡á ºáñá¡á).  ô»αáó½Ñ¡¿Ñ  »ÑαÑñáÑΓß∩
  1025.          »Ñαó«¼π  «»ÑαáΓ«απ  ß«ßΓáó¡«ú«  «»ÑαáΓ«αá  ¿  ¡áτ¿¡áÑΓß∩  »α«µÑßß
  1026.          óδ»«½¡Ñ¡¿∩, ¬«Γ«αδ⌐ »α«ñ«½ªáÑΓß∩ ñ« ΓÑσ »«α, »«¬á  ¡Ñ  óßΓαÑΓ¿Γß∩
  1027.          «»ÑαáΓ«α  return  ¿½¿  ¬«¡Ñµ  ΓѽᠠΣπ¡¬µ¿¿.  ô»αáó½Ñ¡¿Ñ »α¿ φΓ«¼
  1028.          ó«ºóαáΘáÑΓß∩ ó Γ«τ¬π ó맮óá.
  1029.                àß½¿ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ, Γ« ñ«½ªÑ¡  íδΓ∞  óδ»«½¡Ñ¡
  1030.          «»ÑαáΓ«α  return,  ß«ñÑαªáΘ¿⌐  óδαáªÑ¡¿Ñ.  ç¡áτÑ¡¿Ñ  ó«ºóαáΓá  ¡Ñ
  1031.          «»αÑñѽѡ«, Ñß½¿ ¡Ñ óδ»«½¡Ñ¡ «»ÑαáΓ«α return ¿½¿  Ñß½¿ó  «»ÑαáΓ«α
  1032.          return ¡Ñ í佫 ó¬½ετÑ¡« óδαáªÑ¡¿Ñ.
  1033.                
  1034.                
  1035.                7.3. Äí"∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿
  1036.                 
  1037.                Äí"∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ «»αÑñѽ∩ÑΓ ¿¼∩, Γ¿» ó«ºóαáΓá ¿ ¬½áßß »á-
  1038.          ¼∩Γ¿ ñá¡¡«⌐ Σπ¡¬µ¿¿ ¿ ¼«ªÑΓ ºáñáóáΓ∞ Γ¿» ¡Ñ¬«Γ«αδσ ¿½¿ óßÑσ áαúπ-
  1039.          ¼Ñ¡Γ«ó Σπ¡¬µ¿¿. äÑΓá½∞¡«Ñ «»¿ßá¡¿Ñ ß¿¡Γá¬ß¿ßá «í"∩ó½Ñ¡¿⌐  Σπ¡¬µ¿¿
  1040.          ñá¡«  ó  αáºñѽѠ 4.  öπ¡¬µ¿¿  ¼«úπΓ  íδΓ∞ «í"∩ó½Ñ¡δ ¡Ñ∩ó¡« ¿½¿ ó
  1041.          forward-«í"∩ó½Ñ¡¿∩¼¿. Æ¿» ó«ºóαáΓá Σπ¡¬µ¿¿, «í"∩ó½Ñ¡¡δ⌐ ¿½¿ ¡Ñ∩ó-
  1042.          ¡« ¿½¿ ó forward-«í"∩ó½Ñ¡¿¿, ñ«½ªÑ¡ ß««ΓóÑΓßΓó«óáΓ∞ Γ¿»π ó«ºóαáΓá
  1043.          ó «»αÑñѽѡ¿¿ Σπ¡¬µ¿¿. ìÑ∩ó¡«Ñ «í"∩ó½Ñ¡¿Ñ ¿¼ÑÑΓ ¼ÑßΓ« óß∩¬¿⌐ αáº,
  1044.          ¬«úñá Σπ¡¬µ¿∩ óδºδóáÑΓß∩ íѺ »αÑñóáα¿Γѽ∞¡«ú« «í"∩ó½Ñ¡¿∩ ¿½¿  «»-
  1045.          αÑñѽѡ¿∩.  æ¿-¬«¼»¿½∩Γ«α  ¡Ñ∩ó¡«  «í"∩ó½∩ÑΓ óδºδóáѼπε Σπ¡¬µ¿ε ß
  1046.          Γ¿»«¼ ó«ºóαáΓá int. Å« π¼«½τá¡¿ε Σπ¡¬µ¿∩  «í"∩ó½∩ÑΓß∩  ß  ¬½áßß«¼
  1047.          »á¼∩Γ¿ extern. Ä»αÑñѽѡ¿Ñ Σπ¡¬µ¿¿ ¼«ªÑΓ »ÑαÑ«»αÑñѽ¿Γ∞ ¬½áßß »á-
  1048.          ¼∩Γ¿ ¡á static, «íÑß»Ñτ¿ó ßÑíÑ »«∩ó½Ñ¡¿Ñ ¡¿ªÑ «í"∩ó½Ñ¡¿⌐ ó Γ«¼ ªÑ
  1049.          ßἫ¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ. Forward-«í"∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ πßΓá¡áó½¿óáÑΓ ÑÑ
  1050.          áΓα¿íπΓδ,  »«ºó«½∩∩ óδºδóáΓ∞ «í"∩ó½Ñ¡¡πε Σπ¡¬µ¿ε »ÑαÑñ ÑÑ «»αÑñÑ-
  1051.          ½Ñ¡¿Ñ¼ ¿½¿ ¿º ñαπú«ú« ¿ßσ«ñ¡«ú« Σá⌐½á.
  1052.                àß½¿   ß»Ñµ¿Σ¿¬áΓ«α   ¬½áßßá   »á¼∩Γ¿   static  ºáñáÑΓß∩  ó
  1053.          forward-«í"∩ó½Ñ¡¿¿,  Γ«  Σπ¡¬µ¿∩  ¿¼ÑÑΓ  ¬½áßß  static.   Å«φΓ«¼π
  1054.          «»αÑñѽѡ¿Ñ  Σπ¡¬µ¿¿  ñ«½ª¡«  íδΓ∞  ΓᬪѠ߻ѵ¿Σ¿µ¿α«óá¡« ¬½áßß«¼
  1055.          »á¼∩Γ¿ static.
  1056.                àß½¿  ºáñá¡   ß»Ñµ¿Σ¿¬áΓ«α   ¬½áßßá   »á¼∩Γ¿   extern   ¿½¿
  1057.          ß»Ñµ¿Σ¿¬áΓ«α «»πΘÑ¡, Γ« Σπ¡¬µ¿∩ ¿¼ÑÑΓ ¬½áßß »á¼∩Γ¿ extern. Äñ¡á¬«
  1058.          «»αÑñѽѡ¿Ñ  Σπ¡¬µ¿¿ ¼«ªÑΓ »ÑαÑ«»αÑñѽ¿Γ∞ ¬½áßß »á¼∩Γ¿ ¡á static,
  1059.          «íÑß»Ñτ¿ó ßÑíÑ »«∩ó½Ñ¡¿Ñ ¡¿ªÑ «í"∩ó½Ñ¡¿⌐ ó Γ«¼ ªÑ ßἫ¼  ¿ßσ«ñ¡«¼
  1060.          Σá⌐½Ñ
  1061.                Forward-«í"∩ó½Ñ¡¿Ñ ¿¼ÑÑΓ ó᪡δÑ αẽ¿τ¡δÑ  »α¿¼Ñ¡Ñ¡¿∩.  Ä¡¿
  1062.  
  1063.                                       - 114 -
  1064.            
  1065.            
  1066.          ºáñáεΓ  Γ¿»  ó«ºóαáΓá  ñ½∩  Σπ¡¬µ¿⌐, ¬«Γ«αδÑ ó«ºóαáΘáεΓ ½εí«⌐ Γ¿»
  1067.          º¡áτÑ¡¿⌐, ºá ¿ß¬½ετÑ¡¿Ñ¼ int. (öπ¡¬µ¿¿, ¬«Γ«αδÑ ó«ºóαΘáεΓ  º¡áτÑ-
  1068.          ¡¿Ñ  int,  ¼«úπΓ ΓᬪѠ¿¼ÑΓ∞ forward-«í"∩ó½Ñ¡¿∩, ¡« ñѽáΓ∞ φΓ« ¡Ñ
  1069.          ΓαÑíπÑΓß∩).
  1070.                àß½¿ Σπ¡¬µ¿∩ ß Γ¿»«¼ ó«ºóαáΓá ¡Ñ int  óδºδóáÑΓß∩  »ÑαÑñ  ÑÑ
  1071.          «»αÑñѽѡ¿Ñ¼   ¿½¿   «í"∩ó½Ñ¡¿Ñ¼,   Γ«   αѺπ½∞ΓáΓ   ¡Ñ«»αÑñѽѡ.
  1072.          Forward-«í"∩ó½Ñ¡¿∩ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ ñ½∩ ºáñá¡¿∩ Γ¿»«ó  áα-
  1073.          úπ¼Ñ¡Γ«ó, «ª¿ñáѼδσ ó Σπ¡¬µ¿«¡á½∞¡«¼ ó맮óÑ.
  1074.                æ»¿ß«¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó  forward-«í"∩ó½Ñ¡¿∩  ºáñáÑΓ  Γ¿»  ¿
  1075.          τ¿ß½«   »αÑñ»«½áúáѼδσ   áαúπ¼Ñ¡Γ«ó.   (ù¿ß½«   áαúπ¼Ñ¡Γ«ó  ¼«ªÑΓ
  1076.          ¼Ñ¡∩Γ∞ß∩). æ»¿ß«¬ Γ¿»«ó  áαúπ¼Ñ¡Γ«ó  -  φΓ«  ß»¿ß«¬  ¿¼Ñ¡  Γ¿»«ó,
  1077.          ß««ΓóÑΓßΓóπεΘ¿σ ß»¿ß¬π óδαáªÑ¡¿⌐ ó Σπ¡¬µ¿«¡á½∞¡«¼ ó맮óÑ.
  1078.                àß½¿  ß»¿ß«¬  Γ¿»«ó áαúπ¼Ñ¡Γ«ó ¡Ñ ºáñá¡, Γ« ¡Ñ »α«¿ºó«ñ¿Γß∩
  1079.          ¬«¡Γα«½∞  Γ¿»«ó.  ìÑß««ΓóÑΓßΓó¿Ñ  Γ¿»«ó   ¼Ñªñπ   ñÑ⌐ßΓó¿Γѽ∞¡δ¼¿
  1080.          áαúπ¼Ñ¡ΓἿ  ¿  Σ«α¼á½∞¡δ¼¿ »áαá¼ÑΓαἿ αáºαÑΦÑ¡«. ü«½ÑÑ ñÑΓá½∞¡«
  1081.          ¬«¡Γα«½∞  Γ¿»«ó  αáßß¼«ΓαÑ¡  ó  αáºñѽѠ 7.4.1.   "äÑ⌐ßΓó¿Γѽ∞¡δÑ
  1082.          áαúπ¼Ñ¡Γδ".
  1083.                 
  1084.                Åα¿¼Ñα:
  1085.                 main ()
  1086.                 {
  1087.                    int a=0, b=1;
  1088.                                      
  1089.                    float x=2.0, y=3.0;
  1090.                    double realadd (double,double);
  1091.                    a=intadd (a,b);
  1092.                    x=realadd (x,y);
  1093.                 }
  1094.                 intadd (a,b)
  1095.                 int a,b;
  1096.                 {
  1097.                    return (a+b);
  1098.                 }
  1099.                 double realadd (x,y)
  1100.                 double x,y
  1101.                 {
  1102.                    return (x+y);
  1103.                 }
  1104.                 
  1105.                é  »α¿¼ÑαÑ Σπ¡¬µ¿∩ intadd «í"∩ó½Ñ¡á ¡Ñ∩ó¡« ß ó«ºóαáΓ«¼ Γ¿»á
  1106.          int, Γ.¬. «¡á óδºóá¡á »ÑαÑñ  ßó«¿¼  «»αÑñѽѡ¿Ñ¼.  è«¼»¿½∩Γ«α  ¡Ñ
  1107.          »α«óÑα¿Γ  Γ¿»δ áαúπ¼Ñ¡Γ«ó ó ó맮óÑ, Γ.¬. «ΓßπΓßΓóπÑΓ ß»¿ß«¬ Γ¿»«ó
  1108.          áαúπ¼Ñ¡Γ«ó.
  1109.                öπ¡¬µ¿∩   realadd   ó«ºóαáΘáÑΓ   º¡áτÑ¡¿Ñ   Γ¿»á    double.
  1110.          Forward-«í"∩ó½Ñ¡¿Ñ  realadd  ó  Σπ¡¬µ¿¿  main  »«ºó«½∩ÑΓ  óδºóáΓ∞
  1111.          realadd »ÑαÑñ  ÑÑ  «»αÑñѽѡ¿Ñ¼.  çá¼ÑΓ¿¼,  τΓ«  Γ¿»  ó«ºóαáΓá  ó
  1112.          «»αÑñѽѡ¿¿  (double)  ß««ΓóÑΓßΓóπÑΓ  Γ¿»π  ó«ºóαáΓá, ºáñá¡¡«¼π ó
  1113.          forward-«í"∩ó½Ñ¡¿¿. é forward-«í"∩ó½Ñ¡¿¿  ΓᬪѠ «»αÑñÑ½Ñ¡δ  Γ¿»δ
  1114.          ñóπσ  »áαá¼ÑΓα«ó  Σπ¡¬µ¿¿ realadd. Æ¿»δ ñÑ⌐ßΓó¿Γѽ∞¡δσ áαúπ¼Ñ¡Γ«ó
  1115.          ß««ΓóÑΓßΓóπεΓ  Γ¿»á¼  ºáñá¡¡δ¼  ó  forward-«í"∩ó½Ñ¡¿¿   ¿   ΓᬪÑ
  1116.          ß««ΓóÑΓßΓóπεΓ Γ¿»á¼ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó.
  1117.                  
  1118.                
  1119.                 
  1120.  
  1121.                                       - 115 -
  1122.                 
  1123.                 
  1124.                7.4. é맮óδ Σπ¡¬µ¿⌐
  1125.            
  1126.            
  1127.                é맮ó  Σπ¡¬µ¿¿ - φΓ« óδαáªÑ¡¿Ñ, ¬«Γ«α«Ñ »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ
  1128.          ¿ Σá¬Γ¿τÑ߬¿Ñ áαúπ¼Ñ¡Γδ (Ñß½¿ «¡¿ ÑßΓ∞)  Σπ¡¬µ¿¿.  é맮ó  Σπ¡¬µ¿¿
  1129.          ¿¼ÑÑΓ ß½ÑñπεΘÑÑ ß¿¡Γá¬ß¿τÑ߬«Ñ »αÑñßΓáó½Ñ¡¿Ñ:
  1130.                 
  1131.                <expression> ([<expression-list>])
  1132.                 
  1133.                éδαáªÑ¡¿Ñ  <expression> óδτ¿ß½∩ÑΓß∩ ¬á¬ áñαÑß Σπ¡¬µ¿¿. æ»¿-
  1134.          ß«¬ óδαáªÑ¡¿Ñ <expression-list>, ó ¬«Γ«α«¼ óδαáªÑ¡¿∩ ß½ÑñπεΓ  τÑ-
  1135.          αѺ ºá»∩Γπε, »αÑñßΓáó½∩ÑΓ ß»¿ß«¬ Σá¬Γ¿τÑ߬¿σ áαúπ¼Ñ¡Γ«ó, »«ßδ½áÑ-
  1136.          ¼δσ Σπ¡¬µ¿¿. æ»¿ß«¬ óδαáªÑ¡¿⌐ ¼«ªÑΓ íδΓ∞ »πßΓδ¼.
  1137.                Åα¿  óδ»«½¡Ñ¡¿¿ ó맮óá Σπ¡¬µ¿¿ »α«¿ßσ«ñ¿Γ ºá¼Ñ¡á Σ«α¼á½∞¡δσ
  1138.          áαúπ¼Ñ¡Γ«ó ¡á Σá¬Γ¿τÑ߬¿Ñ. ÅÑαÑñ ºá¼Ñ¡«⌐  ¬áªñδ⌐  ¿º  Σá¬Γ¿τÑ߬¿σ
  1139.          áαúπ¼Ñ¡Γ«ó óδτ¿ß½∩ÑΓß∩. ÅÑαóδ⌐ Σá¬Γ¿τÑ߬¿⌐ áαúπ¼Ñ¡Γ ß««ΓóÑΓßΓóπÑΓ
  1140.          »Ñαó«¼π Σ«α¼á½∞¡«¼π áαúπ¼Ñ¡Γπ, óΓ«α«⌐ - óΓ«α«¼π ¿ Γ.ñ.
  1141.                éδºóá¡¡á∩ Σπ¡¬µ¿∩ αáí«ΓáÑΓ ß ¬«»¿Ñ⌐ ñÑ⌐ßΓó¿Γѽ∞¡δσ áαúπ¼Ñ¡-
  1142.          Γ«ó,  »«φΓ«¼π  ½εí«Ñ ¿º¼Ñ¡Ñ¡¿Ñ, ßñѽᡡ«Ñ Σπ¡¬µ¿Ñ⌐ ß áαúπ¼Ñ¡ΓἿ,
  1143.          ¡Ñ «ΓαếΓß∩ ¡á «α¿ú¿¡á½∞¡δσ óѽ¿τ¿¡áσ, ß  ¬«Γ«αδσ  íδ½á  ßñѽá¡á
  1144.          ¬«»¿∩.
  1145.                ÅÑαÑñáτá  π»αáó½Ñ¡¿∩  «ßπΘÑßΓó½∩ÑΓß∩  ¡á  »Ñαóδ⌐   «»ÑαáΓ«α
  1146.          Σπ¡¬µ¿¿.  éδ»«½¡Ñ¡¿Ñ  «»ÑαáΓ«αá  return ó ΓѽѠΣπ¡¬µ¿¿ ó«ºóαáΘáÑΓ
  1147.          π»αáó½Ñ¡¿Ñ ¿, ó«º¼«ª¡«, º¡áτÑ¡¿Ñ ó«ºóαáΓá ó  óδºδóáεΘπε  Σπ¡¬µ¿ε.
  1148.          àß½¿  «»ÑαáΓ«α  return  ¡Ñ  óδ»«½¡Ñ¡,  Γ« π»αáó½Ñ¡¿Ñ ó«ºóαáΘáÑΓß∩
  1149.          »«ß½Ñ óδ»«½¡Ñ¡¿∩ »«ß½Ññ¡Ñú« «»ÑαáΓ«αá Γѽá Σπ¡¬µ¿¿. Åα¿ φΓ«¼  óÑ-
  1150.          ½¿τ¿¡á ó«ºóαáΓá ¡Ñ «»αÑñѽѡá.
  1151.                 
  1152.                é᪡«:
  1153.                éδαáªÑ¡¿∩   ó   ß»¿ß¬Ñ   áαúπ¼Ñ¡Γ«ó  ó맮óá  Σπ¡¬µ¿¿  ¼«úπΓ
  1154.          óδ»«½¡∩Γ∞ß∩ ó  ½εí«¼  »«α∩ñ¬Ñ,  Γᬠ τΓ«  óδαáªÑ¡¿∩  ß  »«í«τ¡δ¼¿
  1155.          φΣΣѬΓἿ   ¼«úπΓ  ñáΓ∞  ¡Ñ»αÑñ߬áºπѼδÑ  αѺπ½∞ΓáΓδ.  è«¼»¿½∩Γ«α
  1156.          Γ«½∞¬« úáαá¡Γ¿απÑΓ, τΓ«  óßÑ  »«í«τ¡δÑ  φΣΣѬΓδ  íπñπΓ  óδτ¿ß½Ñ¡δ
  1157.          »ÑαÑñ »ÑαÑñáτÑ⌐ π»αáó½Ñ¡¿∩ ó óδºδóáѼπε Σπ¡¬µ¿ε.
  1158.                 
  1159.                éδαáªÑ¡¿Ñ »ÑαÑñ ß¬«í¬á¼¿ ñ«½ª¡« íδΓ∞ »αÑ«íαẫóá¡« ¬ áñαÑßπ
  1160.          Σπ¡¬µ¿¿. ¥Γ« «º¡áτáÑΓ, τΓ« Σπ¡¬µ¿∩ ¼«ªÑΓ íδΓ∞ óδºóá¡á τÑαѺ ½εí«Ñ
  1161.          óδαáªÑ¡¿Ñ  Γ¿»á  π¬áºáΓѽ∩  ¡á  Σπ¡¬µ¿ε.  ¥Γ«  »«ºó«½∩ÑΓ óδºδóáΓ∞
  1162.          Σπ¡¬µ¿ε ó Γ«⌐ ªÑ ßἫ⌐ ¼á¡ÑαÑ, τΓ« ¿  «í"∩ó½∩Γ∞.  ¥Γ«  ¡Ñ«íσ«ñ¿¼«
  1163.          »α¿  ó맮óÑ  Σπ¡¬µ¿¿  τÑαѺ π¬áºáΓѽ∞. ìá»α¿¼Ñα, »αÑñ»«½«ª¿¼, τΓ«
  1164.          π¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε «í"∩ó½Ñ¡ ¬á¬ ß½ÑñπεΘ¿⌐:
  1165.                 
  1166.                int (* fpointer)(int,int);
  1167.                 
  1168.                êñÑ¡Γ¿Σ¿¬áΓ«α  fpointer  π¬áºδóáÑΓ  ¡á  Σπ¡¬µ¿ε   ß   ñóπ¼∩
  1169.          áαúπ¼Ñ¡ΓἿ  Γ¿»á  int  ¿  ó«ºóαáΘáεΘπε  º¡áτÑ¡¿Ñ Γ¿»á int. é맮ó
  1170.          Σπ¡¬µ¿¿ ó φΓ«¼ ß½πτáÑ íπñÑΓ óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
  1171.                 
  1172.                (* fpointer)(3,4);
  1173.                 
  1174.                çñÑß∞  ¿ß»«½∞ºπÑΓß∩  «»Ñαᵿ∩   αáºáñαÑßᵿ¿   (*),   τΓ«íδ
  1175.          »«½πτ¿Γ∞  áñαÑß Σπ¡¬µ¿¿, ¡á ¬«Γ«απε ßßδ½áÑΓß∩ π¬áºáΓѽ∞ fpointer.
  1176.          ÇñαÑß Σπ¡¬µ¿¿ ºáΓѼ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ÑÑ ó맮óá.
  1177.                 
  1178.                Åα¿¼Ñαδ:
  1179.                 /*.....* example 1 *.....*/
  1180.                 double *realcomp (double,double);
  1181.                 double a,b,*rp;
  1182.  
  1183.                                       - 116 -
  1184.            
  1185.            
  1186.                 .
  1187.                 .
  1188.                 .
  1189.                 rp=realcomp (a,b);
  1190.                 
  1191.                           /*.....* example 2 *.....*/
  1192.                 main ()
  1193.                 {
  1194.                      long lift(int), step(int), drop(int);
  1195.                      void work (int, long (*) (int));
  1196.                      int select, count;
  1197.                      .
  1198.                      .
  1199.                      .
  1200.                      select=1;
  1201.                      switch (select)  {
  1202.                             case 1: work (count, lift);
  1203.                                     break;
  1204.                             case 2: work (count, step);
  1205.                                     break;
  1206.                             case 3: work (count, drop);
  1207.                 
  1208.                             default:
  1209.                                     break;
  1210.                 
  1211.                      }
  1212.                 }
  1213.                 
  1214.                 void work (n, func)
  1215.                 int n;
  1216.                 long (*func)(int);
  1217.                 {
  1218.                      int i;
  1219.                      long j;
  1220.                 
  1221.                      for (i=j=0; i<n;i++)
  1222.                             j+=(*funk)(i);
  1223.                 }
  1224.                 
  1225.                é  »Ñαó«¼  »α¿¼ÑαÑ  Σπ¡¬µ¿∩ realcomp óδºδóáÑΓß∩ ó «»ÑαáΓ«αÑ
  1226.          rp=realcomp (a,b);. öπ¡¬µ¿¿ »ÑαÑñáÑΓß∩ ñóá áαúπ¼Ñ¡Γá Γ¿»á double.
  1227.          é«ºóαáΘáѼá∩ óѽ¿τ¿¡á - π¬áºáΓѽ∞ ¡á Γ¿» double  -  »α¿ßóá¿óáÑΓß∩
  1228.          rp.
  1229.                é«  óΓ«α«¼ »α¿¼ÑαÑ work (count, list); Σπ¡¬µ¿«¡á½∞¡δ⌐ ó맮ó
  1230.          ó Σπ¡¬µ¿¿ ¼áin »«ßδ½áÑΓ  ñóá áαúπ¼Ñ¡Γá ¬ Σπ¡¬µ¿¿ work: µÑ½πε  »Ñ-
  1231.          αѼѡ¡πε  count  ¿ áñαÑß Σπ¡¬µ¿¿ lift. çá¼ÑΓ¿¼, τΓ« áñαÑß Σπ¡¬µ¿¿
  1232.          »«ßδ½áÑΓß∩ »α«ßΓδ¼  ºáñ᡿Ѽ  ¿ñÑ¡Γ¿Σ¿¬áΓ«αá  Σπ¡¬µ¿¿,  »«ß¬«½∞¬π
  1233.          ¿ñÑ¡Γ¿Σ¿¬áΓ«α óδτ¿ß½∩ÑΓß∩ ¬á¬ áñαÑß¡«Ñ óδαáªÑ¡¿Ñ. ùΓ«íδ ¿ß»«½∞º«-
  1234.          óáΓ∞  ¿ñÑ¡Γ¿Σ¿¬áΓ«α Σπ¡¬µ¿¿ »«ñ«í¡δ¼ «íαẫ¼, Σπ¡¬µ¿∩ ñ«½ª¡á íδΓ∞
  1235.          «í"∩ó½Ñ¡á ¿½¿  «»αÑñѽѡᠠ»ÑαÑñ  ¿ß»«½∞º«ó᡿Ѽ  ¿ñÑ¡Γ¿Σ¿¬áΓ«αá,
  1236.          ¿¡áτÑ  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  ¡Ñ íπñÑΓ αáß»«º¡á¡. é ñá¡¡«¼ »α¿¼ÑαÑ ºáñá¡«
  1237.          forward-«í"∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ work ó ¡áτá½Ñ Σπ¡¬µ¿¿ main.
  1238.                ö«α¼á½∞¡δ⌐  »áαá¼ÑΓα funk ó «»αÑñѽѡ¿¿ work ºáñá¡ ¬á¬ π¬á-
  1239.          ºáΓѽ∞  ¡á  Σπ¡¬µ¿ε,  »α¿¡¿¼áεΘπε  «ñ¿¡  áαúπ¼Ñ¡Γ  Γ¿»á   int   ¿
  1240.          ó«ºóαáΘáεΘπε   º¡áτÑ¡¿Ñ   Γ¿»á   long.  æ¬«í¬¿,  ºá¬½ετáεΘ¿Ñ  ¿¼∩
  1241.  
  1242.                                       - 117 -
  1243.            
  1244.            
  1245.          »áαá¼ÑΓαá,  ΓαÑíπεΓß∩.  üѺ  ¡¿σ  «í"∩ó½Ñ¡¿Ñ  ß»Ñµ¿Σ¿µ¿α«óὫ  íδ
  1246.          Σπ¡¬µ¿ε, ó«ºóαáΘáεΘπε π¬áºáΓѽ∞ ¡á óѽ¿τ¿¡π Γ¿»á long.
  1247.                öπ¡¬µ¿∩ work óδºδóáÑΓ óδíαá¡¡πε Σπ¡¬µ¿ε ó ó맮óÑ
  1248.                 
  1249.                (* funk)(i);
  1250.                 
  1251.                Çαúπ¼Ñ¡Γ i »«ßδ½áÑΓß∩ ¬ óδºδóáѼ«⌐ Σπ¡¬µ¿¿.
  1252.                 
  1253.                 
  1254.                7.4.1. öá¬Γ¿τÑ߬¿Ñ áαúπ¼Ñ¡Γδ
  1255.                 
  1256.                öá¬Γ¿τÑ߬¿Ñ áαúπ¼Ñ¡Γδ ¼«úπΓ íδΓ∞ ½εí«⌐ óѽ¿τ¿¡«⌐ «ß¡«ó¡«ú«,
  1257.          ßΓαπ¬Γπα¡«ú«,  ß«ó¼ÑΘáεΘÑú«  ¿½¿  áñαÑß¡«ú« Γ¿»«ó. ò«Γ∩ ¼áßß¿óδ ¿
  1258.          Σπ¡¬µ¿¿ ¡Ñ ¼«úπΓ íδΓ∞ »ÑαÑñá¡δ ¬á¬ »áαá¼ÑΓαδ, ¡« π¬áºáΓѽ¿ ¡á φΓ¿
  1259.          «í"ѬΓδ ¼«úπΓ »ÑαÑñáóáΓ∞ß∩.
  1260.                éßÑ Σá¬Γ¿τÑ߬¿Ñ áαúπ¼Ñ¡Γδ  »ÑαÑñáεΓß∩  »«  º¡áτÑ¡¿ε.  è«»¿∩
  1261.          Σá¬Γ¿τÑ߬¿σ  áαúπ¼Ñ¡Γ«ó  »α¿ßóá¿óáÑΓß∩ ß««ΓóÑΓßΓóπεΘ¿¼ Σ«α¼á½∞¡δ¼
  1262.          »áαá¼ÑΓαá¼. öπ¡¬µ¿∩ ¿ß»«½∞ºπÑΓ φΓ¿ ¬«»¿¿, ¡Ñ ó½¿∩∩ ¡á  »ÑαѼѡ¡δÑ,
  1263.          ß ¬«Γ«αδ󠬫»¿∩ íδ½á ßñѽá¡á.
  1264.                ÅπΓ∞ ñ«ßΓπ»á ¿º Σπ¡¬µ¿¿ ¬ º¡áτÑ¡¿∩¼ «α¿ú¿¡á½∞¡δσ »ÑαѼѡ¡δσ
  1265.          «íÑß»Ñτ¿óáεΓ  π¬áºáΓѽ¿.  Æ.¬.  π¬áºáΓѽ∞  ¡á »ÑαѼѡ¡πε ß«ñÑনΓ
  1266.          áñαÑß »ÑαѼѡ¡«⌐, Γ« Σπ¡¬µ¿∩ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞  φëà áñαÑß  ñ½∩
  1267.          ñ«ßΓπ»á  ¬  º¡áτÑ¡¿ε »ÑαѼѡ¡«⌐. Çαúπ¼Ñ¡Γδ-π¬áºáΓѽ¿ «íÑß»Ñτ¿óáεΓ
  1268.          ñ«ßΓπ» ¿º  Σπ¡¬µ¿¿  ¬  ¼áßß¿óá¼  ¿  Σπ¡¬µ¿∩¼,  ¬«Γ«αδÑ  ºá»αáΘÑ¡«
  1269.          »ÑαÑñáóáΓ∞ ¬á¬ áαúπ¼Ñ¡Γδ.
  1270.                éδαáªÑ¡¿∩  ó  ó맮óÑ  Σπ¡¬µ¿¿  óδτ¿ß½∩εΓß∩  ¿ »αÑ«íαáºπεΓß∩
  1271.          ß½ÑñπεΘ¿¼ «íαẫ¼:
  1272.                - Ñß½¿ «í"∩ó½Ñ¡ ß»¿ß«¬ Γ¿»«ó  áαúπ¼Ñ¡Γ«ó,  Γ«  ñ½∩  ¬áªñ«ú«
  1273.          Σá¬Γ¿τÑ߬«ú«   áαúπ¼Ñ¡Γá   ó맮óá   Σπ¡¬µ¿¿  óδ»«½¡∩εΓß∩  «íδτ¡δÑ
  1274.          áα¿Σ¼ÑΓ¿τÑ߬¿Ñ   »αÑ«íαẫóá¡¿∩   ñ½∩   ß««ΓóÑΓßΓóπεΘÑú«    Γ¿»á,
  1275.          «í"∩ó½Ñ¡¡«ú«   ó   ß»¿ß¬Ñ  Γ¿»«ó  áαúπ¼Ñ¡Γ«ó  ¿  ñ½∩  Σá¬Γ¿τÑ߬¿σ
  1276.          áαúπ¼Ñ¡Γ«ó. öá¬Γ¿τÑ߬¿⌐ áαúπ¼Ñ¡Γ »α¿ó«ñ¿Γß∩ ¬ φΓ«¼π  Γ¿»π.  çáΓѼ
  1277.          Γ¿»    »αÑ«íαẫóá¡¡«ú«    óδαáªÑ¡¿∩    ßαáó¡¿óáÑΓß∩    ß   Γ¿»«¼
  1278.          ß««ΓóÑΓßΓóπεΘÑú« Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá, ¬«Γ«αδ⌐ ºáñá¡ ó ºáú«½«ó¬Ñ
  1279.          «»αÑñѽѡ¿∩ Σπ¡¬µ¿¿. ÅÑαÑñ ßαáó¡Ñ¡¿Ñ¼ Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ  ΓᬪÑ
  1280.          »«ñóÑαúáεΓß∩  «íδτ¡δ¼  áα¿Σ¼ÑΓ¿τÑ߬¿¼ »αÑ«íαẫóá¡¿∩¼. Åα¿óÑñÑ¡¿∩
  1281.          Γ¿»«ó ¡Ñ »α«¿ºó«ñ¿Γß∩, ¡« ¬«¼»¿½∩Γ«α óδñáÑΓ  óßÑ  »αÑñπ»αѪñÑ¡¿∩,
  1282.          ¬á¬ íπñΓ« íδ óδαáªÑ¡¿Ñ »α¿ßóá¿óáÑΓß∩ Σ«α¼á½∞¡«¼π »áαá¼ÑΓαπ;
  1283.                - Ñß½¿ ß»¿ß«¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó ¡Ñ «í"∩ó½Ñ¡, ¿½¿ Ñß½¿ Σá¬Γ¿-
  1284.          τÑ߬¿σ áαúπ¼Ñ¡Γ«ó í«½∞ΦÑ, τѼ ºáñá¡« ¿¼Ñ¡-Γ¿»«ó  ó  ß»¿ß¬Ñ  Γ¿»«ó
  1285.          áαúπ¼Ñ¡Γ«ó, Γ« «íδτ¡δÑ áα¿Σ¼ÑΓ¿τÑ߬¿Ñ »αÑ«íαẫóá¡¿∩ »α«¿ºó«ñ∩Γß∩
  1286.          ñ½∩ ¬áªñ«ú« áαúπ¼Ñ¡Γá, ¡Ñ ¿¼ÑεΘÑú« ß««ΓóÑΓßΓóπεΘÑú« ¿¼Ñ¡¿-Γ¿»á;
  1287.                - Ñß½¿ αÑ὿º«óá¡δ ¬½ετÑóδÑ ß½«óá near, far, huge, Γ« ¼«úπΓ
  1288.          íδΓ∞  óδ»«½¡Ñ¡δ  ºáó¿ß∩Θ¿Ñ  «Γ αÑ὿ºáµ¿¿ »αÑ«íαẫóá¡¿∩ áñαÑß¡δσ
  1289.          áαúπ¼Ñ¡Γ«ó.   æ¼«Γα¿ΓÑ   ß¿ßΓѼ¡πε   ñ«¬π¼Ñ¡Γáµ¿ε   «í   áñαÑß¡δσ
  1290.          »αÑ«íαẫóá¡¿∩σ. ù¿ß½« óδαáªÑ¡¿⌐, ºáñá¡¡δσ ó ß»¿ß¬Ñ ó맮óá, ñ«½ª-
  1291.          ¡«   íδΓ∞   αáó¡«  τ¿ß½π  Σ«α¼á½∞¡δσ  áαúπ¼Ñ¡Γ«ó,  Ñß½¿  ∩ó¡«  ¡Ñ
  1292.          ß»Ñµ¿Σ¿µ¿α«óá¡« »ÑαѼѡ¡«Ñ τ¿ß½« áαúπ¼Ñ¡Γ«ó. é  »«ß½Ññ¡Ñ¼  ß½πτáÑ
  1293.          ¬«¼»¿½∩Γ«α  »α«óÑα∩ÑΓ  ßΓ«½∞¬«  áαúπ¼Ñ¡Γ«ó,  ß¬«½∞¬«  ¿σ ºáñá¡« ó
  1294.          ß»¿ß¬Ñ Γ¿»«ó áαúπ¼Ñ¡Γ«ó, ¿ »αÑ«íαáºπÑΓ ¿σ,  Ñß½¿  ¡Ñ«íσ«ñ¿¼«, ¬á¬
  1295.          «»¿ßá¡« óδΦÑ;
  1296.                -  Ñß½¿  ß»¿ß«¬  Γ¿»«ó  áαúπ¼Ñ¡Γ«ó ß«ñÑαª¿Γ ß»Ñµ¿á½∞¡«Ñ ¿¼∩
  1297.          Γ¿»á void, Γ« ¬«¼»¿½∩Γ«α «ª¿ñáÑΓ ¡π½∞  Σá¬Γ¿τÑ߬¿σ  áαúπ¼Ñ¡Γ«ó  ó
  1298.          ó맮óÑ Σπ¡¬µ¿¿ ¿ ¡π½∞ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó. Ä¡ óδñáÑΓ »αÑñπ»αѪ-
  1299.          ñÑ¡¿Ñ, Ñß½¿ φΓ« íπñÑΓ ¡Ñ Γá¬.
  1300.  
  1301.                                       - 118 -
  1302.            
  1303.            
  1304.                Æ¿»   ¬áªñ«ú«   Σ«α¼á½∞¡«ú«  »áαá¼ÑΓαá  ΓᬪѠ »«ñóÑαúáÑΓß∩
  1305.          «íδτ¡δ¼ áα¿Σ¼ÑΓ¿τÑ߬¿¼ »αÑ«íαẫóá¡¿∩¼. ÅαÑ«íαẫóá¡¡δ⌐ Γ¿»  ¬áª-
  1306.          ñ«ú«    Σ«α¼á½∞¡«ú«    »áαá¼ÑΓαá    «»αÑñѽ∩ÑΓ,   ¬á¬¿¼   «íαẫ¼
  1307.          ¿¡ΓÑα»αÑΓ¿απεΓß∩  áαúπ¼Ñ¡Γδ  ó  ßΓѬÑ.   àc½¿   Γ¿»   Σ«α¼á½∞¡«ú«
  1308.          »áαá¼ÑΓαá ¡Ñ ß««ΓóÑΓßΓóπÑΓ Γ¿»π Σá¬Γ¿τÑ߬«ú« »áαá¼ÑΓαá, Γ« ñá¡¡δÑ
  1309.          ó ßΓѬѠ¼«úπΓ íδΓ∞ »α«¿¡ΓÑα»αÑΓ¿α«óá¡δ ¡ÑóÑα¡«.
  1310.                 
  1311.                çá¼Ñτá¡¿Ñ.
  1312.                ìÑß««ΓóÑΓßΓó¿Ñ  Γ¿»«ó  Σ«α¼á½∞¡δσ  ¿ Σá¬Γ¿τÑ߬¿σ »áαá¼ÑΓα«ó
  1313.          ¼«ªÑΓ »α«¿ºóÑßΓ¿ ßÑα¿ε «Φ¿í«¬, «ß«íÑ¡¡« ¬«úñá ¡Ñß««ΓóÑΓßΓó¿Ñ ó½Ñ-
  1314.          τÑΓ ºá ß«í«⌐ «Γ½¿τ¿∩ ó αẼÑαáσ. ìπª¡«  ¿¼ÑΓ∞  ó  ó¿ñπ,  τΓ«  φΓ¿
  1315.          «Φ¿í¬¿  ¡Ñ  óδ∩ó½∩εΓß∩,  Ñß½¿  ¡Ñ ºáñá¡ ß»¿ß«¬ Γ¿»«ó áαúπ¼Ñ¡Γ«ó ó
  1316.          forward-«í"∩ó½Ñ¡¿¿ Σπ¡¬µ¿¿.
  1317.                 
  1318.                Åα¿¼Ñα:
  1319.                 
  1320.                 main ()
  1321.                 {
  1322.                        void swap (int *, int *);
  1323.                        int x, y;
  1324.                        .
  1325.                        .
  1326.                        .
  1327.                        swap (&x,&y);
  1328.                 }
  1329.                 
  1330.                 void swap (a,b)
  1331.                 int *a, *b;
  1332.                 {
  1333.                        int t;
  1334.                 
  1335.                        t=*a;
  1336.                        *a=*b;
  1337.                        *b=t;
  1338.          
  1339.                 }
  1340.                 
  1341.                é »α¿¼ÑαÑ Σπ¡¬µ¿∩ swap «í"∩ó½Ñ¡á ó main ¬á¬ Σπ¡¬µ¿∩ ß ñóπ¼∩
  1342.          áαúπ¼Ñ¡ΓἿ  Γ¿»á  π¬áºáΓѽÑ⌐  ¡á int. ö«α¼á½∞¡δÑ »áαá¼ÑΓαδ a ¿ b
  1343.          «í"∩ó½Ñ¡δ ΓᬠªÑ, ¬á¬ π¬áºáΓѽ¿  ¡á  µÑ½δÑ  óѽ¿τ¿¡δ.  Åα¿ ó맮óÑ
  1344.          Σπ¡¬µ¿¿
  1345.                 
  1346.                 swar (&x,&y)
  1347.                 
  1348.          áñαÑß  x  ºá»«¼¿¡áÑΓß∩  ó  a  ¿  áñαÑß y ºá»«¼¿¡áÑΓß∩ ó b. ÆÑ»Ñα∞
  1349.          ñóá  ¿¼Ñ¡¿  ¿½¿  "ß¿¡«¡¿¼á" ßπΘÑßΓóπÑΓ ñ½∩ «ñ¡«⌐ ¿ Γ«⌐ ªÑ ∩τÑ⌐¬¿.
  1350.          æß佬¿ *a ¿ *b ó Σπ¡¬µ¿¿ swap ñÑ⌐ßΓóπεΓ Γ«τ¡« ΓᬠªÑ, ¬á¬ x ¿ y ó
  1351.          main. Åα¿ßóá¿óá¡¿Ñ ó¡πΓα¿ Σπ¡¬µ¿¿ swap ¿º¼Ñ¡∩ÑΓ ß«ñÑন¼«Ñ x ¿ y.
  1352.          è«¼»¿½∩Γ«α »α«óÑñÑΓ »α«óÑα¬π Γ¿»«ó áαúπ¼Ñ¡Γ«ó  »α¿  ó맮óÑ  swap,
  1353.          »«ß¬«½∞¬π  ¿¼ÑÑΓß∩  ß»¿ß«¬  Γ¿»«ó áαúπ¼Ñ¡Γ«ó ó forward-«í"∩ó½Ñ¡¿¿
  1354.          swap. Æ¿»δ  Σá¬Γ¿τÑ߬¿σ  áαúπ¼Ñ¡Γ«ó  ß««ΓóÑΓßΓóπεΓ  ß»¿ß¬π  Γ¿»«ó
  1355.          áαúπ¼Ñ¡Γ«ó ¿ ß»¿ß¬π Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó.
  1356.                
  1357.                
  1358.  
  1359.                                       - 119 -
  1360.            
  1361.            
  1362.                 7.4.2. é맮óδ ß »ÑαѼѡ¡δ¼ τ¿ß½«¼ áαúπ¼Ñ¡Γ«ó
  1363.                 
  1364.                ùΓ«íδ óδºóáΓ∞ Σπ¡¬µ¿ε ß »ÑαѼѡ¡δ¼ τ¿ß½«¼ áαúπ¼Ñ¡Γ«ó, ó óδ-
  1365.          º«óÑ  Σπ¡¬µ¿¿  »α«ßΓ«  ºáñáÑΓß∩   ½εí«Ñ   τ¿ß½«   áαúπ¼Ñ¡Γ«ó.   é
  1366.          forward-«í"∩ó½Ñ¡¿¿  (Ñß½¿  «¡«  ÑßΓ∞) »ÑαѼѡ¡«Ñ τ¿ß½« áαúπ¼Ñ¡Γ«ó
  1367.          ß»Ñµ¿Σ¿µ¿απÑΓß∩ ºá»¿ß∞ε ºá»∩Γ«⌐ ß »«ß½ÑñπεΘ¿¼ ¼¡«ú«Γ«τ¿Ñ¼  (,...)
  1368.          ó  ¬«¡µÑ  ß»¿ß¬á  Γ¿»«ó  áαúπ¼Ñ¡Γ«ó (ß¼«Γα¿ αáºñѽ 4.5.). èáªñ«¼π
  1369.          ¿¼Ñ¡¿ Γ¿»á, ß»Ñµ¿Σ¿µ¿α«óá¡¡«¼π ó ß»¿ß¬Ñ Γ¿»«ó  áαúπ¼Ñ¡Γ«ó,  ß««Γ-
  1370.          óÑΓßΓóπÑΓ «ñ¿¡ Σá¬Γ¿τÑ߬¿⌐ áαúπ¼Ñ¡Γ ó ó맮óÑ Σπ¡¬µ¿¿. àß½¿ ºáñá¡«
  1371.          Γ«½∞¬«  ¼¡«ú«Γ«τ¿Ñ (íѺ ¿¼Ñ¡ Γ¿»«ó), Γ« φΓ« º¡áτ¿Γ, τΓ« ¡ÑΓ áαúπ-
  1372.          ¼Ñ¡Γ«ó, ¬«Γ«αδÑ «í∩ºáΓѽ∞¡« ΓαÑíπεΓß∩ »α¿ ó맮óÑ Σπ¡¬µ¿¿.
  1373.                Ç¡á½«ú¿τ¡«, ß»¿ß«¬ áαúπ¼Ñ¡Γ«ó ó «»αÑñѽѡ¿¿  Σπ¡¬µ¿¿  ¼«ªÑΓ
  1374.          ΓᬪѠºá¬á¡τ¿óáΓ∞ß∩ ºá»∩Γ«⌐ ß »«ß½ÑñπεΘ¿¼ ¼¡«ú«Γ«τ¿Ñ¼ (,...), τΓ«
  1375.          »«ñαáºπ¼ÑóáÑΓ »ÑαѼѡ¡«Ñ τ¿ß½« áαúπ¼Ñ¡Γ«ó. àß½¿ ß»¿ß«¬ áαúπ¼Ñ¡Γ«ó
  1376.          ß«ñÑαª¿Γ  Γ«½∞¬«  ¼¡«ú«Γ«τ¿Ñ (...), Γ« τ¿ß½« áαúπ¼Ñ¡Γ«ó »ÑαѼѡ¡«
  1377.          ¿½¿ αáó¡« ¡π½ε. ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ ñá¡á ó αáºñѽѠ7.2.
  1378.                 
  1379.                çá¼Ñτá¡¿Ñ.
  1380.                ä½∩ »«ññÑ᪬¿ ß«ó¼ÑßΓ¿¼«ßΓ¿  ß  »αÑñδñπΘ¿¼¿  óÑαß¿∩¼¿  ¬«¼-
  1381.          »¿½∩Γ«α ó«ß»α¿¡¿¼áÑΓ ñ½∩ «í«º¡áτÑ¡¿∩ »ÑαѼѡ¡«ú« τ¿ß½á áαúπ¼Ñ¡Γ«ó
  1382.          ß¿¼ó«½  ºá»∩Γ«⌐  íѺ »«ß½ÑñπεΘÑú« ¼¡«ú«Γ«τ¿∩ ó ¬«¡µÑ ß»¿ß¬á Γ¿»«ó
  1383.          áαúπ¼Ñ¡Γ«ó ¿½¿ ß»¿ß¬á »áαá¼ÑΓα«ó. Æá¬ ªÑ ¼«ªÑΓ íδΓ∞  ¿ß»«½∞º«óá¡á
  1384.          «Γñѽ∞¡á∩  ºá»∩Γá∩ ó¼ÑßΓ« ¼¡«ú«Γ«τ¿∩ ñ½∩ «í"∩ó½Ñ¡¿∩ ¿ «»αÑñѽѡ¿∩
  1385.          Σπ¡¬µ¿⌐,  ΓαÑíπεΘ¿σ  ¡π½∞  ¿½¿  í«½ÑÑ  áαúπ¼Ñ¡Γ«ó.  êß»«½∞º«óá¡¿Ñ
  1386.          ºá»∩Γ«⌐   »«ññÑনóáÑΓß∩  Γ«½∞¬«  ñ½∩  ß«ó¼ÑßΓ¿¼«ßΓ¿.  åѽáΓѽ∞¡«
  1387.          ¿ß»«½∞º«óáΓ∞ ó ¡«ó«⌐ óÑαß¿¿ ¼¡«ú«Γ«τ¿Ñ.
  1388.                 
  1389.                éßÑ áαúπ¼Ñ¡Γδ, ºáñá¡¡δÑ ó  óÑαß¿¿  Σπ¡¬µ¿¿,  αẼÑΘáεΓß∩  ó
  1390.          ßΓѬÑ. è«½¿τÑßΓó« Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó, «í"∩ó½Ñ¡¡δσ ñ½∩ Σπ¡¬µ¿¿,
  1391.          «»αÑñѽ∩ÑΓ  τ¿ß½« áαúπ¼Ñ¡Γ«ó, ¬«Γ«αδÑ íÑαπΓß∩ ¿º ßΓѬᠿ »α¿ßóá¿-
  1392.          óáεΓß∩ Σ«α¼á½∞¡δ¼ »áαá¼ÑΓαá¼. Åα«úαá¼¼¿ßΓ «ΓóÑτáÑΓ ºá óδí«α  ½¿Φ-
  1393.          ¡¿σ  áαúπ¼Ñ¡Γ«ó  ¿º ßΓѬᠿ ºá Γ«, ß¬«½∞¬« áαúπ¼Ñ¡Γ«ó ¡áσ«ñ¿Γß∩ ó
  1394.          ßΓѬÑ. æ¼«Γα¿ΓÑ ó ß¿ßΓѼ¡«⌐ ñ«¬π¼Ñ¡Γᵿ¿ ¿¡Σ«α¼áµ¿ε  «  ¼á¬α«ßáσ,
  1395.          ¬«Γ«αδÑ  ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ ñ½∩ π»αáó½Ñ¡¿∩ »ÑαѼѡ¡δ¼ τ¿ß½«¼
  1396.          áαúπ¼Ñ¡Γ«ó.
  1397.                
  1398.                
  1399.                7.4.3. ÉѬπαß¿ó¡δÑ ó맮óδ
  1400.                 
  1401.                ïεíá∩ Σπ¡¬µ¿∩ ó æ¿-»α«úαἼѠ¼«ªÑΓ íδΓ∞ óδºóá¡á αѬπαß¿ó¡«.
  1402.          ä½∩ φΓ«ú« Σπ¡¬µ¿∩ óδºδóáÑΓ ßá¼π ßÑí∩. è«¼»¿½∩Γ«α æ¿ ñ«»π߬áÑΓ ½ε-
  1403.          í«Ñ τ¿ß½« αѬπαß¿ó¡δσ ó맮ó«ó Σπ¡¬µ¿¿. Åα¿ ¬áªñ«¼ ó맮óÑ Σ«α¼á½∞-
  1404.          ¡δσ »áαá¼ÑΓα«ó ¿ »ÑαѼѡ¡δ󠬽áßßá »á¼∩Γ¿ auto ¿ register  ºáσóá-
  1405.          ΓδóáÑΓß∩  ¡«óá∩ »á¼∩Γ∞, ΓᬠτΓ« ¿σ º¡áτÑ¡¿∩ ¿º »αÑñΦÑßΓóπεΘ¿σ ¡Ñ-
  1406.          ºáóÑαΘÑ¡¡δσ ó맮ó«ó ¡Ñ »ÑαѺỿßδóáεΓß∩. ÅαÑñΦÑßΓóπεΘ¿Ñ »áαá¼ÑΓαδ
  1407.          ¡Ññ«ßΓπ»¡δ ó ñαπú¿σ óÑαß¿∩σ Σπ¡¬µ¿¿, ¿ß¬½ετá∩ óÑαß¿ε,  ó  ¬«Γ«α«⌐
  1408.          «¡¿ í뫨 ß«ºñá¡δ.
  1409.                çá¼ÑΓ¿¼, τΓ«  »ÑαѼѡ¡δÑ,  «í"∩ó½Ñ¡¡δÑ  ¬á¬  ú½«íá½∞¡δÑ, ¡Ñ
  1410.          ΓαÑíπεΓ  ¡«ó«⌐  »á¼∩Γ¿  »α¿  ¬áªñ«¼ αѬπα߿󡫼 ó맮óÑ. êσ »á¼∩Γ∞
  1411.          ß«σαá¡∩ÑΓß∩ ¡á óßÑ óαѼ∩ ª¿º¡¿ »α«úαá¼¼δ.
  1412.                ò«Γ∩ æ¿ ¬«¼»¿½∩Γ«α ¡Ñ «úαá¡¿τ¿óáÑΓ τ¿ß½« αѬπαß¿ó¡δσ  ó맮-
  1413.          ó«ó  Σπ¡¬µ¿¿,  «»Ñαᵿ«¡¡«Ñ «¬απªÑ¡¿Ñ ¼«ªÑΓ ¡á½áúáΓ∞ »αá¬Γ¿τÑ߬¿Ñ
  1414.          «úαá¡¿τÑ¡¿∩. Æá¬ ¬á¬  ¬áªñδ⌐  αѬπαß¿ó¡δ⌐  ó맮ó  ΓαÑíπÑΓ  ñ«»«½-
  1415.          ¡¿Γѽ∞¡«⌐  ßΓѬ«ó«⌐  »á¼∩Γ¿, Γ« ß½¿Φ¬«¼ ¼¡«ú« αѬπαß¿ó¡δσ ó맮ó«ó
  1416.          ¼«úπΓ »ÑαÑ»«½¡¿Γ∞ ßΓѬ.
  1417.                                                                 
  1418.  
  1419.                                       - 120 -
  1420.            
  1421.            
  1422.                
  1423.                
  1424.                  8. äêÉàèÆê颠ÅÉàÅÉÄûàææÄÉÇ ê ôèÇçÇìꃠèÄîÅêïƒÆÄÉô
  1425.                
  1426.                
  1427.                ä¿αÑ¬Γ¿óδ  »αÑ»α«µÑßß«αá  - φΓ« ¿¡ßΓαπ¬µ¿¿, »αÑñ¡áº¡áτÑ¡¡δÑ
  1428.          ñ½∩ »αÑ»α«µÑß«αá æ¿. ÅαÑ»α«µÑßß«α æ¿ - φΓ«  ΓѬßΓ«óδ⌐  »α«µÑßß«α,
  1429.          ¿ß»«½∞ºπѼδ⌐  ñ½∩  «íαáí«Γ¬¿ ΓѬßΓ«ó«ú« ¿ßσ«ñ¡«ú« Σá⌐½á ¡á »Ñαó«⌐
  1430.          ΣáºÑ ¬«¼»¿½∩µ¿¿. è«¼»¿½∩Γ«α «íδτ¡« óδºδóáÑΓ »αÑ»α«µÑßß«α ó  ßó«Ñ¼
  1431.          »Ñαó«¼  »α«σ«ñÑ,  «ñ¡á¬« »αÑ»α«µÑßß«α ¼«ªÑΓ íδΓ∞ óδºóá¡ áóΓ«¡«¼¡«
  1432.          ñ½∩ «íαáí«Γ¬¿ ΓѬßΓá íѺ ¬«¼»¿½∩µ¿¿.
  1433.                ä¿αÑ¬Γ¿óδ »αÑ»α«µÑßß«αá «íδτ¡« ¿ß»«½∞ºπεΓß∩ ñ½∩ Γ«ú«, τΓ«íδ
  1434.          ßñѽáΓ∞   ¿ßσ«ñ¡δÑ   »α«úαá¼¼δ  »α«ΘÑ  ñ½∩  ¼«ñ¿Σ¿¬áµ¿¿  ¿  τΓ«íδ
  1435.          «ßπΘÑßΓó½∩Γ∞ ¬«¼»¿½∩µ¿ε ñ½∩ αẽ¿τ¡δσ αÑ὿ºáµ¿⌐ ¬«¼»¿½∩Γ«αá  æ¿.
  1436.          ä¿αÑ¬Γ¿óδ  ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ ¿¡ßΓαπ¬Γ¿απεΓ »αÑ»α«µÑßß«α « óδ»«½¡Ñ-
  1437.          ¡¿¿ «»αÑñѽѡ¡δσ ñÑ⌐ßΓó¿⌐. ìá»α¿¼Ñα, »αÑ»α«µÑßß«α ¼«ªÑΓ  ºá¼Ñ¡¿Γ∞
  1438.          ½Ñ¬ßÑ¼δ  ó  ΓѬßΓÑ,  óßΓáó¿Γ∞ ß«ñÑন¼«Ñ ñαπú¿σ Σá⌐½«ó ó ¿ßσ«ñ¡δ⌐
  1439.          Σá⌐½, ºá»αÑΓ¿Γ∞ ¬«¼»¿½∩µ¿ε τáßΓ¿ Σá⌐½á ¿ Γ.ñ.
  1440.                ÅαÑ»α«µÑßß«α æ¿ αáß»«º¡áÑΓ ß½ÑñπεΘ¿Ñ ñ¿αÑ¬Γ¿óδ:
  1441.          
  1442.            
  1443.                 # define    # if         # line
  1444.                 # elif      # ifdef      # undef
  1445.                 # else      # ifndef
  1446.                 # endif     # include
  1447.  
  1448.                ç¡á¬ ¡«¼Ñαá (#)  ñ«½ªÑ¡  íδΓ∞  »Ñαóδ¼  (íѺ  »αÑñΦÑßΓóπεΘ¿σ
  1449.          »α«íѽ∞¡δσ  ß¿¼ó«½«ó)  ó ßΓ᫬Ñ, ß«ñÑαªáΘÑ⌐ ñ¿αÑ¬Γ¿óπ. Åα«íѽ∞¡δÑ
  1450.          ß¿¼ó«½δ  ñ«»π߬áεΓß∩  ¼Ñªñπ  º¡á¬«¼  ¡«¼Ñαá   ¿   »Ñαó«⌐   íπ¬ó«⌐
  1451.          ñ¿αÑ¬Γ¿óδ.  ìѬ«Γ«αδÑ  ñ¿αÑ¬Γ¿óδ  ΓαÑíπεΓ áαúπ¼Ñ¡Γδ ¿½¿ º¡áτÑ¡¿∩.
  1452.          ä¿αÑ¬Γ¿óδ ¼«úπΓ »«∩ó½∩Γ∞ß∩ úñÑ πú«ñ¡« ó ¿ßσ«ñ¡«¼  Σá⌐½Ñ,  ¡«  «¡¿
  1453.          »α¿¼Ñ¡¿¼δ  Γ«½∞¬«  ¬  «ßΓáΓ¬π  ¿ßσ«ñ¡«ú«  Σá⌐½á «Γ ¼ÑßΓá, úñÑ «¡¿
  1454.          »«∩󿽿ß∞.
  1455.                ô¬áºá¡¿∩ ¬«¼»¿½∩Γ«απ - φΓ« ¬«¼á¡ñδ, ¬«Γ«αδÑ  óßΓáó½∩εΓß∩  ó
  1456.          ΓѬßΓ   ¿ßσ«ñ¡«⌐  »α«úαá¼¼δ  æ¿  ¿  ¿ß»«½∞ºπεΓß∩  ñ½∩  π»αáó½Ñ¡¿∩
  1457.          ñÑ⌐ßΓó¿∩¼¿ ¬«¼»¿½∩Γ«αá ó «»αÑñѽѡ¡δσ τáßΓ∩σ »α«úαá¼¼δ, ¡Ñ  ó½¿∩∩
  1458.          ¡á  »α«úαá¼¼π ó µÑ½«¼. é αáºñѽѠ8.6 «»¿ßδóáÑΓß∩ ß¿¡Γá¬ß¿ß π¬áºá-
  1459.          ¡¿⌐ ¬«¼»¿½∩Γ«απ. Äñ¡á¬« ¡áí«α π¬áºá¡¿⌐ ¬«¼»¿½∩Γ«απ ¿ ¿σ ß¼δß½ ºá-
  1460.          ó¿ß∩Γ  «Γ  αÑ὿ºáµ¿¿.  æ¼«Γα¿ΓÑ   ß¿ßΓѼ¡πε   ñ«¬π¼Ñ¡Γáµ¿ε   ñ½∩
  1461.          »«½πτÑ¡¿∩  ¿¡Σ«α¼áµ¿¿  «í ¿ß»«½∞º«óá¡¿¿ ¿ ñÑ⌐ßΓó¿∩σ π¬áºá¡¿⌐ ¬«¼-
  1462.          »¿½∩Γ«απ.
  1463.                  
  1464.                
  1465.                8.1. Å«¿¼Ñ¡«óá¡¡δÑ ¬«¡ßΓá¡Γδ ¿ ¼á¬α«ßδ
  1466.                 
  1467.                ä¿αÑ¬Γ¿óá # define «íδτ¡«  ¿ß»«½∞ºπÑΓß∩  ñ½∩  ßó∩º¿  ¼¡Ñ¼«-
  1468.          ¡¿τ¡δσ   ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó   ß   ¬«¡ßΓá¡ΓἿ,   ¬½ετÑó묨  ß½«óἿ,
  1469.          «»ÑαáΓ«αἿ   ¿   óδαáªÑ¡¿∩¼¿,   ¬«Γ«αδÑ   τáßΓ«    ¿ß»«½∞ºπεΓß∩.
  1470.          êñÑ¡ñΓ¿Σ¿¬áΓ«αδ,  ¬«Γ«αδÑ »αÑñßΓáó½∩εΓ ¬«¡ßΓá¡Γδ, ¡áºδóáεΓß∩ »«¿-
  1471.          ¼Ñ¡«óá¡¡δ¼¿  ¬«¡ßΓá¡ΓἿ.  êñÑ¡Γ¿Σ¿¬áΓ«αδ,  ¬«Γ«αδÑ  »αÑñßΓáó½∩εΓ
  1472.          «»ÑαáΓ«αδ ¿½¿ óδαáªÑ¡¿∩, ¡áºδóáεΓß∩ ¼á¬α«ßἿ.
  1473.                êñÑ¡Γ¿Σ¿¬áΓ«α ¡Ñ ¼«ªÑΓ íδΓ∞ »ÑαÑ«»αÑñѽѡ íѺ «Γ¼Ñ¡δ »Ñαó«-
  1474.          ú« «»αÑñѽѡ¿∩. Äñ¡á¬«, ¿ñÑ¡Γ¿Σ¿¬áΓ«α  ¼«ªÑΓ  íδΓ∞  »ÑαÑ«»αÑñѽѡ
  1475.          Γ«τ¡« Γᬿ¼ ªÑ «»αÑñѽѡ¿Ñ¼. Æá¬¿¼ «íαẫ¼ ó »α«úαἼѠñ«»π߬áÑΓ-
  1476.          ß∩ »«óΓ«αÑ¡¿Ñ «ñ¡«ú« ¿ Γ«ú« ªÑ «»αÑñѽѡ¿∩.
  1477.  
  1478.                                       - 121 -
  1479.            
  1480.            
  1481.                ä¿αÑ¬Γ¿óá # undef «Γ¼Ñ¡∩ÑΓ «»αÑñѽѡ¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. è«ú-
  1482.          ñá  «»αÑñѽѡ¿Ñ «Γ¼Ñ¡Ñ¡«, Γ« ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼«ªÑΓ íδΓ∞ ß«»«ßΓáó½Ñ¡
  1483.          ß ñαπú¿¼ º¡áτÑ¡¿Ñ¼. îá¬α«ßδ ¼«úπΓ íδΓ∞ «»αÑñÑ½Ñ¡δ »« «íαáºπ ¿ »«-
  1484.          ñ«í¿ε ß  ó맮óἿ  Σπ¡¬µ¿⌐.  Å«ß¬«½∞¬π  ¼á¬α«ßδ  ¡Ñ  óδαáíáΓδóáεΓ
  1485.          ñÑ⌐ßΓó¿Γѽ∞¡δσ   ó맮ó«ó   Σπ¡¬µ¿⌐,  Γ«  ºá¼Ñ¡á  ó맮ó«ó  Σπ¡¬µ¿⌐
  1486.          ¼á¬α«ßἿ ¼«ªÑΓ »«óδß¿Γ∞ ß¬«α«ßΓ∞  óδ»«½¡Ñ¡¿∩  »α«úαá¼¼δ.  Äñ¡á¬«
  1487.          ¼á¬α«ßδ  ß«ºñáεΓ  »α«í½Ñ¼δ,  Ñß½¿  «¡¿  ΓΘáΓѽ∞¡«  ¡Ñ «»αÑñѽѡδ.
  1488.          îá¬α«-«»αÑñѽѡ¿∩ ß áαúπ¼Ñ¡ΓἿ ¼«úπΓ  »«ΓαÑí«óáΓ∞  ¿ß»«½∞º«óá¡¿∩
  1489.          ¬απú½δσ ß¬«í«¬ ñ½∩ «»αÑñѽѡ¿∩ ßΓáαΦ¿¡ßΓóá «»Ñαᵿ⌐ ó óδαáªÑ¡¿∩σ.
  1490.          îá¬α«ßδ  ¼«úπΓ  ¡Ñ¬«ααÑ¬Γ¡«  »«ó½¿∩Γ∞  ¡á  óδαáªÑ¡¿∩  ß »«í«τ¡δ¼¿
  1491.          φΣѬΓἿ. æ¼«Γα¿ΓÑ »α¿¼Ñαδ  ó  αáºñѽѠ 8.2.1  ñ½∩  í«½ÑÑ  »«½¡«⌐
  1492.          ¿¡Σ«α¼áµ¿¿.
  1493.          
  1494.                 
  1495.                 
  1496.                8.1.1. ä¿αÑ¬Γ¿óá # define
  1497.                 
  1498.                æ¿¡Γá¬ß¿ß:
  1499.                     
  1500.                # define <identifier><text>
  1501.                # define <identifier>(<parameter-list>)<text>
  1502.                 
  1503.                ä¿αÑ¬Γ¿óá  #  define  ºá¼Ñ¡∩ÑΓ óßÑ óσ«ªñÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
  1504.          <identifier> ó  ¿ßσ«ñ¡«⌐  »α«úαἼѠ ¡á  <text>,  «»αÑñѽѡ¡δ⌐  ó
  1505.          ñ¿αÑ¬Γ¿óÑ  ß»αáóá  «Γ  ¿ñÑ¡Γ¿Σ¿¬áΓ«αá.  êñÑ¡Γ¿Σ¿¬áΓ«α ºá¼Ñ¡∩ÑΓß∩,
  1506.          Ñß½¿ «¡ «Σ«α¼½Ñ¡ ó ó¿ñÑ ½Ñ¬ßѼδ. ìá»α¿¼Ñα, ¿ñÑ¡Γ¿Σ¿¬áΓ«α  ¡Ñ  ¿º-
  1507.          ¼Ñ¡∩ÑΓß∩,  Ñß½¿  «¡ »αÑñßΓáó½Ñ¡ ó¡πΓα¿ ßΓ᫬¿ ¿½¿ ¬á¬ τáßΓ∞ í«½ÑÑ
  1508.          ñ½¿¡¡«ú« ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. àß½¿ »«ß½Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ß½ÑñπÑΓ ß»¿ß«¬
  1509.          »áαá¼ÑΓα«ó <parameter-list>, Γ« ñ¿αÑ¬Γ¿óá # define ºá¼Ñ¡∩ÑΓ  ¬áª-
  1510.          ñ«Ñ  óσ«ªñÑ¡¿Ñ  óδαáªÑ¡¿∩ <identifier (parameter-list) ¡á <text>,
  1511.          ¼«ñ¿Σ¿µ¿α«óá¡¡δ⌐ ºá¼Ñ¡«⌐ Σ«α¼á½∞¡δσ áαúπ¼Ñ¡Γ«ó Σá¬Γ¿τÑ߬¿¼¿.
  1512.                <text> »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¡áí«α ½Ñ¬ßѼ, Γᬿσ ¬á¬  ¬½ετÑóδÑ
  1513.          ß½«óá,   ¬«¡ßΓá¡Γδ   ¿½¿  ß«ßΓáó¡δÑ  «»ÑαáΓ«αδ.  Äñ¿¡  ¿½¿  í«½ÑÑ
  1514.          »α«íѽ∞¡δσ ß¿¼ó«½«ó ¼«úπΓ αáºñѽ∩Γ∞ <text> «Γ  <identifier>  (¿½¿
  1515.          «Γ  ºá¬½ετÑ¡¡δσ  ó ß¬«í¬¿ »áαá¼ÑΓα«ó). àß½¿ ΓѬßΓ í«½∞ΦÑ τѼ «ñ¡á
  1516.          ßΓ᫬á,  Γ«  «¡  ¼«ªÑΓ  íδΓ∞  »α«ñ«½ªÑ¡   ¡á   ß½ÑñπεΘÑ⌐   ßΓ᫬Ñ
  1517.          »«ßαÑñßΓó«¼  »ÑτáΓ¿  ß¿¼ó«½á ¡«ó«⌐ ßΓ᫬¿ ß »«ß½ÑñπεΘÑ⌐ ¡á¬½«¡¡«⌐
  1518.          τÑαΓ«⌐ ó½Ñó«.
  1519.                <text> ¼«ªÑΓ íδΓ∞ «»πΘÑ¡. é φΓ«¼ ß½πτáÑ  óßÑ  »αÑñßΓáó¿Γѽ¿
  1520.          ¿ñÑ¡Γ¿Σ¿¬áΓ«αá  <identifier>  íπñπΓ  πñá½Ñ¡δ  ¿º ¿ßσ«ñ¡«ú« ΓѬßΓá
  1521.          »α«úαá¼¼δ. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ, <identifier> αáßß¼áΓα¿óáÑΓß∩ ¬á¬ «»αÑñÑ-
  1522.          ½Ñ¡¡δ⌐ ¿ »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ 1, Ñß½¿  »α«óÑα∩ÑΓß∩  ñ¿αÑ¬Γ¿ó«⌐  #if
  1523.          (ß¼«Γα¿ αáºñѽ 8.4.1).
  1524.                è«úñá  ºáñá¡  ß»¿ß«¬  »áαá¼ÑΓα«ó  <parameter-list>,  Γ«  «¡
  1525.          ß«ñÑαª¿Γ  «ñ¿¡  ¿½¿  í«½ÑÑ  Σ«α¼á½∞¡δσ  »áαá¼ÑΓα«ó,   αáºñѽѡ¡δσ
  1526.          ºá»∩Γ묨.  èáªñ«Ñ  ¿¼∩  ó  ß»¿ß¬Ñ ñ«½ª¡« íδΓ∞ π¡¿¬á½∞¡δ¼ ¿ ß»¿ß«¬
  1527.          ñ«½ªÑ¡ íδΓ∞ ºá¬½ετÑ¡ ó ¬απú½δÑ  ß¬«í¬¿.  ìÑ  ñ«»π߬áεΓß∩  »α«íѽδ
  1528.          ¼Ñªñπ   <identifier>  ¿  «Γ¬αδóáεΘÑ⌐  ß¬«í¬«⌐.  ê¼Ñ¡á  Σ«α¼á½∞¡δσ
  1529.          »áαá¼ÑΓα«ó ó ΓѬßΓÑ  <text>  «Γ¼ÑτáεΓ  ¼ÑßΓá,  ¬πñá  ñ«½ª¡δ  íδΓ∞
  1530.          »«ñßΓáó½Ñ¡δ   Σá¬Γ¿τÑ߬¿Ñ   º¡áτÑ¡¿∩.   èáªñ«Ñ   ¿¼∩  Σ«α¼á½∞¡«ú«
  1531.          »áαá¼ÑΓαá ¼«ªÑΓ »«∩ó¿Γ∞ß∩ ó ΓѬßΓÑ  í«½ÑÑ  «ñ¡«ú«  αáºá  ó  ½εí«¼
  1532.          »«α∩ñ¬Ñ.
  1533.                öá¬Γ¿τÑ߬¿Ñ   áαúπ¼Ñ¡Γδ,   ß½ÑñπεΘ¿Ñ   ¡Ñ»«ßαÑñßΓóÑ¡¡«   ºá
  1534.          ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼  <identifier>  ó  ¿ßσ«ñ¡«¼  Σá⌐½Ñ,  ß««ΓóÑΓßΓóπεΓ
  1535.          Σ«α¼á½∞¡δ¼  »áαá¼ÑΓαá¼  ß»¿ß¬á  »áαá¼ÑΓα«ó <parameter-list> ¿ ¼«-
  1536.  
  1537.                                       - 122 -
  1538.            
  1539.            
  1540.          ñ¿Σ¿µ¿απεΓ <text> »πΓѼ ºá¼Ñ¡δ ¬áªñ«ú« Σ«α¼á½∞¡«ú«  »áαá¼ÑΓαá  ¡á
  1541.          ß««ΓóÑΓßΓóπεΘ¿⌐  Σá¬Γ¿τÑ߬¿⌐.  æ»¿ß¬¿  Σá¬Γ¿τÑ߬¿σ  ¿  Σ«α¼á½∞¡δσ
  1542.          »áαá¼ÑΓα«ó ñ«½ª¡δ ß«ñÑαªáΓ∞ «ñ¡« ¿ Γ« ªÑ τ¿ß½« áαúπ¼Ñ¡Γ«ó.
  1543.                Çαúπ¼Ñ¡Γδ  ß  »«í«τ¡δ¼¿ φΣΣѬΓἿ ¼«úπΓ ßΓáΓ∞ »α¿τ¿¡«⌐ ¡Ñ»-
  1544.          αÑñ߬áºπѼδσ αѺπ½∞ΓáΓ«ó. îá¬α««»αÑñѽѡ¿Ñ ¼«ªÑΓ ß«ñÑαªáΓ∞  í«½ÑÑ
  1545.          «ñ¡«ú«  óσ«ªñÑ¡¿∩ ñá¡¡«ú« Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá, ¿ Ñß½¿ φëàӫα-
  1546.          ¼á½∞¡δ⌐ »áαá¼ÑΓα »αÑñßΓáó½Ñ¡ óδαáªÑ¡¿Ñ¼ ß »«í«τ¡δ¼  φΣΣÑ¬Γ«¼,  Γ«
  1547.          φΓ« óδαáªÑ¡¿Ñ íπñÑΓ óδτ¿ß½∩Γ∞ß∩ í«½ÑÑ τѼ «ñ¿¡ αáº.
  1548.                 
  1549.                Åα¿¼Ñαδ:
  1550.                 /*.....* example 1 *.....*/
  1551.                 #define WIDTH    80
  1552.                 #define LENGTH   (WIDTH + 10)
  1553.                 
  1554.                 /*.....* example 2 *.....*/
  1555.                 #define FILEMESSAGE "Attempt too create file \
  1556.                 failed because of insufficient space"
  1557.                 
  1558.                 /*.....* example 3 *.....*/
  1559.                 #define REG1     register
  1560.                 #define REG2     register
  1561.                 #define REG3
  1562.                 
  1563.                 /*.....* example 4 *.....*/
  1564.                 #define MAX(x,y)    ((x) > (y)) ? (x) : (y)
  1565.                 
  1566.                 /*.....* example 5 *.....*/
  1567.                 #define MULT (a,b)  ((a) * (b))
  1568.                 
  1569.                é  »Ñαó«¼  »α¿¼ÑαÑ  «»αÑñѽ∩ÑΓß∩  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  WIDTH, ¬á¬
  1570.          µÑ½á∩ ¬«¡ßΓá¡Γá 80,  ¿  «»αÑñѽ∩ÑΓß∩  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  LENGTH,  ¬á¬
  1571.          (WIDTH + 10). èáªñ«Ñ óσ«ªñÑ¡¿Ñ LENGTH ºá¼Ñ¡∩ÑΓß∩ ¡á (WIDTH + 10),
  1572.          ¬«Γ«α«Ñ  ó ßó«ε «τÑαÑñ∞ ºá¼Ñ¡∩ÑΓß∩ ¡á óδαáªÑ¡¿Ñ (80 + 10). æ¬«í¬¿
  1573.          ∩ó½∩εΓß∩  óáª¡δ¼¿,  »«ß¬«½∞¬π  «¡¿  π»αáó½∩εΓ  ¿¡ΓÑα»αÑΓᵿÑ⌐   ó
  1574.          «»ÑαáΓ«αáσ, »«ñ«í¡δσ ß½ÑñπεΘѼπ:
  1575.                 
  1576.                var = LENGTH * 20;
  1577.                 
  1578.                Å«ß½Ñ »αÑ»α«µÑßß¿α«óá¡¿∩ «»ÑαáΓ«α íπñÑΓ Γᬿ¼:
  1579.                 
  1580.                var = (80 + 10) * 20;
  1581.                 
  1582.                ç¡áτÑ¡¿Ñ,  ¬«Γ«α«Ñ  »α¿ßóá¿óáÑΓß∩,  αáó¡«  1800. üѺ ß¬«í«¬
  1583.          º¡áτÑ¡¿Ñ 80+10*20 αáó¡∩½«ß∞ íδ 280.
  1584.                é« óΓ«α«¼ »α¿¼ÑαÑ «»αÑñѽ∩ÑΓß∩  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  FILEMESSAGE.
  1585.          Ä»αÑñѽѡ¿Ñ  »α«ñ«½ªáÑΓß∩  ¡á  óΓ«απε  ßΓ᫬π »πΓѼ ¿ß»«½∞º«óá¡¿∩
  1586.          ß¿¼ó«½á "\".
  1587.                é  ΓαÑΓ∞Ѽ  »α¿¼ÑαÑ  «»αÑñÑ½Ñ¡δ  Γα¿  ¿ñÑ¡Γ¿Σ¿¬áΓ«αá, REG1,
  1588.          REG2, REG3. REG1 ¿ REG2 «»αÑñÑ½Ñ¡δ ¬á¬ ¬½ετÑóδÑ  ß½«óá  register.
  1589.          Ä»αÑñѽѡ¿Ñ  REG3  «»πΘÑ¡« ¿, Γᬿ¼ «íαẫ¼, ½εí«Ñ óσ«ªñÑ¡¿Ñ REG3
  1590.          íπñÑΓ πñá½Ñ¡« ¿º ¿ßσ«ñ¡«ú« Σá⌐½á. ¥Γ¿ ñ¿αÑ¬Γ¿óδ  ¼«úπΓ  íδΓ∞  ¿ß-
  1591.          »«½∞º«óá¡δ  ñ½∩ Γ«ú«, τΓ«íδ «íÑß»Ñτ¿Γ∞ ¡á¿í«½ÑÑ óáª¡δ¼ »ÑαѼѡ¡δ¼
  1592.          »α«úαá¼¼δ  (ºáñá¡¡δ¼  ß  REG1  ¿  REG2)  ºáñá¡¿Ñ  ¬½áßßá   »á¼∩Γ¿
  1593.          register. é αáºñѽѠ8.4.1 ñá¡á αáßΦ¿αÑ¡¡á∩ óÑαß¿∩ φΓ«ú« »α¿¼Ñαá.
  1594.                é  τÑΓóÑαΓ«¼  »α¿¼ÑαÑ  ñá¡« ¼á¬α««»αÑñѽѡ¿Ñ, »«¿¼Ñ¡«óá¡¡«Ñ
  1595.  
  1596.                                       - 123 -
  1597.            
  1598.            
  1599.          MAX. èáªñ«Ñ ΓѬπΘÑÑ óσ«ªñÑ¡¿Ñ ¼á¬α«-ó맮óá MAX ó  ¿ßσ«ñ¡«¼  Σá⌐½Ñ
  1600.          ºá¼Ñ¡∩ÑΓß∩ óδαáªÑ¡¿Ñ¼ ((x)>(y))?(x):(y), ó ¬«Γ«α«¼ Σ«α¼á½∞¡δÑ »á-
  1601.          αá¼ÑΓαδ x ¿ y ºá¼Ñ¡∩εΓß∩ ¡á Σá¬Γ¿τÑ߬¿Ñ. ìá»α¿¼Ñα, óσ«ªñÑ¡¿Ñ
  1602.                 MAX(1,2)
  1603.          ºá¼Ñ¡∩ÑΓß∩ ¡á
  1604.                 ((1)>(2)?(1):(2),
  1605.          á óσ«ªñÑ¡¿Ñ
  1606.                 MAX (i, s[i])
  1607.          ºá¼Ñ¡∩ÑΓß∩ ¡á
  1608.                 ((i)>(s[i]))?(i):(s[i])
  1609.                îá¬α«-óδº«ó  »α«ΘÑ  τ¿ΓáΓ∞,  τѼ ß««ΓóÑΓßΓóπεΘÑÑ óδαáªÑ¡¿Ñ,
  1610.          ¬«Γ«α«Ñ »«ñßΓáó½∩ÑΓß∩. êßσ«ñ¡á∩ »α«úαἼᠠßΓá¡«ó¿Γß∩  »α«ΘÑ  ñ½∩
  1611.          »«¡¿¼á¡¿∩.
  1612.                çá¼ÑΓ¿¼,  τΓ«  ó φΓ«¼ ¼á¬α« áαúπ¼Ñ¡Γδ ß »«í«τ¡δ¼¿ φΣΣѬΓἿ
  1613.          ¼«úπΓ íδΓ∞ »α¿τ¿¡«⌐ ¡Ñ»αÑñ߬áºπѼδσ αѺπ½∞ΓáΓ«ó.
  1614.                ìá»α¿¼Ñα, ¼á¬α«-ó맮ó MAX (i,s[i++]) ºá¼Ñ¡¿Γß∩ ¡á
  1615.                 
  1616.                ((i)>(s[i++]))?(i):(s[i++])
  1617.                
  1618.                éδαáªÑ¡¿Ñ s[i++] óδτ¿ß½∩ÑΓß∩ ñóáªñδ.  ÉѺπ½∞ΓáΓ  ΓÑα¡áα¡«ú«
  1619.          óδαáªÑ¡¿∩  ¡Ñ«»αÑñѽѡ, Γ.¬. Ñú« «»ÑαáΓ«αδ ¼«úπΓ íδΓ∞ óδτ¿ß½Ñ¡δ ó
  1620.          ½εí«¼  »«α∩ñ¬Ñ,  á  º¡áτÑ¡¿Ñ  »ÑαѼѡ¡«⌐  i  ºáó¿ß¿Γ  «Γ  »«α∩ñ¬á
  1621.          óδτ¿ß½Ñ¡¿∩.
  1622.                é   »∩Γ«¼   »α¿¼ÑαÑ   «»αÑñѽ∩ÑΓß∩  ¼á¬α«  ß  ¿¼Ñ¡Ñ¼  MULT.
  1623.          îá¬α«ó맮ó MULT (3,5) ó ΓѬßΓÑ »α«úαá¼¼δ ºá¼Ñ¡∩ÑΓß∩  ¡á  (3)*(5).
  1624.          èαπú½δÑ  ß¬«í¬¿,  ó  ¬«Γ«αδÑ ºá¬½ετáεΓß∩  Σá¬Γ¿τÑ߬¿Ñ  »áαá¼ÑΓαδ,
  1625.          ó᪡δ,   »«ß¬«½∞¬π   «¡¿   π»αáó½∩εΓ   ¿¡ΓÑα»αÑΓᵿÑ⌐   ß«ßΓáó¡δσ
  1626.          áαúπ¼Ñ¡Γ«ó.  ìá»α¿¼Ñα,  ¼á¬α«ó맮ó  MULT  (3+4,5+6)  ºá¼Ñ¡¿Γß∩ ¡á
  1627.          (3+4)*(5+6), τΓ« φ¬ó¿óá½Ñ¡Γ¡« 76. üѺ ß¬«í«¬ αѺπ½∞ΓáΓ »«ñßΓá¡«ó-
  1628.          ¬¿ 3+4*5+6 αáóÑ¡ 29.
  1629.                
  1630.          
  1631.                8.1.2. ä¿αÑ¬Γ¿óá #undef
  1632.                 
  1633.                æ¿¡Γá¬ß¿ß:
  1634.                 
  1635.                #undef <identifier>
  1636.                 
  1637.                ä¿αÑ¬Γ¿óá #undef «Γ¼Ñ¡∩ÑΓ ΓѬπΘÑÑ «»αÑñѽѡ¿Ñ #define ¿ñÑ¡-
  1638.          Γ¿Σ¿¬áΓ«αá <identifier>. ùΓ«íδ «Γ¼Ñ¡¿Γ∞ ¼á¬α««»αÑñѽѡ¿Ñ »«ßαÑñß-
  1639.          Γó«¼ ñ¿αÑ¬Γ¿óδ #undef, ñ«ßΓáΓ«τ¡« ºáñáΓ∞ Ñú« ¿ñÑ¡Γ¿Σ¿¬áΓ«α. çáñá-
  1640.          ¡¿Ñ ß»¿ß¬á »áαá¼ÑΓα«ó ¡Ñ ΓαÑíπÑΓß∩.
  1641.                ä¿αÑ¬Γ¿óá #undef ¼«ªÑΓ  íδΓ∞  »α¿¼Ñ¡Ñ¡á  ¬  ¿ñÑ¡Γ¿Σ¿¬áΓ«απ,
  1642.          ¬«Γ«αδ⌐ αá¡ÑÑ ¡Ñ «»αÑñѽѡ. ¥Γ« ñ«»«½¡¿Γѽ∞¡á∩ úáαá¡Γ¿∩ Γ«ú«, τΓ«
  1643.          ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¡Ñ «»αÑñѽѡ.
  1644.                ä¿αÑ¬Γ¿óá  #undef «íδτ¡« ¿ß»«½∞ºπÑΓß∩ ß ñ¿αÑ¬Γ¿ó«⌐ #define,
  1645.          τΓ«íδ ß«ºñáΓ∞ «í½áßΓ∞ ¿ßσ«ñ¡«⌐ »α«úαá¼¼δ, ó ¬«Γ«α«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α
  1646.          ¿¼ÑÑΓ ß»Ñµ¿á½∞¡δ⌐ ß¼δß½. ä¿αÑ¬Γ¿óá #undef  ¿ß»«½∞ºπÑΓß∩  ΓᬪѠ ß
  1647.          ñ¿αÑ¬Γ¿ó«⌐  #if  (ß¼«Γα¿ αáºñѽ 8.4.1) ñ½∩ π»αáó½Ñ¡¿∩ ßαáó¡Ñ¡¿∩¼¿
  1648.          πτáßΓ¬«ó ¿ßσ«ñ¡«⌐ »α«úαá¼¼δ.
  1649.                 
  1650.                Åα¿¼Ñα:
  1651.                
  1652.                 #define WIDTH         80
  1653.                 #define ADD(X,Y)      (X)+(Y)
  1654.  
  1655.                                       - 124 -
  1656.            
  1657.            
  1658.                 .
  1659.                 .
  1660.                 .
  1661.                 #undef WIDTH
  1662.                 #undef ADD
  1663.                 
  1664.                é φΓ«¼ »α¿¼ÑαÑ ñ¿αÑ¬Γ¿óá #undef «Γ¼Ñ¡∩ÑΓ «»αÑñѽѡ¿Ñ »«¿¼Ñ-
  1665.          ¡«óá¡¡«⌐  ¬«¡ßΓá¡Γδ ¿ ¼á¬α«ßá. çá¼ÑΓ¿¼, τΓ« ó ñ¿αÑ¬Γ¿óáσ ºáñáεΓß∩
  1666.          Γ«½∞¬« ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¿ ¿¼∩ ¼á¬α«ßá.
  1667.                
  1668.                
  1669.                8.2. #include Σá⌐½δ
  1670.                 
  1671.                æ¿¡Γá¬ß¿ß:
  1672.                 
  1673.                #include "<pathname>"
  1674.                #include <<pathname>>
  1675.                 
  1676.                ä¿αÑ¬Γ¿óá #include ñ«íáó½∩ÑΓ ß«ñÑন¼«Ñ  ºáñá¡¡«ú«  include
  1677.          Σá⌐½á ¬ ñαπú«¼π Σá⌐½π. Ä»αÑñѽѡ¿∩ ¬«¡ßΓá¡Γ ¿ ¼á¬α«ß«ó ¼«úπΓ íδΓ∞
  1678.          «αúá¡¿º«óá¡δ  ó  "include"  Σá⌐½áσ ¿ ñ«íáó½Ñ¡δ ¬ ½εí«¼π ¿ßσ«ñ¡«¼π
  1679.          Σá⌐½π #include ñ¿αÑ¬Γ¿ó«⌐.  "include"  Σá⌐½δ  ΓᬪѠ »«½Ñº¡δ  ñ½∩
  1680.          «í"∩ó½Ñ¡¿⌐  «íΘ¿σ  ó¡ÑΦ¡¿σ  »ÑαѼѡ¡δσ  ¿ ß«ßΓáó¡δσ Γ¿»«ó ñá¡¡δσ.
  1681.          Æ¿»δ, ¬«Γ«αδÑ ΓαÑíπÑΓß∩ «í"∩ó¿Γ∞  ¿  »«¿¼Ñ¡«óáΓ∞  «ñ¡áªñδ,  ΓᬪÑ
  1682.          ß«ºñáεΓß∩ ó #include-Σá⌐½áσ.
  1683.                ä¿αÑ¬Γ¿óá #include ß««íΘáÑΓ »αÑ»α«µÑßß«απ «í «íαáí«Γ¬Ñ Σá⌐-
  1684.          ½á,  ¬á¬ Ñß½¿ íδ φëàΣá⌐½ »«∩ó¿½ß∩ ó ¿ßσ«ñ¡«⌐ »α«úαἼѠó Γ«τ¬Ñ,
  1685.          úñÑ ºá»¿ßá¡á ñ¿αÑ¬Γ¿óá. Äíαáí«Γá¡¡δ⌐ ΓѬßΓ ΓᬪѠ¼«ªÑΓ  ß«ñÑαªáΓ∞
  1686.          ñ¿αÑ¬Γ¿óδ  »αÑ»α«µÑßß«αá. ÅαÑ»α«µÑßß«α óδ»«½¡∩ÑΓ ñ¿αÑ¬Γ¿óδ ¿º ¡«-
  1687.          ó«ú« ΓѬßΓá, á ºáΓѼ »α«ñ«½ªáÑΓ  »α«µÑßß¿α«óá¡¿Ñ  »Ñαó«¡áτá½∞¡«ú«
  1688.          ΓѬßΓá ¿ßσ«ñ¡«ú« Σá⌐½á.
  1689.                ê¼∩  Σá⌐½á  <pathname>  -  φΓ«  ¿¼∩  Σá⌐½á ß »αÑñΦÑßΓóπεΘÑ⌐
  1690.          ß»Ñµ¿Σ¿¬áµ¿Ñ⌐ ñ¿αÑ¬Γ«α¿∩. æ¿¡Γá¬ß¿ß ß»Ñµ¿Σ¿¬áµ¿¿ Σá⌐½á ºáó¿ß¿Γ «Γ
  1691.          ß»Ñµ¿Σ¿¬¿ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ, ó ¬«Γ«α«⌐ ¬«¼»¿½¿απÑΓß∩  »α«úαá¼-
  1692.          ¼á.
  1693.                ÅαÑ»α«µÑßß«α ¿ß»«½∞ºπÑΓ ¬«¡µÑ»µ¿ε "ßΓá¡ñáαΓ¡«ú«" ñ¿αÑ¬Γ«α¿∩
  1694.          ¿½¿  ñ¿αÑ¬Γ«α¿Ñó  ñ½∩  »«¿ß¬á #include-Σá⌐½«ó. Éáß»«½«ªÑ¡¿Ñ ßΓá¡-
  1695.          ñáαΓ¡δσ ñ¿αÑ¬Γ«α¿Ñó ñ½∩ #include-Σá⌐½«ó ºáó¿ß¿Γ «Γ  αÑ὿ºáµ¿¿  ¿
  1696.          «»Ñαᵿ«¡¡«⌐   ß¿ßΓѼδ.   æ¼«Γα¿ΓÑ   ß¿ßΓѼ¡πε  ñ«¬π¼Ñ¡Γáµ¿ε  ñ½∩
  1697.          »«½πτÑ¡¿∩ ¿¡Σ«α¼áµ¿¿ « ßΓá¡ñáαΓ¡δσ ñ¿αÑ¬Γ«α¿∩σ.
  1698.          
  1699.                ÅαÑ»α«µÑßß«α «ßΓá¡áó½¿óáÑΓ »«¿ß¬ »α¿ »Ñαó«¼ »«∩ó½Ñ¡¿¿ Σá⌐½á
  1700.          ß ºáñá¡¡δ¼ ¿¼Ñ¡Ñ¼. àß½¿  ºáñá¡«  »«½¡«Ñ  «ñ¡«º¡áτ¡«Ñ  <pathname>,
  1701.          ºá¬½ετÑ¡¡«Ñ  ó  ñó«⌐¡δÑ ¬áóδτ¬¿ (" ") ¿½¿ ó πú½«óδѠ߬«í¬¿ (< >),
  1702.          Γ« »αÑ»α«µÑßß«α ¿ΘÑΓ Γ«½∞¬« φΓ«  <pathname>  ¿  ¿ú¡«α¿απÑΓ  ßΓá¡-
  1703.          ñáαΓ¡δÑ  ñ¿αÑ¬Γ«α¿¿.  àß½¿  ß»Ñµ¿Σ¿¬áµ¿∩  Σá⌐½á  ¡Ñ ºáñá¡á »«½¡δ¼
  1704.          <pathname>, ¡« ¡Ñ»«½¡á∩ ß»Ñµ¿Σ¿¬áµ¿∩ Σá⌐½á  ºá¬½ετѡᠠó  ñó«⌐¡δÑ
  1705.          ¬áóδτ¬¿,  Γ«  »αÑ»α«µÑßß«α  ¡áτ¿¡áÑΓ  »«¿ß¬  ó¬½ετáѼ«ú«  Σá⌐½á ó
  1706.          ΓѬπΘѼ αáí«τѼ ñ¿αÑ¬Γ«α¿¿. çáΓѼ »αÑ»α«µÑßß«α »α«ñ«½ªáÑΓ »«¿ß¬ ó
  1707.          ñ¿αÑ¬Γ«α¿∩σ, ß»Ñµ¿Σ¿µ¿α«óá¡¡δσ ó ¬«¼á¡ñá¡«⌐ ßΓα«¬Ñ ¬«¼»¿½∩µ¿¿, ¿,
  1708.          ¡á¬«¡Ñµ, ¿ΘÑΓ ó ßΓá¡ñáαΓ¡δσ ñ¿αÑ¬Γ«α¿∩σ.
  1709.                àß½¿  ß»Ñµ¿Σ¿¬áµ¿∩  Σá⌐½á  ºá¬½ετѡᠠó  πú½«óδѠ߬«í¬¿, Γ«
  1710.          »αÑ»α«µÑßß«α  ¡Ñ  íπñÑΓ  «ßπΘÑßΓó½∩Γ∞  »«¿ß¬  ó  ΓѬπΘѼ  αáí«τѼ
  1711.          ñ¿αÑ¬Γ«α¿¿.  Ä¡  ¡áτ¡ÑΓ  »«¿ß¬ ó ñ¿αÑ¬Γ«α¿∩σ, ß»Ñµ¿Σ¿µ¿α«óá¡¡δσ ó
  1712.          ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ ¬«¼»¿½∩µ¿¿, á ºáΓѼ ó ßΓá¡ñáαΓ¡δσ ñ¿αÑ¬Γ«α¿∩σ.
  1713.  
  1714.                                       - 125 -
  1715.            
  1716.            
  1717.                ä¿αÑ¬Γ¿óá #include ¼«ªÑΓ íδΓ∞ ó½«ªÑ¡¡«⌐,  ñαπú¿¼¿  ß½«óἿ,
  1718.          ñ¿αÑ¬Γ¿óá  ¼«ªÑΓ »«∩ó¿Γ∞ß∩ ó Σá⌐½Ñ, »«¿¼Ñ¡«óá¡¡«¼ ñαπú«⌐ #include
  1719.          ñ¿αÑ¬Γ¿ó«⌐.    è«úñá     »αÑ»α«µÑßß«α     óßΓαÑτáÑΓ     ó½«ªÑ¡¡πε
  1720.          #include-ñ¿αÑ¬Γ¿óπ,  Γ«  «¡  «íαáíáΓδóáÑΓ  Σá⌐½  φΓ«⌐ ñ¿αÑ¬Γ¿óδ ¿
  1721.          óßΓáó½∩ÑΓ Ñú« ó ΓѬπΘ¿⌐ Σá⌐½. ÅαÑ»α«µÑßß«α ¿ß»«½∞ºπÑΓ ΓÑ ªÑ ßá¼δÑ
  1722.          «»¿ßá¡¡δÑ óδΦÑ »α«µÑñπαδ ñ½∩  »«¿ß¬á  ó½«ªÑ¡¡δσ  #include-Σá⌐½«ó.
  1723.          ì«óδ⌐  Σá⌐½ ΓᬪѠ¼«ªÑΓ ß«ñÑαªáΓ∞ ñ¿αÑ¬Γ¿óδ #include. ä«»π߬áÑΓß∩
  1724.          ó½«ªÑ¡¿Ñ ñ« ñÑß∩Γ¿ πα«ó¡Ñ⌐. èá¬ Γ«½∞¬«  ó½«ªÑ¡¡δÑ  #include-Σá⌐½δ
  1725.          «íαáí«Γá¡δ, »αÑ»α«µÑßß«α óßΓáó½∩ÑΓ φëàΣá⌐½ ó ¿ßσ«ñ¡δ⌐ ΓѬßΓ«óδ⌐
  1726.          Σá⌐½ »α«úαá¼¼δ.
  1727.                 
  1728.                 Åα¿¼Ñαδ:
  1729.                 
  1730.                #include <stdio.h> /* example 1 */
  1731.                #include "defs.h" /* example 2 */
  1732.                 
  1733.                é »Ñαó«¼ »α¿¼ÑαÑ ó ¿ßσ«ñ¡πε  »α«úαá¼¼¼π  óßΓáó½∩ÑΓß∩  Σá⌐½,
  1734.          »«¿¼Ñ¡«óá¡¡δ⌐ stdio.h. ôú½«óδѠ߬«í¬¿ ß««íΘáεΓ »αÑ»α«µÑßß«απ, τΓ«
  1735.          »«¿ß¬  Σá⌐½á  ¡πª¡«  «ßπΘÑßΓó½∩Γ∞ ó ßΓá¡ñáαΓ¡δσ ñ¿αÑ¬Γ«α¿∩σ »«ß½Ñ
  1736.          »«¿ß¬á ó ñ¿αÑ¬Γ«α¿¿, ß»Ñµ¿Σ¿µ¿α«óá¡¡«¼ ó ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ.
  1737.                é«  óΓ«α«¼  »α¿¼ÑαÑ  ó ¿ßσ«ñ¡πε »α«úαá¼¼π óßΓáó½∩ÑΓß∩ Σá⌐½,
  1738.          »«¿¼Ñ¡«óá¡¡δ⌐ defs.h. äó«⌐¡δÑ ¬áóδτ¬¿ «º¡áτáεΓ,  τΓ«  »α¿  »«¿ß¬Ñ
  1739.          Σá⌐½á ó¡áτá½Ñ ñ«½ªÑ¡ íδΓ∞ »α«ß¼«ΓαÑ¡ ΓѬπΘ¿⌐ ñ¿αÑ¬Γ«α¿⌐.
  1740.                
  1741.                
  1742.                8.3. ôß½«ó¡á∩ ¬«¼»¿½∩µ¿∩
  1743.                 
  1744.                é αáºñѽѠ¿ß»«½∞ºπÑΓß∩ ß¿¡Γá¬ß¿ß ¿ ¿ß»«½∞º«óá¡¿Ñ  ñ¿αÑ¬Γ¿ó,
  1745.          ¬«Γ«αδÑ  π»αáó½∩εΓ  πß½«ó¡«⌐ ¬«¼»¿½∩µ¿Ñ⌐. ¥Γ¿ ñ¿αÑ¬Γ¿óδ »«ºó«½∩εΓ
  1746.          «Γ¼Ñ¡¿Γ∞ ¬«¼»¿½∩µ¿ε τáßΓÑ⌐ ¿ßσ«ñ¡«ú« Σá⌐½á  »«ßαÑñßΓó«¼  »α«óÑન
  1747.          ¬«¡ßΓá¡Γ¡δσ  óδαáªÑ¡¿⌐ ¿½¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, »α¿ ¬«Γ«α«⌐ «»αÑñѽ∩-
  1748.          ÑΓß∩ ¡πª¡« ½¿ »ÑαÑñáóáΓ∞ ¡á óδσ«ñ ¿½¿ »α«»πßΓ¿Γ∞ ñá¡¡πε τáßΓ∞ ¿ß-
  1749.          σ«ñ¡«ú« Σá⌐½á ¡á ßΓáñ¿¿ »αÑ»α«µÑ ßß¿α«óá¡¿∩.
  1750.          
  1751.                
  1752.                8.3.1. ä¿αÑ¬Γ¿óδ #if, #elif, #else, #endif
  1753.                 
  1754.                æ¿¡Γá¬ß¿ß:
  1755.                 
  1756.                 #if <restricted-constant-expression>
  1757.                    [<text>]
  1758.                 [#elif <restricted-constant-expression><text>]
  1759.                 [*elif <restricted-constant-expression><text>]
  1760.                 .
  1761.                 .
  1762.                 .
  1763.                 [#else <text>]
  1764.                 #endif
  1765.                 
  1766.                ä¿αÑ¬Γ¿óá  #if  ó¼ÑßΓÑ ß ñ¿αÑ¬Γ¿óἿ #elif, #else ¿ #endiif
  1767.          π»αáó½∩ÑΓ ¬«¼»¿½∩µ¿Ñ⌐ τáßΓÑ⌐ ¿ßσ«ñ¡«ú«  Σá⌐½á.  èáªñ«⌐  ñ¿αÑ¬Γ¿óÑ
  1768.          #if ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ ñ«½ª¡á ß««ΓóÑΓßΓó«óáΓ∞ ºá¬αδóáεΘá∩ ñ¿αÑ¬Γ¿óá
  1769.          #endif. îѪñπ ñ¿αÑ¬Γ¿óἿ #if ¿ #endif ñ«»π߬áÑΓß∩ ¡π½∞ ¿½¿ í«½ÑÑ
  1770.          ñ¿αÑ¬Γ¿ó #elif ¿ ¡Ñ í«½ÑÑ «ñ¡«⌐ ñ¿αÑ¬Γ¿óδ #else. ä¿αÑ¬Γ¿óá #else,
  1771.          Ñß½¿  «¡á  ÑßΓ∞,  ñ«½ª¡á  íδΓ∞  αáß»«½«ªÑ¡á ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ
  1772.  
  1773.                                       - 126 -
  1774.            
  1775.            
  1776.          ñ¿αÑ¬Γ¿ó«⌐ #endif.
  1777.                ÅαÑ»α«µÑßß«α óδí¿αáÑΓ «ñ¿¡ ¿º  πτáßΓ¬«ó  ΓѬßΓá-<text>  ñ½∩
  1778.          ñá½∞¡Ñ⌐ΦÑ⌐   «íαáí«Γ¬¿.  ôτáßΓ«¬  <text>  -  φΓ«  ½εíá∩  »«ß½Ññ«-
  1779.          óáΓѽ∞¡«ßΓ∞ ΓѬßΓá. Ä¡ ¼«ªÑΓ ºá¡¿¼áΓ∞ í«½ÑÑ «ñ¡«⌐ ßΓ᫬¿.  Äíδτ¡«
  1780.          φΓ« πτáßΓ«¬ »α«úαá¼¼¡«ú« ΓѬßΓá, ¬«Γ«αδ⌐  ¿¼ÑÑΓ  ß¼δß½  ñ½∩  ¬«¼-
  1781.          »¿½∩Γ«αá  ¿½¿ »αÑ»α«µÑßß«αá. Äñ¡á¬«, φΓ« ¡Ñ «í∩ºáΓѽ∞¡«Ñ ΓαÑí«óá-
  1782.          ¡¿Ñ. ÅαÑ»α«µÑßß«α ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ «íαáí«Γ¬¿ ½εí«ú« ΓѬßΓá.
  1783.                éδíαá¡¡δ⌐ ΓѬßΓ «íαáíáΓδóáÑΓß∩ »αÑ»α«µÑßß«α«¼ ¿  »«ßδ½áÑΓß∩
  1784.          ¡á  ¬«¼»¿½∩µ¿ε.  àß½¿ <text> ß«ñÑαª¿Γ ñ¿αÑ¬Γ¿óδ »αÑ»α«µÑßß«αá, Γ«
  1785.          φΓ¿ ñ¿αÑ¬Γ¿óδ óδ»«½¡∩εΓß∩.
  1786.                ïεí«⌐ πτáßΓ«¬  ΓѬßΓá,  ¡Ñ  óδíαá¡¡δ⌐  »αÑ»α«µÑßß«α«¼,  ¿ú-
  1787.          ¡«α¿απÑΓß∩ ¡á ßΓáñ¿¿ »αÑ»α«µÑßß¿α«óá¡¿∩ ¿ ó»«ß½ÑñßΓó¿¿  ¡Ñ ¬«¼»¿-
  1788.          ½¿απÑΓß∩.
  1789.                ÅαÑ»α«µÑßß«α  óδí¿αáÑΓ  «Γñѽ∞¡δ⌐ πτáßΓ«¬ ΓѬßΓá  ¡á «ß¡«óÑ
  1790.          óδτ¿ß½Ñ¡¿∩       «úαá¡¿τÑ¡¡«ú«       ¬«¡ßΓá¡Γ¡«ú«       óδαáªÑ¡¿∩
  1791.          <restricted-constant-expression>,  ß½ÑñπεΘÑú«  ºá  ¬áªñ«⌐ #if ¿½¿
  1792.          #elif ñ¿αÑ¬Γ¿ó«⌐, »«¬á ¡Ñ íπñÑΓ ¡á⌐ñÑ¡«  óδαáªÑ¡¿Ñ  ß«  º¡áτÑ¡¿Ñ¼
  1793.          ¿ßΓ¿¡á  (¡Ñ  ¡π½∞).  éδí¿αáÑΓß∩  <text>,  ß½ÑñπεΘ¿⌐  ºá  ¿ßΓ¿¡¡δ¼
  1794.          ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼, ñ« í½¿ªá⌐ΦÑú« º¡á¬á ¡«¼Ñαá (#).
  1795.                àß½¿ «úαá¡¿τÑ¡¡«Ñ ¬«¡ßΓá¡Γ¡«Ñ  óδαáªÑ¡¿Ñ  ¡Ñ  ¿ßΓ¿¡¡«   ¿½¿
  1796.          «ΓßπΓßΓóπÑΓ  ñ¿αÑ¬Γ¿óá  #elif,  Γ«  »αÑ»α«µÑßß«α  óδí¿αáÑΓ <text>
  1797.          »«ß½Ñ ºá»¿ß¿  #else.  àß½¿  ºá»¿ß∞  #else  «»πΘÑ¡á,  á  óδαáªÑ¡¿Ñ
  1798.          ñ¿αÑ¬Γ¿óδ #if ½«ª¡«, Γ« ΓѬßΓ ¡Ñ óδí¿αáÑΓß∩.
  1799.                                      
  1800.                Äúαá¡¿τÑ¡¡«Ñ              ¬«¡ßΓá¡Γ¡«Ñ             óδαáªÑ¡¿Ñ
  1801.          <restricted-constant-expression> «»¿ßá¡« ó αáºñѽѠ5.2.10.  Æá¬«Ñ
  1802.          óδαáªÑ¡¿Ñ  ¡Ñ  ¼«ªÑΓ ß«ñÑαªáΓ∞ sizeof óδαáªÑ¡¿⌐, ¬áßΓ«óδσ óδαáªÑ-
  1803.          ¡¿⌐,  »ÑαÑτ¿ß½¿¼δσ  ¬«¡ßΓá¡Γ,  ¡«  ¼«ªÑΓ  ß«ñÑαªáΓ∞   ß»Ñµ¿á½∞¡δÑ
  1804.          ¬«¡ßΓá¡Γ¡δÑ  óδαáªÑ¡¿∩  defined  (<identifier>).  ¥Γ« ¬«¡ßΓá¡Γ¡«Ñ
  1805.          óδαáªÑ¡¿Ñ ¿ßΓ¿¡¡«, Ñß½¿  ºáñá¡¡δ⌐  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  <identifier>  ó
  1806.          ΓѬπΘ¿⌐  ¼«¼Ñ¡Γ  «»αÑñѽѡ,  ó  »α«Γ¿ó¡«¼ ß½πτáÑ óδαáªÑ¡¿Ñ ½«ª¡«.
  1807.          êñÑ¡Γ¿Σ¿¬áΓ«α  <identifier>,  «»αÑñѽѡ¡δ⌐   ¬á¬   »πßΓ«⌐  ΓѬßΓ,
  1808.          αáßß¼áΓα¿óáÑΓß∩ ¬á¬ «»αÑñѽѡ¡δ⌐.
  1809.                ä¿αÑ¬Γ¿óδ  #if, #elif, #else, #endif ¼«úπΓ íδΓ∞ ó½«ªÑ¡¡δ¼¿.
  1810.          èáªñá∩ ¿º ó½«ªÑ¡¡δσ ñ¿αÑ¬Γ¿ó #else, #elif, #endif  »α¿¡áñ½Ñª¿Γ  ¬
  1811.          í½¿ªá⌐ΦÑ⌐ »αÑñΦÑßΓóπεΘÑ⌐ ñ¿αÑ¬Γ¿óÑ #if.
  1812.                 
  1813.                Åα¿¼Ñαδ:
  1814.                 
  1815.                /*.....* example 1 *.....*/
  1816.                 #if defined (CREDIT)
  1817.                     credit ();
  1818.                 #elif defined (DEBIT)
  1819.                     debit ();
  1820.                 #else
  1821.                     printerror ();
  1822.                 #endif
  1823.                 
  1824.                 /*.....* example 2 *.....*/
  1825.                 #if DLEVEL>5
  1826.                     #define SIGNAL  1
  1827.                     #if STACKUSE == 1
  1828.                                     #define STACK  200
  1829.                     #else
  1830.                                     #define STACK  100
  1831.  
  1832.                                       - 127 -
  1833.            
  1834.            
  1835.                     #endif
  1836.                 #else
  1837.                     #define SIGNAL  0
  1838.                     #if STACKUSE == 1
  1839.                                     #define STACK  100
  1840.                     #else
  1841.                                     #define STACK  50
  1842.                     #endif
  1843.                 #endif
  1844.                 
  1845.                 /*.....* example 3 *.....*/
  1846.                 #if DLEVEL == 0
  1847.                     #define STACK 0
  1848.                 #elif DLEVEL == 1
  1849.                     #define STACK 100
  1850.                 #elif DLEVEL > 5
  1851.                     display ( debugptr );
  1852.                 #else
  1853.                                 
  1854.                     #define STACK 200
  1855.                 #endif
  1856.                 
  1857.                 /*.....* example 4 *.....*/
  1858.                 #define REG1  register
  1859.                 #define REG2  register
  1860.                 
  1861.                 #if defined(M_86)
  1862.                     #define REG3
  1863.                     #define REG4
  1864.                     #define REG5
  1865.                 #else
  1866.                     #define REG3   register
  1867.                     #if defined(M_68000)
  1868.                             #define REG4   register
  1869.                             #define REG5   register
  1870.                     #endif
  1871.                 #endif
  1872.                 
  1873.                é  »Ñαó«¼  »α¿¼ÑαÑ  ñ¿αÑ¬Γ¿óδ  #if,  #endif  π»αáó½∩εΓ ¬«¼-
  1874.          »¿½∩µ¿Ñ⌐ «ñ¡¿¼ ¿º ΓαÑσ ó맮ó«ó Σπ¡¬µ¿⌐. é맮ó Σπ¡¬µ¿¿ credit ¬«¼-
  1875.          »¿½¿απÑΓß∩, Ñß½¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α CREDIT «»αÑñѽѡ.  àß½¿  «»αÑñѽѡ
  1876.          ¿ñÑ¡Γ¿Σ¿¬áΓ«α DEBIT, Γ« ¬«¼»¿½¿απÑΓß∩ Σπ¡¬µ¿«¡á½∞¡δ⌐ ó맮ó debit.
  1877.          àß½¿  ¡¿  «ñ¿¡ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¡Ñ «»αÑñѽѡ, Γ« ¬«¼»¿½¿απÑΓß∩ ó맮ó
  1878.          printerror.  çá¼ÑΓ¿¼,  τΓ«  CREDIT  ¿  credit  -  φΓ«   αẽ¿τ¡δÑ
  1879.          ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ó æ¿.
  1880.                é  ß½ÑñπεΘ¿σ  ñóπσ  »α¿¼Ñαáσ  »αÑñ»«½áúáÑΓß∩, τΓ« ¬«¡ßΓá¡Γá
  1881.          DLEVEL »αÑñóáα¿Γѽ∞¡« «»αÑñѽѡá.
  1882.                é« óΓ«α«¼ »α¿¼ÑαÑ »«¬áºá¡δ ñóÑ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ó½«ªÑ¡¡δσ
  1883.          #if, #else, #endif ñ¿αÑ¬Γ¿ó. ÅÑαóá∩  »«ß½Ññ«óáΓѽ∞¡«ßΓ∞  ñ¿αÑ¬Γ¿ó
  1884.          «íαáíáΓδóáÑΓß∩, Ñß½¿ DLEVEL >5. é »α«Γ¿ó¡«¼ ß½πτáÑ «íαáíáΓδóáÑΓß∩
  1885.          óΓ«αá∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞.
  1886.                é ΓαÑΓ∞Ѽ  »α¿¼ÑαÑ  ¿ß»«½∞ºπεΓß∩  ñ¿αÑ¬Γ¿óδ  #elif,  #else,
  1887.          τΓ«íδ  ßñѽáΓ∞  «ñ¿¡  ¿º  τÑΓδαÑσ óδí«α«ó, «ß¡«óá¡¡δσ ¡á º¡áτÑ¡¿¿
  1888.          ¬«¡ßΓá¡Γδ DLEVEL. çñÑß∞ «»αÑñѽ∩ÑΓß∩ ¬«¡ßΓá¡Γá  STACK  αáó¡«⌐  0,
  1889.          100  ¿½¿ 200, ó ºáó¿ß¿¼«ßΓ¿ «Γ º¡áτÑ¡¿∩ DLEVEL. àß½¿ DLEVEL>5, Γ«
  1890.  
  1891.                                       - 128 -
  1892.            
  1893.            
  1894.          ¬«¼»¿½¿απÑΓß∩ ó맮ó Σπ¡¬µ¿¿ display (debugptr), á ¬«¡ßΓá¡Γá STACK
  1895.          ¡Ñ «»αÑñѽ∩ÑΓß∩.
  1896.                é τÑΓóÑαΓ«¼ »α¿¼ÑαÑ  ñ¿αÑ¬Γ¿óδ  »αÑ»α«µÑßß«αá  ¿ß»«½∞ºπεΓß∩
  1897.          ñ½∩  π»αáó½Ñ¡¿∩  «í"∩ó½Ñ¡¿∩¼¿  ß»Ñµ¿Σ¿¬áΓ«αá  αÑú¿ßΓα«ó«⌐  »á¼∩Γ¿
  1898.          register ó »ÑαÑ¡«ß¿¼«¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ.  àß½¿  »α«úαἼᠠ߫ñÑনΓ
  1899.          í«½∞ΦÑ  «í"∩ó½Ñ¡¿⌐  »ÑαѼѡ¡δσ  ¬½áßá  »á¼∩Γ¿ register, τѼ ¼«ªÑΓ
  1900.          »αÑñ«ßΓáó¿Γ∞ ¼áΦ¿¡á, Γ« ¬«¼»¿½∩Γ«α ¡Ñ «í"∩ó¿Γ  ½¿Φ¡¿Ñ  »ÑαѼѡ¡δÑ
  1901.          ¬á¬  αÑú¿ßΓα«óδÑ.  REG1  ¿  REG2  «»αÑñѽ∩εΓß∩ ¬á¬ ¬½ετÑóδÑ ß½«óá
  1902.          register, τΓ«íδ «í"∩ó¿Γ∞ αÑú¿ßΓα«óπε  »á¼∩Γ∞  ñ½∩  ñóπσ  ¡á¿í«½ÑÑ
  1903.          ó᪡δσ  »ÑαѼѡ¡δσ  ó  »α«úαá¼¼Ñ. ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ
  1904.          »ÑαѼѡ¡δÑ b ¿ c ¿¼ÑεΓ í«½∞Φ¿⌐ »α¿«α¿ΓÑΓ, τѼ a ¿½¿ d.
  1905.          
  1906.                 func (a)
  1907.                 REG3 int a;
  1908.                 {
  1909.                    REG1 int b;
  1910.                    REG2 int c;
  1911.                    REG4 int d;
  1912.                    .
  1913.                    .
  1914.                    .
  1915.                    }
  1916.                 
  1917.                è«úñá «»αÑñѽѡ ¿ñÑ¡Γ¿Σ¿¬áΓ«α  î_86,  »αÑ»α«µÑßß«α  πñá½∩ÑΓ
  1918.          ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ  REG3  ¿  REG4 ¿º Σá⌐½á »πΓѼ ºá¼Ñ¡δ Ñú« ¡á »πßΓ«⌐
  1919.          ΓѬßΓ. ÉÑú¿ßΓα«óπε »á¼∩Γ∞ ó φΓ«¼ ß½πτáÑ »«½πτáΓ »ÑαѼѡ¡δÑ b ¿ c.
  1920.          è«úñá «»αÑñѽѡ ¿ñÑ¡Γ¿Σ¿¬áΓ«α î_68000, Γ« óßÑ  τÑΓδαÑ  »ÑαѼѡ¡δÑ
  1921.          «í"∩ó½∩εΓß∩ ß ¬½áßß«¼ »á¼∩Γ¿ register.
  1922.                è«úñá  ¡Ñ  «»αÑñÑ½Ñ¡δ  «íá ¿ñÑ¡Γ¿Σ¿¬áΓ«αá, Γ« «í"∩ó½∩εΓß∩ ß
  1923.          αÑú¿ßΓα«ó«⌐ »á¼∩Γ∞ε Γα¿ »ÑαѼѡ¡δÑ a,b ¿ c.
  1924.                
  1925.                
  1926.                8.3.2. ä¿αÑ¬Γ¿óδ #ifdef ¿ #ifndef
  1927.                 
  1928.                æ¿¡Γá¬ß¿ß:
  1929.                
  1930.                #ifdef <identifier>
  1931.                #ifndef <identifier>
  1932.                 
  1933.                ä¿αÑ¬Γ¿óδ #ifdef ¿ #ifndef óδ»«½¡∩εΓ ΓÑ  ªÑ  ßá¼δÑ  ºáñáτ¿,
  1934.          τΓ«  ¿  ñ¿αÑ¬Γ¿óá  #if,  ¿ß»«½∞ºπεΘá∩  defined(<identifier>). ¥Γ¿
  1935.          ñ¿αÑ¬Γ¿óδ  ¼«úπΓ  íδΓ∞  ¿ß»«½∞º«óá¡δ  Γá¼  ªÑ,  úñÑ  ¿ß»«½∞ºπÑΓß∩
  1936.          ñ¿αÑ¬Γ¿óá  #if, ¿ ¿ß»«½∞ºπεΓß∩ ¿ß¬½ετ¿Γѽ∞¡« ñ½∩ ¬«¼»á¬Γ¡«ßΓ¿ ºá-
  1937.          »¿ß¿.
  1938.                è«úñá »αÑ»α«µÑßß«α «íαáíáΓδóáÑΓ  ñ¿αÑ¬Γ¿óπ  ifdef,  Γ«  ñÑ-
  1939.          ½áÑΓß∩  »α«óÑα¬á  ¿ñÑ¡Γ¿Σ¿¬áΓ«αá  <identifier>  ¡á ¿ßΓ¿¡¡«ßΓ∞ (¡Ñ
  1940.          ¡π½∞).
  1941.                ä¿αÑ¬Γ¿óá  #ifdef  ∩ó½∩ÑΓß∩  «Γα¿µá¡¿Ñ¼  ñ¿αÑ¬Γ¿óδ  #ifdef.
  1942.          äαπú¿¼¿  ß½«óἿ, Ñß½¿ <identifier> ¡Ñ «»αÑñѽѡ (¿½¿ Ñú« «»αÑñÑ-
  1943.          ½Ñ¡¿Ñ «Γ¼Ñ¡Ñ¡« ñ¿αÑ¬Γ¿ó«⌐ #undef), Γ« Ñú«  º¡áτÑ¡¿Ñ  ¿ßΓ¿¡¡«  (¡Ñ
  1944.          ¡π½∞). é »α«Γ¿ó¡«¼ ß½πτáÑ º¡áτÑ¡¿Ñ ½«ª¡« (¡π½∞).
  1945.                
  1946.                
  1947.                 
  1948.  
  1949.                                       - 129 -
  1950.            
  1951.                8.4. ô»αáó½Ñ¡¿Ñ ¡π¼ÑαᵿÑ⌐ ßΓ᫬
  1952.            
  1953.                æ¿¡Γá¬ß¿ß:
  1954.                 
  1955.                #line <constant>["filename"]
  1956.                 
  1957.                ä¿αÑ¬Γ¿óá #line ¿¡ßΓαπ¬Γ¿απÑΓ ¬«¼»¿½∩Γ«α «í ¿º¼Ñ¡Ñ¡¿¿ ó¡πΓ-
  1958.          αÑ¡¡Ñ⌐ ¡π¼Ñαᵿ¿ ßΓ᫬ ¿ ¿¼Ñ¡¿ Σá⌐½á ¡á ºáñá¡¡δ⌐ ¡«¼Ñα  ßΓ᫬¿  ¿
  1959.          ¿¼∩ Σá⌐½á, ñ½∩ Γ«ú« τΓ«íδ ß«ß½áΓ∞ß∩ ¡á ¡¿σ ó ß½πτáÑ «Φ¿í«¬, «í¡á-
  1960.          απªÑ¡¡δσ ó »α«µÑßßÑ ¬«¼»¿½∩µ¿¿. ì«¼Ñα ßΓ᫬¿ «íδτ¡« ß««ΓóÑΓßΓóπÑΓ
  1961.          ¡«¼Ñαπ  ΓѬπΘÑ⌐ óσ«ñ¡«⌐ ßΓ᫬¿. ê¼Ñ¡¿ Σá⌐½á ß««ΓóÑΓßΓóπÑΓ ¿¼∩ ΓÑ-
  1962.          ¬πΘÑú« óσ«ñ¡«ú« Σá⌐½á. ì«¼Ñα ßΓ᫬¿ πóѽ¿τ¿óáÑΓß∩ »«ß½Ñ «íαáí«Γ¬¿
  1963.          ¬áªñ«⌐ ßΓ᫬¿. é ß½πτáÑ ¿º¼Ñ¡Ñ¡¿∩ ¡«¼Ñαá ßΓ᫬¿  ¿  ¿¼Ñ¡¿  Σá⌐½á,
  1964.          ¬«¼»¿½∩Γ«α  ¿ú¡«α¿απÑΓ  »αÑñδñπΘ¿Ñ ¿σ º¡áτÑ¡¿∩ ¿ »α«ñ«½ªáÑΓ «íαá-
  1965.          í«Γ¬π ß ¡«ó묨 º¡áτÑ¡¿∩¼¿.
  1966.                ä¿αÑ¬Γ¿óá #line «íδτ¡«  ¿ß»«½∞ºπÑΓß∩  ñ½∩  »α«úαá¼¼¡«⌐  úÑ-
  1967.          ¡Ñαᵿ¿  ß««íΘÑ¡¿⌐  «í  «Φ¿í¬áσ ß« ßßδ½¬á¼¿ ¡á ¡«¼Ñα ßΓ᫬¿ ¿ ¿¼∩
  1968.          Σá⌐½á.
  1969.                ç¡áτÑ¡¿Ñ ¬«¡ßΓá¡Γδ <constant> ó ñ¿αÑ¬Γ¿óÑ #line - φΓ« ½εíá∩
  1970.          µÑ½á∩ ¬«¡ßΓá¡Γá. ê¼∩ Σá⌐½á <filename>  ¼«ªÑΓ  íδΓ∞  ½εí«⌐  ¬«¼í¿-
  1971.          ¡áµ¿Ñ⌐ ß¿¼ó«½«ó, ºá¬½ετÑ¡¡«⌐ ó ñó«⌐¡δÑ ¬áóδτ¬¿ ("). àß½¿ ¿¼∩ Σá⌐-
  1972.          ½á «»πΘÑ¡«, »αÑñ»«½áúáÑΓß∩, τΓ« ¿¼∩ Σá⌐½á «ßΓὫß∞ ΓѬπΘ¿¼.
  1973.                ÆÑ¬πΘ¿Ñ ¡«¼Ñα ßΓ᫬¿ ¿ ¿¼∩ Σá⌐½á ñ«ßΓπ»¡δ τÑαѺ »αÑñ«»αÑñÑ-
  1974.          ½Ñ¡¡δÑ   ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ   __LINE__   ¿  __FILE__.  êñÑ¡Γ¿Σ¿¬áΓ«αδ
  1975.          __LINE__  ¿  __FILE__  ¼«úπΓ  íδΓ∞  ¿ß»«½∞º«óá¡δ  »α¿  óßΓáó¬Ñ  ó
  1976.          ¿ßσ«ñ¡δ⌐ Σá⌐½ »α«úαá¼¼¡«ú« ΓѬßΓá óδñáτ¿ ß««íΘÑ¡¿⌐ «í «Φ¿í¬Ñ.
  1977.                ÅÑαѼѡ¡á∩  __FILE__  ß«ñÑαª¿Γ  ßΓ᫬π,  »αÑñßΓáó½∩εΘπε ¿¼∩
  1978.          Σ⌐½á, ºá¬½ετÑ¡¡«ú« ó ñó«⌐¡δÑ  ¬áóδτ¬¿.  Æá¬¿¼  «íαẫ¼,  ¡ÑΓ  ¡Ñ-
  1979.          «íσ«ñ¿¼«ßΓ¿  ºá¬½ετáΓ∞  ¿ñÑ¡Γ¿Σ¿¬áΓ«α __FILE__ ó ñó«⌐¡δÑ ¬áóδτ¬¿,
  1980.          ¬«úñá «¡ ¿ß»«½∞ºπÑΓß∩.
  1981.                 
  1982.                 Åα¿¼Ñαδ:
  1983.                 
  1984.                /*.....* example 1 *.....*/
  1985.                 #line 151 "copy.c"
  1986.                 
  1987.                 /*..... example 2 *.....*/
  1988.                 #define ASSERT(cond)      if(!cond)\
  1989.                 {printf("assertion error line %d, file(%s)\n", \
  1990.                 __LINE, __FILE);}else;
  1991.                 
  1992.                é »Ñαó«¼ »α¿¼ÑαÑ ¡«¼Ñα ßΓ᫬¿ πßΓá¡áó½¿óáÑΓß∩ αáó¡δ¼ 151  ¿
  1993.          ¿¼∩ Σá⌐½á ¿º¼Ñ¡∩ÑΓß∩ ¡á copy.c.
  1994.                é«  óΓ«α«¼  »α¿¼ÑαÑ  ó ¼á¬α««»αÑñѽѡ¿¿ ASSERT ¿ß»«½∞ºπεΓß∩
  1995.          »αÑñ«»αÑñѽѡ¡δÑ ¿ñΘÑ¡Γ¿Σ¿¬áΓ«αδ __LINE__ ¿ __FILE__  ñ½∩  »ÑτáΓ¿
  1996.          ß««íΘÑ¡¿∩ «í «Φ¿í¬Ñ, ß«ñÑαªáΘÑú« ¬««αñ¿¡áΓδ ¿ßσ«ñ¡«ú« Σá⌐½á, Ñß½¿
  1997.          ºáñá¡¡«Ñ  "πΓóÑαªñÑ¡¿Ñ"  ½«ª¡«.  çá¼ÑΓ¿¼, τΓ« ñó«⌐¡δÑ ¬áóδτ¬¿ »α¿
  1998.          ºáñá¡¿¿ »αÑñ«»αÑñѽѡ¡δσ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ¡Ñ ΓαÑíπεΓß∩.
  1999.                
  2000.                
  2001.  
  2002.          
  2003.