рдмрд╣реБ-рдЪрд░рд┐рддреНрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЦрддрд░реЗ

рдЪрд┐рддреНрд░ 1

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

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


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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 'T \ x65s \ x74' рд╢рд╛рдмреНрджрд┐рдХ рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рддрд░реНрдХ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдордиреЗ рдХреЛрдб рдореЗрдВ рдРрд╕реЗ рд╢рд╛рдмреНрджрд┐рдХреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд┐рдпрдо V1039 рдмрдирд╛рдпрд╛ рд╣реИред рдпреЗ рд╢рд╛рдмреНрджрд┐рдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЦрддрд░рдирд╛рдХ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдиреИрджрд╛рдирд┐рдХ тАЛтАЛV1039


рдЖрдЗрдП рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб, рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд, рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВрдЧреЗ:

#include <stdio.h> void foo(int c) { if (c == 'T\x65s\x74') // <= V1039 { printf("Compiled with GCC or Clang.\n"); } else { printf("It's another compiler (for example, MSVC).\n"); } } int main(int argc, char** argv) { foo('Test'); return 0; } 

рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо, рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛ред

рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ рдРрд╕реЗ рд╢рд╛рдмреНрджрд┐рдХ рдХреЛ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ 'рдЯреЗрд╕реНрдЯ' рдХреЛ 0x54657374 рд╕реЗ рдмрджрд▓рдирд╛ рд╣реИред

рд╕рдВрдХрд▓рдХ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЫреЛрдЯреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ 3 рдФрд░ 4 рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рд▓реЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ 'GHIJ' рдФрд░ 'GHI', рдФрд░ рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж рд╕реНрдореГрддрд┐ рдореЗрдВ рдЙрдирдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛрдб:

 #include <stdio.h> typedef int char_t; void PrintBytes(const char* format, char_t lit) { printf("%20s : ", format); const unsigned char *ptr = (const unsigned char*)&lit; for (int i = sizeof(lit); i--;) { printf("%c", *ptr++); } putchar('\n'); } int main(int argc, char** argv) { printf("Hex codes are: G(%02X) H(%02X) I(%02X) J(%02X)\n",'G','H','I','J'); PrintBytes("'GHIJ'", 'GHIJ'); PrintBytes("'\\x47\\x48\\x49\\x4A'", '\x47\x48\x49\x4A'); PrintBytes("'G\\x48\\x49\\x4A'", 'G\x48\x49\x4A'); PrintBytes("'GH\\x49\\x4A'", 'GH\x49\x4A'); PrintBytes("'G\\x48I\\x4A'", 'G\x48I\x4A'); PrintBytes("'GHI\\x4A'", 'GHI\x4A'); PrintBytes("'GHI'", 'GHI'); PrintBytes("'\\x47\\x48\\x49'", '\x47\x48\x49'); PrintBytes("'GH\\x49'", 'GH\x49'); PrintBytes("'\\x47H\\x49'", '\x47H\x49'); PrintBytes("'\\x47HI'", '\x47HI'); return 0; } 

рджреГрд╢реНрдп C ++ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ:

 Hex codes are: G(47) H(48) I(49) J(4A) 'GHIJ' : JIHG '\x47\x48\x49\x4A' : GHIJ 'G\x48\x49\x4A' : HGIJ 'GH\x49\x4A' : JIHG 'G\x48I\x4A' : JIHG 'GHI\x4A' : JIHG 'GHI' : IHG '\x47\x48\x49' : GHI 'GH\x49' : IHG '\x47H\x49' : HGI '\x47HI' : IHG 

рдЬреАрд╕реАрд╕реА рдпрд╛ рдХреНрд▓реИрдВрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ:

 Hex codes are: G(47) H(48) I(49) J(4A) 'GHIJ' : JIHG '\x47\x48\x49\x4A' : JIHG 'G\x48\x49\x4A' : JIHG 'GH\x49\x4A' : JIHG 'G\x48I\x4A' : JIHG 'GHI\x4A' : JIHG 'GHI' : IHG '\x47\x48\x49' : IHG 'GH\x49' : IHG '\x47H\x49' : IHG '\x47HI' : IHG 

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


рдкреАрд╡реА 10-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ 7.03 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ V1039 рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ , рдЬрд┐рд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдкреГрд╖реНрда рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles