.PN 18
.HE    4.   ""             
.FO   BDS C-. K                      # 
                        4
                 -------------

    K  A "A  C"


 4.1  


   BDS-C    UNIX C. ,   
       BDS-;   A
  .

          ,
         ',
 BDS-C    . ,  
BDS-C,  .

       BDS-C  UNIX C:

 1.          .
           
    .

 2.     8080- ,         
        .
    
 3. BDS-C    ,     .  BDS-C 
     ,            
     ,    . ,     
    8080-,     PDP-11  UNIX.

 4.   SHORT INT, LONG INT, FLOAT  DOUBLE  .

 5.     .    
     ;     
       ,    '.

 6.     .

 7.   .

 8.        ( 
     / ).
.PA
.HE  4.   "C"             A
 4.2     

            .
 ,  ,  ,   ; 
     FLOAT,  LONG,  STATIC,    ..   
.

 1.       

   BDS-C   8080-   
 CP/M,   8080-  (  
)     -. , BDS-C 
   ,   8080,   Z-80  8085.

 2.1  

      ;  ,    
  UNIX C,      -.

 2.2   ()

           ,      
, 'E  ,     .  ,
         ( 
,    )    .   

   
 2.3   

     BDS-C:

        INT                   ELSE
        CHAR                  FOR
        STRUCT                DO
        UNION                 WHILE
        UNSIGNED              SWITCH
        GOTO                  CASE
        RETURN                DEFAULT
        BREAK                 SIZEOF
        CONTINUE              BEGIN
        IF                    END
        REGISTER              VOID

       . 

     ,    ,  ,
        (,       
CHARFLAG).                           

    ,       , 
    BEGIN  END. ,    
    BEGIN  END,    
  .

 4.    ?

       ,   ,   
' . ,   ' ,  
   ,   , 
 : ,     ,
 ,       
 .

           
'     .    
        ,    
,          ,
    .   11.1  
.

    BDS-C     .   ,  
   '    ,    
  ,    '  . ,
           
.                  

          
         
 .

          ,  
       
  .    BDS-C              
 COMMON  .  :    
 '   A,B,C,D,E,   ,   
  A, B  C, TO        D  
.   ,      D  ,  
    ,   D   (  )
   A  B (  )    
.   ,    
(  )     ,
   ,        .

           
 "."    #INCLUDE      "."   
.   ,   .




 6.1    

         BDS-C.  
 8-     0-255.

           BDS-C.

    ,  ,     ,  GETC,  
     -1  .  
  ,       
.     GETC  ,  
-1    255,      -1  
 .     .

          
    16-     .
   ,    ,
BDS-C  ,      .
  , ' ,   
  0-255, .     


 7.  

     
             .  
      .


 7.1   


       , .. 
      ,    
     ....,   ,  
     ,   ,         
        .


 7.2   


    

      (-) 
      SIZEOF (-)

    .  SIZEOF   A  

      SIZEOF 

 ,     .    ,
     ,     SIZEOF. 
    SIZEOF      
  .


 7.5   


       ( 0)


 7.11, 7.12    ,    


      &&  //     BDS-C, 
     ,      UNIX C.
 ,   &&  //    
        .


 8.     


     :

           :      
                 - -    

    --.


 8.1  --


    .


 8.2  -


       -:
                  CHAR
                  INT
                  UNSIGNED
                  REGISTER
                  ---'

    REGISTER    INT,     
 (, REGISTER UNSIGNED ),      
.

     VOID    INT   
   ,     . 
  .

   UNSIGNED INT FOO    UNSIGNED FOO.


 8.3  


     . ,    :


          -:
                   
                   , -


 8.4   


   UNIX C     ,  
      

         STRUCT FOO*(*(*BAR[3][3][3]) () ) ();

     BAR,    3*3*3   
,    ,    
  F. , BDS-C    .

        BDS-C  .

           -:
                CHAR
                INT
                UNSIGNED
                STRUCT
                UNION
 
           -:
                -
                --
                -

      , -,  , 
    ,   ,           
 (  )   .  
-    ,   ,  
-      .

   ,     

             INT X,Y;
             CHAR *X;
             UNSIGNED *FRAZ;
             CHAR **ARGV;
             STRUCT FOOBAR *ZOT, BAR;
             INT *(*IHTFP) ();         /*  , 
                                             */
 
       ,     -
  '   (  -). 
      :

             CHAR *X[5][10];
             INT **FOO[10];
             STRUCT STEPH BAR[20][8];
             UNION JOYCE *OHBOY[747];
             INT *(FOOBAR[10]) ();      /*   10  ,
                                             */

   ,       ,  
, STRUCT  UNION (     STRUCT  UNION):       

             CHAR *BAR();          - ,    

             CHAR *(*BAR)();       -  ,  
                                      
             CHAR *(*BAR[3][2])(); - 3*2   , -
                                        
             STRUCT FOO ZOT();     - ,    FOO 
                                     ()  
             STRUCT FOO *ZOT();    - ,   
                                       FOO 

        BDS-C  ,   
 .    FOO    
CHAR (*FOO)[15], TAK KAK      
CHAR *FOO[15].   ,   , '
,     , 
      
 .      .  
       OTHELLO.


 8.5           

      .  :

        ---:      
            STRUCT--UNION BEGIN STRUCT-DECL-LIST END
            STRUCT--UNION  BEGIN STRUCT-DECL-LIST END
            STRUCT--UNION 

        STRUCT--UNION:
            STRUCT
            UNION

        STRUCT-DECL-LIST:
            -
            - STRUCT-DECL-LIST

        -:
            - -;

        -:
            
            , -

             
.         '
     ,    
   ,   11.1.


 8.6  

   ,    .

        .


 8.7, 8.8   


      BDS-C, TYPEDEF  .


 9.2  


    BDS-C  .     '   ;
,     ,    
.


 9.6   FOR


      (     , 
'    ...)

   FOR      WHILE,   ,
:   CONTINUE    FOR,  
-3.   WHILE  CONTINUE  
 .

       .  UNIX C  BDS-C
 FOR  .




 9.7   SWITCH

     SWITCH   200  CASE.  
 3  CASE:

       CASE 'A': CASE 'B': CASE 'C': 


 9.12    


   ,    CASE  DEFAULT, .   
  CASE  DEFAULT.

      CASE 'X': METKA: A=B;           
      METKA: CASE 'X': A=B;           


 10   


   -       , 
  (   INT).


 11.1    


        '    , 
  . BDS-C    
      ' ( , 
      .

     ,         

           STRUCT FOO 
              BEGIN
                   INT A;
                   CHAR B;
              END FOO[10];

       .

           . 
       ,
 1)   2)     .  , 
    CPTR   

           STRUCT FOO
               BEGIN
                    INT A;
                    CHAR B;
                    CHAR *CPTR;
               END 

           STRUCT BAR
               BEGIN
                    UNSIGNED AA;
                    CHAR XYZ;
                    CHAR *CPTR;
               END


 11.2     


     EXTERN ,    
        ,   . 
         
. ,    :  0015H  
 (   0115H  )  
   .     
   (  CC -E XXXX    
     ,    
 ,  .     
      ). 
      CLINK  , 
     . ..  CRL-  
       (     
  ),    ,  
      .   
        , 
       .

          BDS-C  
COMMON- .

   .      ALLOC  FREE,  
  BDSCIO.H   ,   
  ' ,  ALLOC  FREE,   
      .


 12.1   


     #DEFINE ,   . 
,    #DEFINE  ,  
,    .


 12.2   


          (#INCLUDE "")   
    ,      
,   ,    .   
 (#INCLUDE <>),       (
   1).

   ,  #INCLUDE      ,
        .
,   #INCLUDE      ,
  ,       . ,
    #INCLUDE,   ,   ,
         ,
     ,       
.

           ,  
      .  -
   -C  CC,    #INCLUDE, 
,  .


 12.3   


        ,  ,
  #IF   :

        :
            2
            2 && 
            2 // 

        2:
            -
            ! 2
            (2)

   -    ( 
#DEFINE),        (0-,
  -).                     


 12.4   


    .


 15.   


   BDS-C         
        : 
 , CASE,  , ,   ,
RETURN. K ,       
,    .

         
,      ,  
 ,      
. ,  

            X = X + Y + 15*10

    (      
15  10),          , 


            X = X + Y + (15*10)

          
  UNSIGNED-.


 18.1  


     :

       * & - ! ++ -- SIZEOF  

     &&  //   .

    SIZEOF     .


 18.2   


     :

       :
            - -;

       -:
            CHAR
            INT
            REGISTER ( ,   INT)
            UNSIGNED
            STRUCT--UNION-

       -:
            
            , -

       :
            
            ()
            *
            ()
            [-]

       STRUCT--UNION-:
            STRUCT BEGIN - END
            STRUCT  BEGIN - END
            STRUCT 
            UNION BEGIN - END
            UNION  BEGIN - END
            UNION 


 18.4  -


       -:
            - -


 18.5  


      :

     #DEFINE  -
     #INCLUDE "-"
     #INCLUDE <->
     #IF 
     #IFDEF 
     #IFNDEF 
     #ELSE
     #ENDIF
     #UNDEF 

   #DEFINE       ,   
       ( #DEFINE) 
 ( #UNDEF) .

      #IF    ,    
  (  )   
.      -
   #IFDEF/#IFNDEF      
 #DEFINE .   12.3   .

    #INCLUDE       
.  ,   #INCLUDE    
    ,       
 . #INCLUDE      
,         .   
 ,       
          
8-  CP/M   .

         #ELSE 
 (  )    #END.

           (
   ),     
-P,      ,   
  .
