рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХреИрд╕реЗ рдХрдо рдХрд░реЗрдВред рдиреЛрдЯ N2

рдСрдкрд░реЗрдЯрд░ ?:
рд▓реЗрдЦрди рдХреЛрдб рдХреЗ рдЪрд░рдг рдореЗрдВ рднреА рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рджреВрд╕рд░рд╛ рд▓реЗрдЦ рд╣реИред рдкрд┐рдЫрд▓реЗ рдиреЛрдЯ рдореЗрдВ, рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдХрдИ рдЧрдгрдирд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯрд┐рдк рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд░реАрдм рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрдард┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЦрддрд░реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдФрд░ рдХрдИ рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд░реЛрдХреЗрдВред



рдкрд░рд┐рдЪрдп


рдкрд┐рдЫрд▓рд╛ рдиреЛрдЯ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдЗрд╕ рдмрд╛рд░, рдЙрдирдХреА рд╡реНрдпрд╛рдкрдХрддрд╛ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╕рд┐рджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЬрд┐рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╡реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдорд┐рд▓реЗ рдереЗред рдореИрдВрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреЛрдб рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рддрдп рд╣реЛ рдЧрдП рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдкрд░рд┐рдЪрдп рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЗрдЦреЛрдВ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ "рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдорд┐рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реИред"

1. рдЯрд░реНрдирд░реА рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ? '' 'рдпреМрдЧрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ


Ternary рд╕рд╢рд░реНрдд рд╕рдВрдЪрд╛рд▓рди C / C ++ рдореЗрдВ '?:' рд╕рдВрдЪрд╛рд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдСрдкрд░реЗрд╢рди рдЬреЛ рдкрд╣рд▓реЗ рдСрдкрд░реЗрдВрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдирд╛ рджреВрд╕рд░рд╛ рдпрд╛ рддреАрд╕рд░рд╛ рдСрдкрд░реЗрдВрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
  int minValue = A <B?  рдП: рдмреА; 

рдЯрд░реНрдирд░реА рдСрдкрд░реЗрд╢рди рдореЗрдВ рдмрд╣реБрдд рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ (рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВ)ред рдпрд╣ рдЕрдХреНрд╕рд░ рднреБрд▓рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдареАрдХ рд╣реИ рдХрд┐ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрд╢рди рдмреЗрд╣рдж рдЦрддрд░рдирд╛рдХ рд╣реИред
рдЪрд┐рддреНрд░ 1 - C / C ++ рднрд╛рд╖рд╛ рд╕рдВрдЪрд╛рд▓рди, рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдШрдЯрдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ
рдЪрд┐рддреНрд░ 1 - C / C ++ рднрд╛рд╖рд╛ рд╕рдВрдЪрд╛рд▓рди, рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдШрдЯрдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдСрдкрд░реЗрд╢рди '?:' рдореЗрдВ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреБрдгрди, рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдпрд╛ рдСрдкрд░реЗрдЯрд░, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

int Z = X + (A == B)? 1: 2;

рдпрд╣ рдХреЛрдб рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдПрдХреНрд╕ (1 = рдмреА) рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдВрдмрд░ 1 рдХреЗ рд╕рд╛рде рдпрд╛ 2 рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдореВрд▓реНрдп рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реНрдерд┐рддрд┐ "X + (A == B)" рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдпрд╣рд╛рдБ рдХрд╣рддрд╛ рд╣реИ:

int Z = (X + (A == B))? 1: 2;

рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛:

int Z = X + (A == B; 1: 2);

рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рд╕рдВрдЪрд╛рд▓рди рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрд╢рди рдмрд╣реБрдд рдХрдкрдЯреА рд╣реИ! рдЗрд╕рдХреЗ рд╕рд╛рде рдЧрд▓рддрд┐рдпрд╛рдБ рди рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛, рдмрд▓реНрдХрд┐ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рднреА рдХреА рдЬрд╛рддреА рд╣реИрдВред рдпрд╣ рдЕрдХреНрд╕рд░ рдЙрдЪреНрдЪрддрдо рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛрдб рдореЗрдВ рднреА рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред
рдиреНрдпреВрдЯрди рдЦреЗрд▓ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛
V502 рд╢рд╛рдпрдж '?:' рдСрдкрд░реЗрдЯрд░ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред '?:' рдСрдкрд░реЗрдЯрд░ рдХреА '*' рдСрдкрд░реЗрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред рднреМрддрд┐рдХреА dgminkowskiconv.cpp 1061
  dgInt32 рдкрд░рд┐рдХрд▓рд┐рдд рдХрд░реЗрдВ
 {
   ...
   den = dgFloat32 (1.0e-24f) *
         (den> dgFloat32 (0.0f))? 
            dgFloat32 (1.0f): dgFloat32 (-1.0f);
   ...
 } 

рдХреНрд░реЛрдорд┐рдпрдо
V502 рд╢рд╛рдпрдж '?:' рдСрдкрд░реЗрдЯрд░ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред '?:' рдСрдкрд░реЗрдЯрд░ рдХреА '-' рдСрдкрд░реЗрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ custom_frame_view.cc 400
  рд╕реНрдерд┐рд░ рдХрд╛рд╕реНрдЯ int kClientEdgeThickness;
 рдЗрдВрдЯ рд╣рд╛рдЗрдЯ () рдХрд╛рд╕реНрдЯ;
 рдмреВрд▓ рдЪрд╛рд╣рд┐рдП рдХрдВрдзреЗрдХреНрд▓реЗрдб рдПрдбрдЬ () рдХрд╛рд╕реНрдЯ;
 void CustomFrameView :: PaintMaximizedFrameBorder (gfx :: рдХреИрдирд╡рд╛рд╕ * рдХреИрдирд╡рд╛рд╕) {
   ...
   int edge_height = titlebar_bottom-> рдКрдБрдЪрд╛рдИ () -
                     рдЪрд╛рд╣рд┐рдПShowClientEdge ()?  kClientEdgeThickness: 0;
   ...
 } 

рдЖрдИрдкреАрдкреА рдирдореВрдирд╛
V502 рд╢рд╛рдпрдж '?:' рдСрдкрд░реЗрдЯрд░ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред '?:' рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрдо рд╣реИред рдСрдкрд░реЗрдЯрд░ред vm vm_file_win.c 393
  #define FILE_ATTRIBUTE_NORMAL 0x00000080
 #define FILE_FLAG_NO_BUFFERING 0x20000000
 vm_file * vm_file_fopen (...)
 {
   ...
   mds [3] = FILE_ATTRIBUTE_NORMAL |
            (islog == 0)?  0: FILE_FLAG_NO_BUFFERING;
   ...
 } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдФрд░ рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдЙрдирдХреЗ рд╡рд░реНрдгрди рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрдЪреНрдЫреЗрдж рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╡реЗ рдмрд╣реБрдд, рдмрд╣реБрдд рдЖрдо рд╣реИрдВред рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрдИ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рд▓рдЪреА рди рдмрдиреЗрдВред рд╣рдо рдиреАрдЪреЗ рдХреЛрд╖реНрдардХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдЕрдм ''? '' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

рдмреЗрд╢рдХ, '?:' рд╕рдВрдЪрд╛рд▓рдХ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░ рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЕрдЧрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрд▓рдн рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ рд▓рд┐рдВрдХ рдЖрд░рдВрднреАрдХрд░рдг рдЬреИрд╕реЗ рдХрд╛рд░реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
  MyObject & Ref = X?  рдП: рдмреА; 

рдмреЗрд╢рдХ, рдЗрд╕рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди A рдпрд╛ B рдХреЗ рдмрд┐рдирд╛ '?' рдХрд╛ рд▓рд┐рдВрдХ рдмрдирд╛рдирд╛ рд╣реИ? '' рдСрдкрд░реЗрдЯрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛:
  MyObject * tmpPtr;
 рдпрджрд┐ (x)
   tmpPtr = & A;
 рдЕрдиреНрдпрдерд╛
   tmpPtr = & B;
 MyObject & Ref = * tmpPtr; 

рдЗрд╕рд▓рд┐рдП, '' рдХреЛ рдЫреЛрдбрд╝рдирд╛? '' рд╕рдВрдЪрд╛рд▓рдХ рддрд░реНрдХрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рд╕рд╛рде рдЧрд▓рддреА рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдПред рдкрд░рд┐рдгрд╛рдо '?:' рдХреЛ рддреБрд░рдВрдд рдХрд╣реАрдВ рдФрд░ рдлрд┐рдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рд╣реИ, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрд╢рди рдСрдкрд░реЗрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП '?:'ред рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ:
  int Z = X + (A == B)?  1: 2; 

рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ:
  int Z = X;
 рдЬреЗрдб + = рдП == рдмреА?  1: 2; 

IPP рдирдореВрдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛:
  mds [3] = FILE_ATTRIBUTE_NORMAL;
 mds [3] | = (islog == 0)?  0: FILE_FLAG_NO_BUFFERING; 

рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдореИрдВ рдЙрд╕рдХрд╛ рдмрдЪрд╛рд╡ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдмрдЬрд╛рдп, рд╣рдореЗрдВ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдорд┐рд▓реЗрдВред рдХреЛрд╖реНрдардХреЛрдВ рдореЗрдВ '?' 'рд╕рдВрдЪрд╛рд▓рдХ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред рдореЗрд░рд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рддреНрд░реБрдЯрд┐ рдкреИрдЯрд░реНрди рджрд┐рдЦрд╛рдирд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдкреИрдЯрд░реНрди рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

2. рдмреНрд░реИрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ


рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ C / C ++ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╢рд░реНрдордирд╛рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓ рдкреВрдЫрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЕрд╡рдЪреЗрддрди рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рддрдВрддреНрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрдЧрд░ рд╡рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХ рдбрд╛рд▓рддрд╛ рд╣реИ, рддреЛ рдЕрдЪрд╛рдирдХ рдХреЛрдИ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдПрдХ рд╢реБрд░реБрдЖрддреА рд╣реИ, рдФрд░ рд╕рдЪреНрдЪреА рдЬреЗрдбреА рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рдЪрд░реНрдЪрд╛ рднреА рдХреА, рдЬрд╣рд╛рдВ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддрд░реНрдХ рджрд┐рдпрд╛ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╕реНрд╡рд░ рд╣реИред рдФрд░ рдЕрдЧрд░ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рдПрдЧреА, рддреЛ рдЙрд╕реЗ рд╕реАрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рди рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреАред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдмреЗрд╢рдХ, рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд╡рд┐рд╖рдо рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рдмреАрдорд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рд░рдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рднреА рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рднреНрд░рдо рдХреЗ рд╕рд╛рде рдЧрд▓рддрд┐рдпрд╛рдБ рди рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ, рдмрд▓реНрдХрд┐ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рдмреАрдЪ рднреА рдкреИрджрд╛ рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдмрд╣реБрдд рднреНрд░рдорд┐рдд рдФрд░ рд▓рдВрдмрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдЧрд▓рддреА рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
Wolfenstein
V564 '&' рдСрдкрд░реЗрдЯрд░ рдмреВрд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рд╢рд╛рдпрдж рдХреЛрд╖реНрдардХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП рд╣реИрдВ рдпрд╛ '&&' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЧреЗрдо g_client.c 1534
  #define SVF_CASTAI 0x00000010
 char * ClientConnect (...) {
   ...
   рдЕрдЧрд░ (ent-> r.svFlags & SVF_CASTAI) {
   ...
 } 

DOSBox
V564 '&' рдСрдкрд░реЗрдЯрд░ рдмреВрд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рд╢рд╛рдпрдж рдХреЛрд╖реНрдардХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП рд╣реИрдВ рдпрд╛ '&&' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред dosbox sdlmain.cpp 519
  рд╕реНрдерд┐рд░ SDL_Surface * GFX_SetupSurfaceScaled (Bit32u sdl_flags) 
                                             Bit32u bpp) {
   ...
   if (sdl.blit.surface || (sdl.blit.surface-> рдЭрдВрдбреЗ рдФрд░ SDL_HWSURFACE)) {
   ...
 } 

рдЦреИрд░, рдХреНрд░реЛрдорд┐рдпрдо рд╕реЗ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг:

V564 '&' рдСрдкрд░реЗрдЯрд░ рдмреВрд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рд╢рд╛рдпрдж рдХреЛрд╖реНрдардХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП рд╣реИрдВ рдпрд╛ '&&' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдзрд╛рд░ platform_file_win.cc 216
  #define FILE_ATTRIBUTE_DIRECTORY 0x00000010
 рдмреВрд▓ GetPlatformFileInfo (PlatformFile рдлрд╝рд╛рдЗрд▓, PlatformFileInfo * рдЬрд╛рдирдХрд╛рд░реА) {
   ...
   рдЬрд╛рдирдХрд╛рд░реА-> is_directory = рд╣реИ
     file_info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY! = 0;
   ...
 } 

рднрд╛рд╡ рд╕рд░рд▓ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдЧрд▓рддрд┐рдпрд╛рдБ рд╣реИрдВред рддреЛ рдлрд┐рд╕рд▓рди рд╡рд╛рд▓реА рдЬрдЧрд╣реЛрдВ рдкрд░ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрддрд┐рд╢реНрдпреЛрдХреНрддрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд╢рд╛рдпрдж рдРрд╕рд╛ рдХрд░рдиреЗ рд▓рд╛рдпрдХред рдпрджрд┐ рдСрдкрд░реЗрд╢рди рд╕рд░рд▓ рдФрд░ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
  рдЕрдЧрд░ (A == B && X! = Y)
 рдЕрдЧрд░ (A - B <Foo () * 2) 

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рджреБрд░реНрд▓рдн рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (~, ^, &; |, <<, >> ,?? :), рддреЛ рд╕реНрдкрд╖реНрдЯ рдХреЛрд╖реНрдардХ рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ред рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг:
  рдпрджрд┐ ((A & B))
 x = рдП |  B |  (z <рез; реи: рей); 

рджреБрд░реНрд▓рдн рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдорджрдж рдХрд░реЗрдВрдЧреЗ? ":"ред рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪреАрдЬ рд╣реИ "?:" рд╕реНрд╡рд╛рдж рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдореБрдЭреЗ рд╕рд░рд▓реАрдХреГрдд рд╡рд┐рдХрд▓реНрдк рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд▓рд┐рдЦреЗрдВред рд▓рдВрдмреА рдФрд░ рдЬрдЯрд┐рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдХрд░, рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдЧрд▓рддреА рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реЛрддреА рд╣реИред рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд░реЛ рдорддред рд╕рдВрдХрд▓рдХ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рджреБрд░реНрд▓рдн рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЬрд╣рд╛рдВ рдмрд┐рдЯ рдФрд░ рд▓реЙрдЬрд┐рдХрд▓ рдСрдкрд░реЗрд╢рдВрд╕ рдХреЛ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рдкрд░ рдХреЛрд╖реНрдардХреЛрдВ рдкрд░ рд▓рд╛рд▓рдЪ рди рдХрд░реЗрдВред

рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдкрдврд╝реЗрдЧрд╛, рдЙрд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдзрдиреНрдпрд╡рд╛рдж рдХрд╣реЗрдВрдЧреЗред

Source: https://habr.com/ru/post/In116397/


All Articles