рдПрдХ рдФрд░ рд╕рд╛рд▓ рдЦрддреНрдо рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЙрдлреА рдмрдирд╛рдиреЗ рдФрд░ рдмреАрддреЗ рд╕рд╛рд▓ рдХреА рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рджреЛрдмрд╛рд░рд╛ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрдзреЗрд░реЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдЬреЛ рд╣рдореЗрдВ 2019 рдореЗрдВ рд╕реА рдФрд░ рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдорд┐рд▓реЗ рдереЗред
рджрд╕рд╡рд╛рдБ рд╕реНрдерд╛рди: "рд╣рдорд╛рд░рд╛ OS рдХреНрдпрд╛ рд╣реИ?"
V1040 рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореИрдХреНрд░реЛ рдирд╛рдо рдХреА рд╡рд░реНрддрдиреА рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдЯрд╛рдЗрдкреЛред '__MINGW32_' рдореИрдХреНрд░реЛ '__MINGW32__' рдХреЗ рд╕рдорд╛рди рд╣реИред рд╡рд┐рдирд╛рдкреА.рд╣ 4112
#if !defined(__UNICODE_STRING_DEFINED) && defined(__MINGW32_) #define __UNICODE_STRING_DEFINED #endif
рдпрд╣рд╛рдВ, рдореИрдХреНрд░реЛ рдирд╛рдо рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛
__MINGW32 _ (MINGW32 рдШреЛрд╖рдгрд╛ __MINGW32__)ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ, рд╕рддреНрдпрд╛рдкрди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
рдпрд╣, рд╕рдВрдпреЛрдЧ рд╕реЗ, рд▓реЗрдЦ "
CMake: рдХреЗрд╕: рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдкрдиреЗ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдореНрдп рд╣реИ " рдореЗрдВ рди рдХреЗрд╡рд▓ рдкрд╣рд▓реА рддреНрд░реБрдЯрд┐ рдереА, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ V1040 рдирд┐рджрд╛рди рджреНрд╡рд╛рд░рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдУрдкрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ (19 рдЕрдЧрд╕реНрдд, 2019) рдореЗрдВ рдкрд╣рд▓реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред
рдиреМрд╡рд╛рдВ рд╕реНрдерд╛рди: "рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреМрди рд╣реИ?"
V502 рд╢рд╛рдпрдж '?:' рдСрдкрд░реЗрдЯрд░ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред '?:' рдСрдкрд░реЗрдЯрд░ рдХреА '==' рдСрдкрд░реЗрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред mir_parser.cpp 884
enum Opcode : uint8 { kOpUndef, .... OP_intrinsiccall, OP_intrinsiccallassigned, .... kOpLast, }; bool MIRParser::ParseStmtIntrinsiccall(StmtNodePtr &stmt, bool isAssigned) { Opcode o = !isAssigned ? (....) : (....); auto *intrnCallNode = mod.CurFuncCodeMemPool()->New<IntrinsiccallNode>(....); lexer.NextToken(); if (o == !isAssigned ? OP_intrinsiccall : OP_intrinsiccallassigned) { intrnCallNode->SetIntrinsic(GetIntrinsicID(lexer.GetTokenKind())); } else { intrnCallNode->SetIntrinsic(static_cast<MIRIntrinsicID>(....)); } .... }
рд╣рдо рдЗрд╕ рдХреЛрдб рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
if (o == !isAssigned ? OP_intrinsiccall : OP_intrinsiccallassigned) { .... }
рдСрдкрд░реЗрдЯрд░ '==' рдореЗрдВ рдЯрд░реНрдиреЗрд░реА рдСрдкрд░реЗрдЯрд░ (:)! рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рд╣реА рдореВрд▓реНрдпрд╛рдВрдХрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:
if ((o == !isAssigned) ? OP_intrinsiccall : OP_intrinsiccallassigned) { .... }
рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ
OP_intrinsiccall рдФрд░
OP_intrinsiccallassign рдХреЗ рдкрд╛рд╕ рдЧреИрд░-рдорд╛рди рд╣реИ, рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдорд╛рди рджреЗрддреА рд╣реИред
рджреВрд╕рд░реА рд╢рд╛рдЦрд╛ рдХрд╛ рд╢рд░реАрд░ рдЕрдиреБрдкрдпреЛрдЧреА рдХреЛрдб рд╣реИред
рдпрд╣ рддреНрд░реБрдЯрд┐ рд▓реЗрдЦ "
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣реБрдЖрд╡реЗрдИ рджреНрд╡рд╛рд░рд╛ рдЦреЛрд▓реЗ рдЧрдП рд╕рдиреНрджреВрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ " рд╕реЗ рд╣рдорд╛рд░реЗ рд╢реАрд░реНрд╖ рдкрд░ рдЖрдИред
рдЖрдард╡рд╛рдБ рд╕реНрдерд╛рди: "рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд╛ рдЦрд╝рддрд░рд╛"
V1046 рдмреВрд▓ рдХрд╛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧ 'рдФрд░' int 'рдСрдкрд░реЗрд╢рди рдореЗрдВ рдПрдХ рд╕рд╛рде' & = 'ред GSLMultiRootFinder.h 175
int AddFunction(const ROOT::Math::IMultiGenFunction & func) { ROOT::Math::IMultiGenFunction * f = func.Clone(); if (!f) return 0; fFunctions.push_back(f); return fFunctions.size(); } template<class FuncIterator> bool SetFunctionList( FuncIterator begin, FuncIterator end) { bool ret = true; for (FuncIterator itr = begin; itr != end; ++itr) { const ROOT::Math::IMultiGenFunction * f = *itr; ret &= AddFunction(*f); } return ret; }
рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░,
SetFunctionList рдлрд╝рдВрдХреНрд╢рди рдХреЛ
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА
рдХреЛ рдмрд╛рдпрдкрд╛рд╕
рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдереАред рдФрд░ рдЕрдЧрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрдорд╛рдиреНрдп рд╣реИ, рддреЛ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп
рдЧрд▓рдд рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛
рд╕рдЪ рд╣реИ ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
SetFunctionList рдлрд╝рдВрдХреНрд╢рди рд╡реИрдз
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА
рдЧрд▓рдд рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред рдЖрдЗрдП рд╕реНрдерд┐рддрд┐ рдкрд░ рдПрдХ
рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ ред
AddFunction рдлрд╝рдВрдХреНрд╢рди рдиреЗ рдорд╛рдиреНрдп
рдлрд╝рд╛рдЗрдЯрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ
fFunctions рд╕реВрдЪреА рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпрд╛рдиреА рдЧреИрд░-рд╢реВрдиреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░, рдЗрд╕ рд╕реВрдЪреА рдХрд╛ рдЖрдХрд╛рд░ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдмрдврд╝реЗрдЧрд╛: 1, 2, 3, 4, рдЖрджрд┐ред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИ:
ret &= AddFunction(*f);
рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдЯрд╛рдЗрдк
рдЗрдВрдЯ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рди рдХрд┐
рдмреВрд▓ рдХреЗ рд╕рд╛рде , рдСрдкрд░реЗрд╢рди '& =', рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдорд╛рди
рдЧрд▓рдд рджреЗрдЧрд╛ ред рд╕рдм рдХреЗ рдмрд╛рдж, рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╡реИрдз рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА
SetFunctionsList рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЦрд░рд╛рдм рдХрд░
рджреЗрдЧреА ред
рдпрджрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЛрдб рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ (рдФрд░ рдЖрдк рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдареАрдХ рд╣реИ?), рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреЛрдб ROOT рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд╣реИред рдмреЗрд╢рдХ, рд╣рдордиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛: "
рд░реВрдЯ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг - рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЕрдиреБрд╕рдВрдзрд╛рди рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ ред"
рд╕рд╛рддрд╡реАрдВ рдЬрдЧрд╣: "рдЪрд░ рдореЗрдВ рднреНрд░рдо"
V1001 [CWE-563] 'рдореЛрдб' рд╡реЗрд░рд┐рдПрдмрд▓ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рддрдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред SIModeRegister.cpp 48
struct Status { unsigned Mask; unsigned Mode; Status() : Mask(0), Mode(0){}; Status(unsigned Mask, unsigned Mode) : Mask(Mask), Mode(Mode) { Mode &= Mask; }; .... };
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддрд░реНрдХ рдХреЛ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рджреЗрдирд╛ рдмрд╣реБрдд рдЦрддрд░рдирд╛рдХ рд╣реИред рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рд╕рд┐рд░реНрдл рдПрдХ рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ:
Mode &= Mask;
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рддрд░реНрдХ рдмрджрд▓рддрд╛ рд╣реИред рдФрд░ рд╡рд╣ рдпрд╣ рд╣реИред рдЗрд╕ рддрд░реНрдХ рдХрд╛ рдЕрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛:
Status(unsigned Mask, unsigned Mode) : Mask(Mask), Mode(Mode) { this->Mode &= Mask; };
рдФрд░ рдпрд╣
LLVM рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп-рд╕рдордп рдкрд░ рдПрдХ рдкрд░рдВрдкрд░рд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрд╖ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рддреНрдпрд╛рдкрди рдкрд░ рдПрдХ
рд▓реЗрдЦ рднреА рд╣реИред
рдЫрдард╛ рд╕реНрдерд╛рди: "C ++ рдХреЗ рдЕрдкрдиреЗ рдХрд╛рдиреВрди рд╣реИрдВ"
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЛрдб рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдХрд┐ C ++ рдирд┐рдпрдо рд╣рдореЗрд╢рд╛ рдЧрдгрд┐рддреАрдп рдирд┐рдпрдореЛрдВ рдпрд╛ "рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди" рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рд▓рд┐рдП рдиреЛрдЯрд┐рд╕ рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ рд╣реИ?
V709 рд╕рдВрджрд┐рдЧреНрдз рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛: 'f0 == f1 == m_fractureBodies.size ()'ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ 'a == b == c' 'a == b && b == c' рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред btFractureDynamicsWorld.cpp 483
btAlignedObjectArray<btFractureBody*> m_fractureBodies; void btFractureDynamicsWorld::fractureCallback() { for (int i = 0; i < numManifolds; i++) { .... int f0 = m_fractureBodies.findLinearSearch(....); int f1 = m_fractureBodies.findLinearSearch(....); if (f0 == f1 == m_fractureBodies.size()) continue; .... } .... }
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓рдд рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐
f0 f1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдФрд░
m_fractureBodies рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдБрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░
f0 рдФрд░
f1 m_fractureBodies рд╕рд░рдгреА рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ
рдЦреЛрдЬрд▓реАрди рдЦреЛрдЬ () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛
f0 рдФрд░
f1 рдмрд░рд╛рдмрд░ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐
m_fractureBodies.size () f0 == f1 рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдирддреАрдЬрддрди, рдпрд╣рд╛рдВ рддреАрд╕рд░реЗ рдСрдкрд░реЗрдВрдб рдХреА рддреБрд▓рдирд╛ 0 рдпрд╛ 1 рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИред
рд╕реБрдВрджрд░ рдЧрд▓рддреА! рдФрд░, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХрд╛рдлреА рджреБрд░реНрд▓рднред рдЕрдм рддрдХ рд╣рдо
рдЙрдирд╕реЗ рдХреЗрд╡рд▓ рддреАрди рдЦреБрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ
рдорд┐рд▓реЗ рд╣реИрдВ, рдФрд░, рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рд╕рд┐рд░реНрдл рдЦреЗрд▓ рдЗрдВрдЬрди рдереЗред рд╡реИрд╕реЗ, рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдордиреЗ рдмреБрд▓реЗрдЯ рдореЗрдВ рдкрд╛рдИ рдереАред рд╣рдорд╛рд░реЗ рд▓реЗрдЦ "
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдиреЗ рд░реЗрдб рдбреЗрдб рд░рд┐рдбреЗрдореНрдкрд╢рди - рдмреБрд▓реЗрдЯ рдЗрдВрдЬрди "
рдореЗрдВ рджреЗрдЦрд╛ , рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк
рдмрд╛рддреЗрдВ рд╕рд╛рдордиреЗ рдЖрдИрдВ ред
рдкрд╛рдВрдЪрд╡рд╛ рд╕реНрдерд╛рди: "рдкрдВрдХреНрддрд┐ рдХрд╛ рдЕрдВрдд рдХреНрдпрд╛ рд╣реИ?"
рдпрджрд┐ рдЖрдк рдПрдХ рд╕реВрдХреНрд╖реНрдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рддреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
V739 рдИрдУрдПрдл рдХреА рддреБрд▓рдирд╛ 'рдЪрд╛рд░' рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдирд╣реАрдВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред 'Ch' 'int' рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред json.cpp 762
void JsonIn::skip_separator() { signed char ch; .... if (ch == ',') { if( ate_separator ) { .... } .... } else if (ch == EOF) { .... }
рдпрд╣ рдЙрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐
рдИрдУрдПрдл -1 рдХреЗ рд░реВрдк
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЯрд╛рдЗрдк
рдХрд┐рдП рдЧрдП рдЪрд╛рд░реНрдЯ рдХреЗ рдЪрд░ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдерд┐рддрд┐ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛
рдЭреВрдареА рд╣реЛрддреА рд╣реИ ред рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж рдпрджрд┐ рд╡рд░реНрдг рдХреЛрдб 0xFF (255) рд╣реИред рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рдРрд╕рд╛ рдкреНрд░рддреАрдХ -1 рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕реНрдерд┐рддрд┐ рд╕рд╣реА рд╣реЛрдЧреАред
рдЗрд╕ рд╢реАрд░реНрд╖ рдореЗрдВ рдЦреЗрд▓реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрд╣реБрдд рд╕рд╛рд░реА рдЧрд▓рддрд┐рдпрд╛рдБ рд╣реИрдВ: рдЗрдВрдЬрди рд╕реЗ рд▓реЗрдХрд░ рдЦреБрд▓реЗ рдЦреЗрд▓ рддрдХред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рд╕реНрдерд╛рди рднреА рдЗрд╕реА рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдпрд╛ рдерд╛ред рдЖрдк рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ "
рдХреИрдЯреЗрдХреНрд▓реАрд╕рдо рдбрд╛рд░реНрдХ рдбреЗрдЬ рдЕрд╣реЗрдб, рд╕реНрдЯреЗрдЯрд┐рдХ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдПрдВрдб рдмреИрдЧрд▓реНрд╕ ред"
рдЪреМрдерд╛ рд╕реНрдерд╛рди: "рдирдВрдмрд░ рдкреА рдХрд╛ рдЬрд╛рджреВ"
V624 '3.141592538' рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ рдПрдХ
рдЧрд▓рддрдлрд╣рдореА рд╣реИред <Math.h> рд╕реЗ M_PI рдирд┐рд░рдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред PhysicsClientC_API.cpp 4109
B3_SHARED_API void b3ComputeProjectionMatrixFOV(float fov, ....) { float yScale = 1.0 / tan((3.141592538 / 180.0) * fov / 2); .... }
рд╕рдВрдЦреНрдпрд╛ рдкрд╛рдИ (3.141592653 ...) рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдЯрд╛рдЗрдкреЛ, рдлреНрд░реИрдХреНрдЪрд░ рднрд╛рдЧ рдореЗрдВ 7 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ "6" рдирдВрдмрд░ рдЧрд╛рдпрдм рд╣реИред
рд╢рд╛рдпрдж рджрд╕-рджрд╕рд╡реЗрдВ рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рди рдореЗрдВ рддреНрд░реБрдЯрд┐ рдореВрд░реНрдд рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдмрд┐рдирд╛ рд▓рд╛рдпрдмреНрд░реЗрд░реА рдХреЗ рдореМрдЬреВрджрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Pi рдХреЗ рд▓рд┐рдП, math.h рд╣реИрдбрд░ рд╕реЗ рдПрдХ M_PI рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИред
рдпрд╣ рддреНрд░реБрдЯрд┐ "
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдиреЗ рд░реЗрдб рдбреЗрдб рд░рд┐рдбреЗрдореНрдкрд╢рди - рдмреБрд▓реЗрдЯ рдЗрдВрдЬрди рдореЗрдВ рджреЗрдЦрд╛ " рд▓реЗрдЦ рд╕реЗ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЫрдареЗ рд╕реНрдерд╛рди рдкрд░ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдмрд╛рдж рдХреЗ рд▓рд┐рдП рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдВрддрд┐рдо рдореМрдХрд╛ рд╣реИред
рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░
рдЗрд╕рд▓рд┐рдП рд╣рдо рд╢реАрд░реНрд╖ рддреАрди рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рдХрд░реАрдм рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛, рд╡реЗ рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рднрдпрд╛рд╡рд╣ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдкрд╣рдЪрд╛рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рд╣рд▓ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдкрд░ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдорд╢реАрди рдердХрддреА рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рднреВрд▓рддреА рд╣реИред :)
рдФрд░ рдЕрдм рдореИрдВ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЛ рдкрд╣рд▓реЗ рддреАрди рдкрд░ рд▓рд╛рддрд╛ рд╣реВрдВред
рддреАрд╕рд░рд╛ рд╕реНрдерд╛рди: "рдорд╛рдпрд╛рд╡реА рдЕрдкрд╡рд╛рдж"
V702 рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рд╣рдореЗрд╢рд╛ std :: рдЕрдкрд╡рд╛рдж (рдФрд░ рдПрдХ рдЬреИрд╕реЗ) рд╕реЗ 'рдкрдмреНрд▓рд┐рдХ' рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдХреЛрдИ рдХреАрд╡рд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ 'рдирд┐рдЬреА' рдореЗрдВ рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рддрд╛ рд╣реИ)ред CalcManager CalcException.h 4
class CalcException : std::exception { public: CalcException(HRESULT hr) { m_hr = hr; } HRESULT GetException() { return m_hr; } private: HRESULT m_hr; };
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ
std рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ
:: рдирд┐рдЬреА рд╕рдВрд╢реЛрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
рдЕрдкрд╡рд╛рдж рд╡рд░реНрдЧ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрд╢реЛрдзрдХ рдЕрдЧрд░ рдХреБрдЫ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдЕрдкрд╡рд╛рдж
std :: рдЕрдкрд╡рд╛рдж рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ
рд╣реИрдВ, рддреЛ CalcException рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрд╡рд╛рдж рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдЬреА рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред
рд╣рд╛рдВ, рдореИрдВ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдкрддрд╛ рд╕рдВрд╢реЛрдзрдХ рдХреЗ рдХрд╛рд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛
ред рд╡реИрд╕реЗ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд░реВрд░ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╣рдордиреЗ рдЕрднреА рджреЗрдЦрд╛ рдерд╛ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ рдорд╛рдирдХ
рд╡рд┐рдВрдбреЛрдЬ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдордиреЗ
рдкрд░реАрдХреНрд╖рдг рднреА
рдХрд┐рдпрд╛ ред
рджреВрд╕рд░реА рдЬрдЧрд╣: HTML рдЯреИрдЧреНрд╕ рдХреЛ рдЕрдирдХреНрд▓реЛрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛
V735 рд╕рдВрднрд╡рддрдГ рдПрдХ рдЧрд▓рдд HTML рд╣реИред "</ Body>" рд╕рдорд╛рдкрди рдЯреИрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬрдмрдХрд┐ "</ div>" рдЯреИрдЧ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ред book.cpp 127
static QString makeAlgebraLogBaseConversionPage() { return BEGIN INDEX_LINK TITLE(Book::tr("Logarithmic Base Conversion")) FORMULA(y = log(x) / log(a), log<sub>a</sub>x = log(x) / log(a)) END; }
рдЬреИрд╕рд╛ рдХрд┐ рдЕрдХреНрд╕рд░ C / C ++ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ, рд╕реНрд░реЛрдд рд╕реЗ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдЗрдП рдЗрд╕ рдЦрдВрдб рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдУрд░ рдореБрдбрд╝реЗрдВ:
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ
<div> рдЯреИрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ html рдХреЛрдб рдХреЗ рдХрдИ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ рдФрд░ рдЕрдм рдЗрд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╣рдо рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣? рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣ рджреЗрдЦрд╛, рддреЛ рдореИрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖред рдЗрд╕рд▓рд┐рдП рд╣рдо html рдХреЛрдб рдХрд╛ рдереЛрдбрд╝рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рд╕рдЪ рд╣реИ, рдХреЗрд╡рд▓ C ++ рдХреЛрдб рдореЗрдВред :)
рдпрд╣ рди рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╣реИ, рдмрд▓реНрдХрд┐ рд╣рдорд╛рд░реЗ рд╢реАрд░реНрд╖ рдореЗрдВ рджреВрд╕рд░рд╛ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рднреА рд╣реИред рдЖрдк рд▓реЗрдЦ рдореЗрдВ "
рдЧрдгрдирд╛рдХрд░реНрддрд╛рдУрдВ рдХреЗ рдирд┐рд╢рд╛рди: рд╕реНрдкреАрдбрдХреНрд░рдВрдЪ " рдХреЗ
рдмрд╛рдж рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рд╕реНрдерд╛рди: "рдорд╛рдпрд╛рд╡реА рдорд╛рдирдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБ"
рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдПред рдПрдХ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдПрдХ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓реА рдЧрдИред
рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:
static int EatWhitespace (FILE * InFile) { int c; for (c = getc (InFile); isspace (c) && ('\n' != c); c = getc (InFile)) ; return (c); }
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреНрдпрд╛ рдХрд╣рддрд╛ рд╣реИ:
V560 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИ: ('\ n'! = C)ред params.c 136ред
рдЕрдЬреАрдм рд╣реИ, рд╣реИ рдирд╛? рдЖрдЗрдП рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рджреЗрдЦреЗрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ (charset.h) рдореЗрдВ:
#ifdef isspace #undef isspace #endif .... #define isspace(c) ((c)==' ' || (c) == '\t')
рддреЛ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рд╣реИ ... рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЪрд░
c '\ n' рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
, рддреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ
isspace (c) рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐
isspace (c) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЪрд░
c рдпрд╛ рддреЛ
'' рдпрд╛
't' рд╣реИ, рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ
'\ n' рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред
рдмреЗрд╢рдХ, рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдореИрдХреНрд░реЛ
#define рд╕рдЪ рдХреА рддрд░рд╣ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдб рдХрднреА рднреА рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдХреЛрдб рдиреЗ рд╕рдореАрдХреНрд╖рд╛ рдкрд╛рд░рд┐рдд рдХрд░ рджреА рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрдВрдбрд╛рд░ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдпрджрд┐ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд▓реЗрдЦ рдореЗрдВ рд╣реИ "
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЬрд╛рд╕реВрд╕ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: рдордзреНрдпрд░рд╛рддреНрд░рд┐ рдХрдорд╛рдВрдбрд░ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐ рдвреВрдВрдвреЗрдВ "ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ, рд╣рдордиреЗ рдХрдИ рдЧрд▓рддрд┐рдпрд╛рдВ рдкрд╛рдИ рд╣реИрдВред рдпреЗ рд╕рд╛рдорд╛рдиреНрдп рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ, рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рдЕрд╕реНрдкрд╖реНрдЯ рдЯреИрдЧ рдФрд░ рдХрдИ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрдЧ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░ рдФрд░
рд╕реАрдЦ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдВрдд рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдирдП рд▓реЗрдЦ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рдпрджрд┐ рдХреЛрдИ рд╣рдорд╛рд░реЗ рд▓реЗрдЦреЛрдВ рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рдмрд╕, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпреЗ рд╕рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ PVS-Studio рд╕реНрдЯреИрдЯрд┐рдХ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рдИ рдЧрдИ рдереАрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдпрд╛рд╕
рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ: C, C ++, C # рдФрд░ Javaред
рддреЛ рд╣рдо рдЕрдВрдд рддрдХ рдЖ рдЧрдП рд╣реИрдВ! рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рджреЛ рд╕реНрддрд░реЛрдВ рд╕реЗ рдЪреВрдХ рдЧрдП рд╣реИрдВ, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрд╡рд╕рд░ рдХреЛ рди рдЫреЛрдбрд╝реЗрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВ:
рд╕реА # рдФрд░
рдЬрд╛рд╡рд╛ ред

рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдореИрдХреНрд╕рд┐рдо рдЬрд╝рд┐рд╡рдЧрд┐рдВрдЯрд╕реЗрд╡ред
2019 рдореЗрдВ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╢реАрд░реНрд╖ 10 рдХреАрдбрд╝реЗ рдорд┐рд▓реЗ ред