рдкреЙрдЗрдВрдЯрд░ рдПрдХ рдореЗрдореЛрд░реА рд╕реЗрд▓ рдХреЛ
рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░
рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ
рдбреАрд░реЗрдлрд░ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд▓ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рдирд╛ред рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдорд╛рди рд╣реА рдореЗрдореЛрд░реА рд╕реЗрд▓ рдХрд╛ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИред C рднрд╛рд╖рд╛ рдорд╛рдирдХ рд╕реНрдореГрддрд┐ рдкрддреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдкрддреНрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд┐рднрд┐рдиреНрди рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд░реИрдЦрд┐рдХ рдкрддрд╛ рд╕реНрдерд╛рди рдпрд╛ рд╕рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рд╕рд╡рд╛рд▓ рднреА рдХрдбрд╝рд╛рдИ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрддреЗ рднреМрддрд┐рдХ рдпрд╛ рдЖрднрд╛рд╕реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рднреА рдкрд░ рдПрдХ рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рд╕реНрдк рдорд╢реАрди рдкрддреЗ рдХреЗ рд░реВрдк
(рдСрдмреНрдЬреЗрдХреНрдЯ, рдСрдлрд╕реЗрдЯ) рдХреЗ рдЯреБрдкрд▓реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддреА рд╣реИред
рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╣реИрдмреЗ рдкрд░ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж, рд▓реЗрдЦрдХ рдиреЗ рд▓реЗрдЦ рдХреЗ рдкрд╛рда рдореЗрдВ рдмрдбрд╝реЗ рд╕рдВрд╢реЛрдзрди рдХрд┐рдПред Habr├й рдкрд░ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЕрдкрдирд╛ рдЕрд░реНрде рдЦреЛ рджреЗрдВрдЧреА рдпрд╛ рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░ рджреЗрдЦ рд▓реЗрдВрдЧреАред рдореИрдВ рдкрд╛рда рдХреЛ рдПрдХ рдирдП рд▓реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╕рд┐рд░реНрдл viva64.com рдкрд░ рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ , рдФрд░ рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕рдм рдХреБрдЫ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдирдП рдкрд╛рдардХ рд╣реИрдВ, рддреЛ рдореИрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдФрд░ рд╣рд╛рд▓рд┐рдпрд╛ рдЕрдиреБрд╡рд╛рдж рдкрдврд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред |
рдорд╛рдирдХ рдмрд┐рдВрджреБрдУрдВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд░реВрдк рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╣рдж рддрдХ - рдЙрдирдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рдиред рдиреАрдЪреЗ рд╣рдо рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдорд╛рдирдХ рдореЗрдВ рдЙрдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:
#include <stdio.h> int main(void) { int a, b; int *p = &a; int *q = &b + 1; printf("%p %p %d\n", (void *)p, (void *)q, p == q); return 0; }
рдпрджрд┐ рд╣рдо рдЗрд╕ GCC рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рди рд╕реНрддрд░ 1 рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓рд┐рдирдХреНрд╕ x86-64 рдХреЗ рддрд╣рдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛:
0x7fff4a35b19c 0x7fff4a35b19c 0
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреЙрдЗрдВрдЯрд░реНрд╕
p рдФрд░
q рдПрдХ рд╣реА рдкрддреЗ рдкрд░ рд╕рдВрджрд░реНрднрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
p == q рдХрд╛ рдкрд░рд┐рдгрд╛рдо
рдЧрд▓рдд рд╣реИ , рдФрд░ рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдПрдХ рд╣реА рдкрддреЗ рдХреЗ рджреЛ рд╕рдВрдХреЗрдд рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП?
рдпрд╣рд╛рдБ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ C рдорд╛рдирдХ рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:
C11 .9 6.5.9 рдкреИрд░рд╛ 6
рджреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╕рдорд╛рди рд╣реИрдВ рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ рдпрджрд┐ рджреЛрдиреЛрдВ рд╢реВрдиреНрдп рд╣реИрдВ, рдпрд╛ рддреЛ рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╕рд╣рд┐рдд рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рд╕рдмреЛрдмреЗрдЬ) рдпрд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди, рдпрд╛ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рдЙрд╕реА рдкрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рдкрд╣рд▓реЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рджреВрд╕рд░реЗ рд╕рд░рдгреА рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред |
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдПрдХ "рд╡рд╕реНрддреБ
" рдХреНрдпрд╛ рд╣реИ? рдЪреВрдБрдХрд┐ рд╣рдо C рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ OOP рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ C ++ рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рд╕реА рдорд╛рдирдХ рдореЗрдВ, рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ:
C11 15 3.15
рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд░рдирдЯрд╛рдЗрдо рд╕реНрдЯреЛрд░реЗрдЬ рдПрд░рд┐рдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдиреЛрдЯ рдЬрдм рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рджреЗрдЦреЗрдВ 6.3.2.1ред |
рдЪрд▓реЛ рдареАрдХ рд╣реИред 16-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдЪрд░ рд╕реНрдореГрддрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ 16-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рдиреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЪрд░ рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рдХреНрдпрд╛ рджреЛ рдмрд┐рдВрджреБ рд╕рдорд╛рди рд╣реЛрдВрдЧреЗ рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рджрд┐рдП рдЧрдП рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рджреВрд╕рд░реЗ рдмрд╛рдЗрдЯ рдХреЛ? рднрд╛рд╖рд╛ рдорд╛рдирдХреАрдХрд░рдг рд╕рдорд┐рддрд┐, рдмрд┐рд▓реНрдХреБрд▓, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реНрдкрд╖реНрдЯ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рд╣рдо рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдорддрд▓рдм рдерд╛ред
рдЬрдм рдХрдВрдкрд╛рдЗрд▓рд░ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ
рдЖрдЗрдП рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред рдкреЙрдЗрдВрдЯрд░
рдкреА рдСрдмреНрдЬреЗрдХреНрдЯ
рдП рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛
рд╣реИ , рдФрд░ рдкреЙрдЗрдВрдЯрд░
рдХреНрдпреВ рдСрдмреНрдЬреЗрдХреНрдЯ
рдмреА рд╕реЗ рд╣реЛрддрд╛ рд╣реИ ред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрддрд╛ рдЕрдВрдХрдЧрдгрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд▓рд╕ рдФрд░ рдорд╛рдЗрдирд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
C11 ┬з 6.5.6 рдЦрдВрдб 7
рдЬрдм рдЗрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЬреЛ рдХрд┐ рдПрд▓реАрдореЗрдВрдЯ рдХрд╛ рдПрдХ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдПрд▓реАрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реАрдореЗрдВрдЯ рдХреА рддрд░рд╣ рдПрдХ рдПрд▓реАрдореЗрдВрдЯ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЯрд╛рдЗрдк рдУрд░рд┐рдЬрд┐рдирд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред |
рдЪреВрдБрдХрд┐ рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреЙрдЗрдВрдЯрд░ рдЬреЛ рдХрд┐ рдПрдХ рдПрд░реЗ рдирд╣реАрдВ рд╣реИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдПрд▓реАрдореЗрдВрдЯ рдореЗрдВ рдПрдХ рдПрд▓реАрдореЗрдВрдЯ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рдПрд▓реАрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдорд╛рдирдХ рдЕрд░рд┐рдердореЗрдЯрд┐рдХ рдХреЛ рдПрдбреНрд░реЗрд╕ рдХреЛ рдХреЗрд╡рд▓ рдПрд░реЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдкреЙрдЗрдВрдЯ 8 рд╣реИред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
C11 ┬з 6.5.6 рдЦрдВрдб 8
рдпрджрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реВрдЪрдХ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдпрд╛ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪрдХ рдореВрд▓ рд╕реВрдЪрдХ рдХреЗ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реВрдЪрдХ рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд░рдгреА рдкрд░реНрдпрд╛рдкреНрдд рд▓рдВрдмрд╛рдИ рдХрд╛ рд╣реИ, рддреЛ рд╕реНрд░реЛрдд рдФрд░ рдкрд░рд┐рдгрд╛рдореА рддрддреНрд╡ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдирдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ P , рд╕рд░рдгреА рдХреЗ ith рддрддреНрд╡ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рднрд╛рд╡ (P) + N (рдпрд╛ рдЗрд╕рдХреЗ рд╕рдорддреБрд▓реНрдп N + (P) ) рдФрд░ (P) -N (рдЬрд╣рд╛рдБ N рдХрд╛ рдорд╛рди n рд╣реИ) рдХреНрд░рдорд╢рдГ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ (i + n) рд╡реЗрдВ рдФрд░ (i - n) рд╕рд░рдгреА рдХреЗ рддрддреНрд╡, рдмрд╢рд░реНрддреЗ рдХрд┐ рд╡реЗ рдореМрдЬреВрдж рд╣реЛрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ P рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (P) +1 рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ Q рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (Q) -1 рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рд░рдгреАред рдпрджрд┐ рд╕реНрд░реЛрдд рдФрд░ рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдХреЗрдд рджреЛрдиреЛрдВ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рдЙрд╕реА рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ; рдЕрдиреНрдпрдерд╛, рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред рдпрджрд┐ рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪрдХ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпреВрдирд░реА * рдСрдкрд░реЗрдЯрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред |
рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
рдФрд░ рдмреА + 1 рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рд▓рд┐рдП
рдкреА рдФрд░
рдХреНрдпреВ рд╡реИрдз рд╕рдВрдХреЗрдд рд╣реИрдВред рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ рдХрд┐ рдорд╛рдирдХ рдореЗрдВ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИ: "
рджреЛ рдмрд┐рдВрджреБ
рд╕рдорд╛рди рд╣реИрдВ рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ [...] рдПрдХ рд╕реВрдЪрдХ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рд╕рд░рдгреА рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рджреВрд╕рд░реЗ рд╕рд░рдгреА рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рдорд╛рди рд╣реИред рдкрддрд╛ рд╕реНрдерд╛рди " (C11 (6.5.9 рдЦрдВрдб 6)ред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдо рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рдкреЙрдЗрдВрдЯрд░ рдХреНрдпреВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдмреА рдХреЗ рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреБрд░рдВрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдП, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкреЙрдЗрдВрдЯрд░ рдкреА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рддреЛ, рдХреНрдпрд╛ рдЬреАрд╕реАрд╕реА рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ? рдЗрд╕ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдХреЛ 2014 рдореЗрдВ
рдмрдЧ # 61502 рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬреАрд╕реАрд╕реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕реЗ рдмрдЧ рдирд╣реАрдВ рдорд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
2016 рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
extern int _start[]; extern int _end[]; void foo(void) { for (int *i = _start; i != _end; ++i) { } }
рдкреНрд░рддреАрдХ
_start рдФрд░
_end рд╕реНрдореГрддрд┐ рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд░реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд┐рдд рд╣реИрдВред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдЙрд╕реЗ рдпрд╣рд╛рдВ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдзрд╛рд░рдгрд╛ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗ рдкрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреАрд╕реАрд╕реА рд▓реВрдк рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд╣реЛ, рдЬреЛ рд▓реВрдк рдХреЛ рдЕрдирдВрдд рдмрдирд╛рддрд╛ рд╣реИред
LKML рдкрд░ рдЗрд╕
рдкреЛрд╕реНрдЯ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ - рдПрдХ рд╕рдорд╛рди рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬреАрд╕реАрд╕реА рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдлрд┐рд░ рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдФрд░ рд╕рдВрдХрд▓рдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред рд▓рд┐рдирдХреНрд╕ x86_64 рдХреЗ рддрд╣рдд рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдЬреАрд╕реАрд╕реА рд╕рдВрд╕реНрдХрд░рдг 7.3.1 рдореЗрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред
рд╕рдорд╛рдзрд╛рди - рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ # 260 рдореЗрдВ?
рд╣рдорд╛рд░рд╛ рдорд╛рдорд▓рд╛ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ
# 260 рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕рдореЗрдВ рд╕рдорд┐рддрд┐ рд╕реЗ рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдЯрд┐рдкреНрдкрдгреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди [...] рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рднреА рдЕрд▓рдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХрд╛ рдПрдХ рд╣реА рд╕реЗрдЯ рд╣реЛредрдпрджрд┐ рд╣рдо рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
p == q рдХрд╛ рдкрд░рд┐рдгрд╛рдо "рдЧрд▓рдд" рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
p рдФрд░
q рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рдЪ рдХреЗ рдХрд░реАрдм рд╣реЛ рд░рд╣реЗ рд╣реИрдВ - рдпрд╛ рдирд╣реАрдВ? рдЕрдм рддрдХ, рд╣рдордиреЗ рд╕рдорд╛рдирддрд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдз рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдЕрдВрддрд┐рдо рд╕рдВрд╡рд┐рджрд╛ рд╕рдВрдмрдВрдз рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдореЗрдВ рд╣реИ?
рд╕реВрдЪрдХ рддреБрд▓рдирд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ
< ,
<= ,
> рдФрд░
> = рд╕рдВрдмрдВрдз рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рд╡рд┐рдЪрд╛рд░ рд╣реИ:
C11 .8 6.5.8 рдкреИрд░рд╛ 5
рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рд╕рдВрдХреЗрддрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рджреЛрдиреЛрдВ рд╕рдорд╛рди рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╕рдорд╛рди рд╣реИрдВред рдпрджрд┐ рд╕рдВрдХреЗрддрд┐рдд рд╡рд╕реНрддреБрдПрдВ рдПрдХ рд╣реА рд╕рдВрдпреБрдХреНрдд рд╡рд╕реНрддреБ рдХреЗ рд╕рджрд╕реНрдп рд╣реИрдВ, рддреЛ рдмрд╛рдж рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рджрд╕реНрдп рдкрд╣рд▓реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╕рджрд╕реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИрдВ, рдФрд░ рдЙрдЪреНрдЪ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рд╡рд╛рд▓реЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдВрдХреЗрдд рдирд┐рдореНрди рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рдорд╛рди рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИрдВред рдПрдХ рд╣реА рдПрд╕реЛрд╕рд┐рдПрд╢рди рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд╕рднреА рд╕рдВрдХреЗрдд рд╕рдорд╛рди рд╣реИрдВред рдпрджрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ P рд╕рд░рдгреА рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ Q рдЙрд╕реА рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕реВрдЪрдХ-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ Q + 1 рдХрд╛ рдорд╛рди P рдХреЗ рдорд╛рди рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ ред рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИред |
рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЗрд╡рд▓ рддрднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ
рдЙрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ ред рд╣рдо рдЗрд╕реЗ рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред
int *p = malloc(64 * sizeof(int)); int *q = malloc(64 * sizeof(int)); if (p < q)
рдпрд╣рд╛рдБ, рдкреЙрдЗрдВрдЯрд░реНрд╕
p рдФрд░
q рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрд╕ рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрдирдХреА рддреБрд▓рдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ:
int *p = malloc(64 * sizeof(int)); int *q = p + 42; if (p < q) foo();
рдкреЙрдЗрдВрдЯрд░реНрд╕
p рдФрд░
q рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЖрдкрд╕ рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрдирдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ - рдЬрдм рддрдХ рдХрд┐
рдорд▓реЙрдХ рдПрдХ рд╢реВрдиреНрдп рдорд╛рди рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ред
рд╕рд╛рд░рд╛рдВрд╢
C11 рдорд╛рдирдХ рд╕реВрдЪрдХ рддреБрд▓рдирд╛рдУрдВ рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдмрд┐рдВрджреБ рдЬреЛ рд╣рдореЗрдВ рдорд┐рд▓рд╛, рд╡рд╣ рдкреИрд░рд╛ 6, 6.5.9 рдерд╛, рдЬрд╣рд╛рдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИред рдпрд╣ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ # 260 рдХреА рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЦрдВрдбрди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╣рд╛рдВ рд╣рдо рдЕрдирд┐рд╢реНрдЪрд┐рдд рдЕрд░реНрдереЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЕрдХреЗрд▓реЗ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдиреЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рд░рд┐рд▓реЗрд╢рдирд╢рд┐рдк рдСрдкрд░реЗрдЯрд░реНрд╕ рдХреЛ рд╕рдорд╛рдирддрд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рдд, рд░рд┐рд▓реЗрд╢рдирд╢рд┐рдк рдСрдкрд░реЗрдЯрд░реНрд╕ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рджреЛрдиреЛрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕
рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдпрджрд┐ рд╣рдо рдорд╛рдирдХ рдХреЗ рдкрд╛рда рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рддреЛ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╡рд╛рдм рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ "рдирд╣реАрдВ" рд╣реЛрдЧрд╛ред рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЪрд░ рдФрд░
рдмреА рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рднрдВрдбрд╛рд░рдг рдЕрд╡рдзрд┐ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдореЗрдВ рдЙрдирдХреЗ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реА рдзрд╛рд░рдгрд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрдЧреАред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдо рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдХреЗрд╡рд▓ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдЪрд▓рд╛ рдпрд╛ рдбрд┐рд╕рдмрдВрдмрд┐рдВрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЕрд░реНрде рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рдЧрдВрднреАрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЦрдВрдбрди рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ C11 рдорд╛рдирдХ рдореЗрдВ рд╢рдмреНрджрд╛рдВрдХрди рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ, рдФрд░ рдЪреВрдВрдХрд┐ рдХрдИ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╡рд╛рд▓ рдмрдирд╛ рд╣реБрдЖ рд╣реИ: рдирд┐рдпрдореЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдП?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛
рд╡реНрдпреВрд╣ рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░рддрд╛ рд╣реИ
рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдВрдХ рдХреЗ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдХреА рддреБрд▓рдирд╛ рдФрд░ рдкрддреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдХреНрд╕рд░ рдЗрд╕рдХреЗ рдЕрдкрд╡рд╛рдж рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдорд╛рдирдХ
рдПрдХ рд╣реА рд╕рд░рдгреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛, рднрд▓реЗ рд╣реА рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рд╕рд░рдгреА рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд░реЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рддрдм рдирд┐рдореНрди рдХреЛрдб рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:
const int num = 64; int x[num]; for (int *i = x; i < &x[num]; ++i) { }
рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо 64 рддрддреНрд╡реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдкреВрд░реЗ
рдПрдХреНрд╕ рд╕рд░рдгреА рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рд▓реВрдк рдмреЙрдбреА рдХреЛ рдареАрдХ 64 рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реНрдерд┐рддрд┐ рдХреЛ 65 рдмрд╛рд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдПрдХ рдмрд╛рд░ рдЕрдзрд┐рдХред рдкрд╣рд▓реЗ 64 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ, рд╕реВрдЪрдХ
i рд╣рдореЗрд╢рд╛ рд╕рд░рдгреА
x рдХреЗ рдЕрдВрджрд░ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
рдФрд░ x [рд╕рдВрдЦреНрдпрд╛] рд╣рдореЗрд╢рд╛ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред 65 рд╡реЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рд╕реВрдЪрдХ
i рднреА рд╕рд░рдгреА
x рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд░реЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд▓реВрдк рдХреА рд╕реНрдерд┐рддрд┐ рдЭреВрдареА рд╣реИред рдпрд╣ рд╕рдВрдкреВрд░реНрдг рд╕рд░рдгреА рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдиреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рдирд┐рдпрдо рдХреЗ рдЕрдкрд╡рд╛рдж рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдорд╛рдирдХ рдХреЗрд╡рд▓ рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ; dereferencing рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред
рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИ рддрд╛рдХрд┐ рд╕рд░рдгреА
рдПрдХреНрд╕ рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рдПрдХ рднреА рдкреЙрдЗрдВрдЯрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рди рдХрд░реЗ? рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛ред рд╣рдореЗрдВ рд▓реВрдк рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдВрддрд┐рдо рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдЪрд░
i рдХреА рд╡реГрджреНрдзрд┐ рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛ред
const int num = 64; int x[num]; for (int *i = x; i <= &x[num-1]; ++i) { if (i == &x[num-1]) break; }
рдпрд╣ рдХреЛрдб рддрдХрдиреАрдХреА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рд╕реЗ рднрд░рд╛ рд╣реИ, рдЬреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реВрдк рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рд╛рдЦрд╛ рджрд┐рдЦрд╛рдИ рджреАред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рдорд╛рдирдХ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рдиреЛрдЯPVS-Studio рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдХрднреА-рдХрднреА рд╕реВрдХреНрд╖реНрдо рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рджрд╛рди рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдмрдирд╛рдиреЗ рдпрд╛ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╡рд┐рд╕реНрддреГрдд рдкрд░рд╛рдорд░реНрд╢ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ рд╣рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрди рдореБрджреНрджреЛрдВ рдкрд░ рдЫреВрддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рд╣рдо рдЦреБрдж рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд▓реЗрдЦрдХ рд╕реЗ рдЙрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдзрд┐рдХ рд╕реА рдФрд░ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЙрд╕реЗ рдЬрд╛рдирдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдХрд┐ рдЬрдм рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдЪрд╛рдирдХ рдПрдХ рдЕрдЬреАрдм рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЧрд▓рдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рдорд╛рдирдиреЗ рдореЗрдВ рдЬрд▓реНрджрдмрд╛рдЬреА рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП :)редрд▓реЗрдЦ рдкрд╣рд▓реА рдмрд╛рд░ stefansf.de рдкрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рдерд╛ред рд▓реЗрдЦрдХ рдХреА рдЕрдиреБрдорддрд┐ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред