рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ 6.26 рд░рд┐рд▓реАрдЬ

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ 6.26

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

рдЬрд▓реНрдж рд╣реА рдЬрд╛рд╡рд╛


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

рд╕реА рдФрд░ рд╕реА ++ рдХреЗ рд▓рд┐рдП рдирдП рдирд┐рджрд╛рди


рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдо рдереЛрдбрд╝рд╛ рджреВрд░ рдЪрд▓реЗ рдЧрдП рдФрд░ рддреБрд░рдВрдд C рдФрд░ C ++ (V1021-V1035) рдХреЗ рд▓рд┐рдП 15 рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рдирд┐рджрд╛рди рдЬреЛрдбрд╝ рджрд┐рдПред рдПрдХ рдорд╛рдореВрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ, рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдирд┐рджрд╛рди рдПрдХ рд╕рд╛рде рдХрднреА рдирд╣реАрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рджрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдирдП рдирд┐рджрд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ:

  • V1026ред рдЪрд░ рдХреЛ рд▓реВрдк рдореЗрдВ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдЧрд╛ред
  • V1033ред рдЪрд░ рдХреЛ рд╕реА рдореЗрдВ рдСрдЯреЛ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рдХрд╛рд░ рдЗрдВрдЯ рд╣реИред

рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ V1026 рдордВрдЪ linux.org.ru рдкрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдЬреАрд╕реАрд╕реА 8 рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХреА, рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдЧрд▓рддреА рдЧрд▓рдд рдХреЛрдб рдереА, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдЗрдП рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рджреЗрдЦреЗрдВред

рдиреЛрдЯред рдореВрд▓ рдЪрд░реНрдЪрд╛ рдореЗрдВ, рдЪрд░ s const рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░, рдЪрд░ рдкреНрд░рдХрд╛рд░ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рддреБрд░рдВрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд▓рд┐рдЦрд╛ рдХрд┐ рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ const рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪрд╛рд░ * рд╣реИ ред

int foo(const unsigned char *s) { int r = 0; while(*s) { r += ((r * 20891 + *s *200) | *s ^ 4 | *s ^ 3) ^ (r >> 1); s++; } return r & 0x7fffffff; } 

рдХрдВрдкрд╛рдЗрд▓рд░ рдмрд┐рдЯрд╡рд╛рдЗрдЬ рдФрд░ рдСрдкрд░реЗрдЯрд░ (&) рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдлрд╝рдВрдХреНрд╢рди рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдЗрд░рд╛рджреЗ рд╕реЗ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдРрд╕рд╛ рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ, рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрд▓рдд рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рд╕рдВрдХрд▓рдХ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдЪрд░ рдЖрд░ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИред рдЪрд░ рдЖрд░ рдХрд╛ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рдпрд╣ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрдХрд▓рдХ рдХреЛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ, рд╕рдВрдХрд▓рдХ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рдЪрдХреНрд░ рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рдж рдЪрд░ рдЖрд░ рдореЗрдВ рдореВрд▓реНрдп рдирдХрд╛рд░рд╛рддреНрдордХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рдЗрди рдмрд┐рдЯ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрд╢рди r & 0x7fffffff рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╕рдВрдХрд▓рдХ рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЪрд░ рдЖрд░ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ V1026 рдХреЛ рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реИрд╢ рдХреЛ рдкрдврд╝рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдХреЛрдб рдХрд╛ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг:

 int foo(const unsigned char *s) { unsigned r = 0; while(*s) { r += ((r * 20891 + *s *200) | *s ^ 4 | *s ^ 3) ^ (r >> 1); s++; } return (int)(r & 0x7fffffff); } 

рдЕрдм рдПрдХ рдФрд░ V1033 рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рджреЗрдЦреЗрдВред рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирдпрд╛ рдСрдЯреЛ рдХреАрд╡рд░реНрдб рдерд╛, рдЬреЛ C ++ 11 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдФрд░ рдпрд╣ C ++ 11 рднрд╛рд╖рд╛ рдХрд╛ рдирд╡рд╛рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЦреБрдж рджреЛрд╖реА рд╣реИ, рд▓реЗрдХрд┐рди рдордиреЛрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдпреЛрдЬрдирд╛ рдХреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ :)ред рдореИрдВ рдЕрдм рд╕рдордЭрд╛рддрд╛ рд╣реВрдБред рдЗрд╕ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

 float d = 3.14f; int i = 1; auto sum = d + i; 

рдЗрд╕реЗ рдЧрд▓рддреА рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВ? рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЛред рдпрд╣рд╛рдБ рдПрдХ рддрд╕реНрд╡реАрд░ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рддреБрд░рдВрдд рдкрд╛рда рдХреЛ рдЖрдЧреЗ рди рдкрдврд╝реЗрдВред

рд╕реЛрдЪрдиреЗ рдХрд╛ рд╕рдордп

рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣рд╛рдВ рдХреБрдЫ рдФрд░ рд░реЛрдЪрдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдпреЛрдЧ рдЪрд░ 4 рд╣реЛрдЧрд╛, 4.14 рдирд╣реАрдВред рдХреНрдпреЛрдВ?

XS

рдЕрдм рдкрд╛рдардХ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдПрдХ рдмреЗрдИрдорд╛рди рдкрд╣реЗрд▓реА рдереА! рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реА ++ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАред

рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ C ++ рдФрд░ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ C. рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ C ++ рдореЗрдВ рдСрдЯреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреНрдпрд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЧрд▓рддреА рд╕реЗ рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ C рдореЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдХреБрдЫ рдФрд░ рд╣реИ:

рдСрдЯреЛ

рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдЬреАрд╡рдирдХрд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреАрд╡рд░реНрдб рдСрдЯреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

 [auto] data-definition; 

рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдЬреАрд╡рдирдХрд╛рд▓ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ, рдСрдЯреЛ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЪрд░ рд░рд╛рд╢рд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ int рд╣реИ , рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп 4 рд╣реЛрдЧрд╛ред

рдпреВрдирд┐рдХреЙрд░реНрди рд╣рдВрд╕ рд░рд╣рд╛ рд╣реИ

рдпрджреНрдпрдкрд┐ рддреНрд░реБрдЯрд┐ рд╡рд┐рджреЗрд╢реА рд▓рдЧ рд╕рдХрддреА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реА рдФрд░ рд╕реА ++ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд┐рд╢реНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдЗрд╕реЗ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЬрдм рд╕реА-рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдРрд╕реЗ рд╕рдВрджрд┐рдЧреНрдз рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рд╣реИрдВред

рдЕрдиреНрдп рдирд╡рд╛рдЪрд╛рд░


Waf рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рд╣рдо рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреА рдУрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг GNU рдЖрд░реНрдо рдПрдВрдмреЗрдбреЗрдб рдЯреВрд▓рдЪреИрди, рдЖрд░реНрдо рдПрдВрдмреЗрдбреЗрдб GCC рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рддреНрдпрд╛рдкрди рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд╡рд┐рдЬреБрдЕрд▓ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ (cl.exe, vcxproj рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдлреЙрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ / рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди) рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рд░рд┐рдкреЛрд░реНрдЯ рдЕрдм рдкрдереЛрдВ рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдЬрд╛рдБрдЪреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрдХреНрд╖ рд╕реЗ рд╢реЛрдзрди рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп, cl.exe рдХрдВрдкрд╛рдЗрд▓рд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдореЗрдВ рдорд╛рдорд▓реЗ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд┐рдВрдбреЛрдЬ рдкрд░ CLMonitor / рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд╕реЗ pvsconfig рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

Pvs-studio-analzyer / CMake рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЛрдб рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред PVS-Studio CMake рдореЙрдбреНрдпреВрд▓ рдЕрдм рд╡рд┐рдЬрд╝реБрдЕрд▓ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ (cl.exe) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

.NET рдХреЛрд░ / .NET рдорд╛рдирдХ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ


  1. рдкреА рд╡реА рдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛред рд╕рдВрд╕реНрдХрд░рдг рдЗрддрд┐рд╣рд╛рд╕ ред
  2. рдПрдВрдбреНрд░реА рдХрд╛рд░рдкреЛрд╡ред рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рдХрдЯ рд╣реИ ред
  3. рд╡рд┐рд▓ рдбрд┐рдЯреНрдЬрд╝, рдкреЗрдВрдЧ рд▓реА, рдЬреЙрди рд░реЗрдЧрд░ рдФрд░ рд╡рд┐рдХреНрд░рдо рдЕрдбрд╡реЗред C / C ++ рдореЗрдВ Integer Overflow рдХреЛ рд╕рдордЭрдирд╛ ред
  4. рдИрдЧреЛрд░ рдмреНрд░реЗрдбрд┐рдХрд┐рдиред рдПрдХ рдирдП рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЬрд╛рд╡рд╛ ред

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


All Articles