{"id":346276,"date":"2023-03-05T03:00:33","date_gmt":"2023-03-05T03:00:33","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=346276"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=346276","title":{"rendered":"<span>\u041e \u0432\u0440\u0435\u0434\u0435 GOTO-\u0444\u043e\u0431\u0438\u0438 (\u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043d\u0430 C)<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><strong>\u0413\u043e\u0442\u043e\u0444\u043e\u0431\u0438\u044f<\/strong>\u00a0\u2013 \u044d\u0442\u043e \u0431\u043e\u044f\u0437\u043d\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 goto. \u041e\u0431\u044b\u0447\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438 \u043d\u0435\u0437\u043d\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437-\u0437\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0439 \u043e \u043d\u0435\u0437\u0430\u043f\u0430\u043c\u044f\u0442\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u0445 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u0441\u0442\u0440\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0433\u043e\u0442\u043e\u0444\u043e\u0431\u0438\u0435\u0439, \u0433\u043e\u0442\u043e\u0432\u044b \u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c\u044e \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u044b \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u0442\u044c \u043a\u00a0goto.<\/p>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u043e\u0431\u0430\u043a\u0430 \u0437\u043d\u0430\u0435\u0442 (\u0443\u0436\u0435 \u043c\u0435\u043c\u043e\u0440\u043e\u0434\u043d\u044b\u0439) \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0442\u0430\u0442\u044c\u0438 \u0414\u0435\u0439\u043a\u0441\u0442\u0440\u044b <a href=\"https:\/\/dl.acm.org\/doi\/epdf\/10.1145\/362929.362947\" rel=\"noopener noreferrer nofollow\"><em>Letters to the editor: go to statement considered harmful<\/em><\/a>\u00a0(\u00ab<a href=\"http:\/\/hosting.vspu.ac.ru\/~chul\/dijkstra\/goto\/goto.htm\" rel=\"noopener noreferrer nofollow\">\u041e \u0432\u0440\u0435\u0434\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 Go To<\/a>\u00bb) (\u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0430\u0441\u044c\u00a0<em>A case against the goto statement<\/em>). \u041d\u043e, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442, \u0432 \u043a\u0430\u043a\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0431\u044b\u043b\u0430 \u0432 60-\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f. \u0412\u0435\u0434\u044c \u0442\u0435 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u043e\u0441\u0442\u044c, \u0442\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u0438 \u0432 \u043d\u043e\u0432\u0438\u043d\u043a\u0443.<\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u0432\u043e\u0435\u043c\u0443 \u0440\u0435\u043c\u0435\u0441\u043b\u0443 \u0432 \u043c\u0438\u0440\u0435, \u0433\u0434\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 goto\u00a0\u0431\u044b\u043b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0448\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0414\u0430\u0436\u0435 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043b\u0435\u0433\u043a\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0441\u044f \u043a \u0432\u044b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0432\u0440\u0435\u0434\u043d\u044b\u043c \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0430\u043c \u0438 \u043f\u043e\u0440\u043e\u0447\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u0430\u043c. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f\u00a0 \u00a0goto, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0443\u043c\u0435\u0441\u0442\u0435\u043d, \u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438. \u041f\u043e \u0438\u0440\u043e\u043d\u0438\u0438 \u0441\u0443\u0434\u044c\u0431\u044b, \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u0435\u0435. \u042d\u0442\u043e \u0437\u0430\u0446\u0438\u043a\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043d\u0430 <em>\u0427\u0422\u041e \u0421\u0414\u0415\u041b\u0410\u0422\u042c<\/em>\u00a0(&#171;\u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442\u00a0goto&#187;), \u0430 \u043d\u0435 \u043d\u0430 <em>\u0417\u0410\u0427\u0415\u041c<\/em>\u00a0(&#171;\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0430\u043a \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c&#187;).<\/p>\n<p>\u0412 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u0440\u0443\u0433\u0430\u0445 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0442\u0430\u043b\u0434\u044b\u0447\u0438\u0442\u044c, \u0447\u0442\u043e &#171;goto\u00a0\u2013 \u044d\u0442\u043e \u0437\u043b\u043e&#187;, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044f \u0442\u043e\u0442 \u044f\u0437\u044b\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e\u0442. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0443\u0433\u0443\u0431\u043b\u044f\u0435\u0442\u0441\u044f (\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435). \u0412\u0435\u0434\u044c \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u043c \u0438 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0435, \u0432\u0435\u0440\u043d\u043e? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043f\u0440\u0438\u044f\u0442\u043d\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043c\u0443, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043b\u0438\u0448\u044c \u0443\u0434\u0438\u0432\u043b\u044f\u0442\u044c\u0441\u044f, \u043e\u0442\u0447\u0435\u0433\u043e \u0438\u0445 <a href=\"https:\/\/www.explainxkcd.com\/wiki\/index.php\/292:_goto\" rel=\"noopener noreferrer nofollow\">\u0430\u0442\u0430\u043a\u0443\u044e\u0442 \u0432\u0435\u043b\u043e\u0446\u0438\u0440\u0430\u043f\u0442\u043e\u0440\u044b<\/a>.<\/p>\n<p>\u0421\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#171;goto&#187; \u043d\u0435 \u043e\u043f\u0430\u0441\u0435\u043d \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435. \u00abGoto\u00bb \u2014 \u0442\u043e\u0447\u043d\u043e \u043a\u0430\u043a \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043c\u0430\u0441\u0441\u0430 \u043f\u0440\u043e\u0447\u0438\u0445 \u00ab\u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445\u00bb \u0437\u043e\u043b \u2014 \u043f\u043e\u0432\u0441\u0435\u043c\u0435\u0441\u0442\u043d\u043e \u043d\u0435\u043d\u0430\u0432\u0438\u0434\u044f\u0442 \u0442\u0435, \u043a\u0442\u043e \u043e\u0431\u0436\u0451\u0433\u0441\u044f \u043d\u0430 \u043f\u043b\u043e\u0445\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u00a0\u00a0<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0441\u043f\u0430\u0433\u0435\u0442\u0442\u0438-\u043a\u043e\u0434 \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u00ab\u0431\u0435\u0437 goto\u00bb, \u043c\u043e\u0433\u0443 \u043f\u0440\u0438\u0441\u043b\u0430\u0442\u044c \u0432\u0430\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043b\u0435\u0439\u0448\u0438\u0445 <em>\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432<\/em>, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0437\u0432\u0435\u044f\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \ud83d\ude09<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c goto \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f\u0445, \u0441\u043d\u0430\u0431\u0436\u0430\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043a\u0430\u043c\u0438, \u0442\u043e \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439, \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u0447\u0438\u0441\u0442\u044b\u0439 \u043a\u043e\u0434, \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0441\u044b\u043f\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438. \u0422\u0430\u043a\u0436\u0435 goto \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435 \u0438 \u043b\u043e\u0433\u0438\u0447\u043d\u0435\u0435, \u0447\u0435\u043c \u0435\u0433\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u00abbreak\u00bb &#8212; \u044d\u0442\u043e goto; \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u00abcontinue\u00bb &#8212; \u044d\u0442\u043e goto. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442 \u0442\u043e\u0447\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430.<\/p>\n<p>~\u00a0<a href=\"https:\/\/lkml.org\/lkml\/2003\/1\/12\/245\" rel=\"noopener noreferrer nofollow\">Scott Robert Ladd<\/a><\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044f\u0434\u0440\u043e Linux \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u043e\u0431\u043d\u044f\u043a\u043e\u043c, \u043d\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u0442\u0440\u043e\u0433\u043e\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043a MISRA C (\u0432 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 2012 \u0433\u043e\u0434\u0430) \u0437\u0430\u043f\u0440\u0435\u0442 \u043d\u0430 goto \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043c\u044f\u0433\u0447\u0451\u043d \u0441\u00a0<em>\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e<\/em>\u00a0\u043d\u0430\u00a0<em>\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439<\/em>, \u0442\u043e, \u0434\u0443\u043c\u0430\u044e, \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c goto\u00a0\u0442\u0430\u043a, \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0447\u0442\u0451\u043c \u043d\u0443\u0436\u043d\u044b\u043c.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0445\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0433\u0434\u0435 goto\u00a0\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u043c (\u0438\u043b\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u043c?) \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c, \u043b\u0438\u0431\u043e \u043c\u043e\u0436\u043d\u043e \u0445\u043e\u0442\u044f \u0431\u044b \u00a0<em>\u043e\u0431\u0434\u0443\u043c\u0430\u0442\u044c<\/em>, \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0422\u0430\u043a\u0436\u0435 \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0437 goto \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0445 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u043a\u0430\u043a \u0441 \u0438\u0445 \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u0430\u043c\u0438, \u0442\u0430\u043a \u0438 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u043f\u043e\u043c\u0435\u0445\u0430\u043c\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0441\u00a0goto).<\/p>\n<h2>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h2>\n<ul>\n<li>\n<p><em>The C Programming Language, 2nd ed.<\/em>\u00a0by Kernighan &amp; Ritchie<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Goto#Common_usage_patterns\" rel=\"noopener noreferrer nofollow\">Goto # Common usage      patterns &#8212; Wikipedia<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/stackoverflow.com\/q\/24451\/10247460\" rel=\"noopener noreferrer nofollow\">Are there any legitimate use-cases for &#171;goto&#187; in a language      that supports loops and functions? &#8212; Stack Overflow<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/beej.us\/guide\/bgc\/html\/split\/goto.html\" rel=\"noopener noreferrer nofollow\">Beej&#8217;s Guide to C Programming:\u00a0goto<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/hal.inria.fr\/hal-02383654\/file\/ModernC.pdf\" rel=\"noopener noreferrer nofollow\">Modern C<\/a>\u00a0by Jens Gustedt<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/eli.thegreenplace.net\/2009\/04\/27\/using-goto-for-error-handling-in-c\" rel=\"noopener noreferrer nofollow\">Using goto for error handling in C<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/dl.acm.org\/doi\/epdf\/10.1145\/356635.356640\" rel=\"noopener noreferrer nofollow\">Structured Programming with\u00a0<em>go to<\/em>\u00a0Statements<\/a>\u00a0by Donald E. Knuth<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.reddit.com\/r\/C_Programming\/comments\/g3juie\/error_handling_using_goto\/\" rel=\"noopener noreferrer nofollow\">Error handling using goto : r\/C_Programming<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.kernel.org\/doc\/html\/v6.2\/process\/coding-style.html#centralized-exiting-of-functions\" rel=\"noopener noreferrer nofollow\">Linux kernel coding      style<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.cprogramming.com\/tutorial\/goto.html\" rel=\"noopener noreferrer nofollow\">When to use Goto in C &#8212; Cprogramming.com<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/alvaro-videla.com\/2015\/02\/programming-myths.html\" rel=\"noopener noreferrer nofollow\">Harmful GOTOs, Premature Optimizations, and      Programming Myths are the Root of all Evil<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/stackoverflow.com\/q\/245742\/10247460\" rel=\"noopener noreferrer nofollow\">Examples of good gotos in C or C++ &#8212; Stack Overflow<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=8bmEhtMVrhk\" rel=\"noopener noreferrer nofollow\">Should you ever use a goto? &#8212; Jacob Sorber &#8212; YouTube<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/chidiwilliams.com\/post\/goto\/\" rel=\"noopener noreferrer nofollow\">GOTO Reconsidered<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"http:\/\/web.archive.org\/web\/20090320002214\/http:\/www.ecn.purdue.edu\/ParaMount\/papers\/rubin87goto.pdf\" rel=\"noopener noreferrer nofollow\">&#171;GOTO      Considered Harmful&#187; Considered Harmful<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.reddit.com\/r\/C_Programming\/comments\/wimvdf\/when_is_it_appropriate_to_use_goto\/\" rel=\"noopener noreferrer nofollow\">When is it appropriate to use GOTO? :      r\/C_Programming<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/800194.805859\" rel=\"noopener noreferrer nofollow\">Programming      With(out) the GOTO<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/geometrian.com\/programming\/tutorials\/gotogood\/index.php\" rel=\"noopener noreferrer nofollow\">Ian Mallett &#8212; Tutorials: The goto Statement      is Good<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.sei.cmu.edu\/confluence\/display\/c\/MEM12-C.+Consider+using+a+goto+chain+when+leaving+a+function+on+error+when+using+and+releasing+resources\" rel=\"noopener noreferrer nofollow\">MEM12-C. Consider using a goto chain when      leaving a function on error when using and releasing resources      &#8212;\u00a0SEI\u00a0CERT C Coding Standard<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/stackoverflow.com\/q\/788903\/10247460\" rel=\"noopener noreferrer nofollow\">Valid use of goto for error management in C? &#8212; Stack Overflow<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/lkml.org\/lkml\/2003\/1\/12\/126\" rel=\"noopener noreferrer nofollow\">LKML: Rob Wilkens: Re: any chance of 2.6.0-test*?<\/a><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/web.archive.org\/web\/20130521051957\/https:\/kerneltrap.org\/node\/553\/2131\" rel=\"noopener noreferrer nofollow\">Linux: Using goto In Kernel Code |       KernelTrap<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/koblents.com\/Ches\/Links\/Month-Mar-2013\/20-Using-Goto-in-Linux-Kernel-Code\/\" rel=\"noopener noreferrer nofollow\">Using Goto in Linux Kernel Code |       Koblents.com<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a\/\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0430<\/h2>\n<p>\u041e\u0431\u0440\u0430\u0437\u0446\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 goto\u00a0\u2014 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c, \u0447\u0430\u0441\u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f, \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0434\u0430\u0436\u0435 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u0442\u0430\u043a\u043e\u0439 \u043f\u0430\u0442\u0442\u0435\u0440\u043d, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 <em>\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430<\/em> \u0438 \u0447\u0451\u0442\u043a\u043e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u0430, \u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u043a\u0435, \u0430 \u043d\u0435 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u043c\u0438, \u0430 \u0435\u0449\u0451 \u0432 \u043d\u0438\u0445 \u0441\u043b\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u0434 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0445\u043e\u0440\u043e\u043d\u0435\u043d \u043f\u043e\u0434 \u0432\u043e\u0440\u043e\u0445\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>\u0418\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f SEI CERT \u044f\u0437\u044b\u043a\u0430 C:<\/p>\n<p>\u0414\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u044b\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0435 \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0432 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0441\u0435\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0443\u0442\u0435\u0447\u043a\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u2014 \u0437\u0430\u0431\u044b\u0442\u044c \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u043e\u0434\u0438\u043d (\u0438\u043b\u0438 \u0432\u0441\u0435) \u0440\u0435\u0441\u0443\u0440\u0441(\u044b) \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u00a0goto\u00a0\u2013 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0438 \u0441\u0430\u043c\u044b\u0439 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0445\u043e\u0434\u044b \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      if (!do_something(bar)) {         goto error_didnt_sth;     }     if (!init_stuff(bar)) {         goto error_bad_init;     }     if (!prepare_stuff(bar)) {         goto error_bad_prep;     }     return_value = do_the_thing(bar);  error_bad_prep:     clean_stuff(); error_bad_init:     destroy_stuff(); error_didnt_sth:     undo_something();      return return_value; }<\/code><\/pre>\n<p><strong>\u0412\u0437\u044f\u0442\u044b\u0439 \u043d\u0430\u0443\u0433\u0430\u0434\u00a0<\/strong><a href=\"http:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/drivers\/clk\/mmp\/clk-audio.c#n345\" rel=\"noopener noreferrer nofollow\"><strong>\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux<\/strong><\/a><strong>:<\/strong><\/p>\n<pre><code class=\"cmake\">\/\/ SPDX-License-Identifier: GPL-2.0-or-later \/*  * MMP Audio Clock Controller driver  *  * Copyright (C) 2020 Lubomir Rintel &lt;lkundrak@v3.sk>  *\/  static int mmp2_audio_clk_probe(struct platform_device *pdev) { struct mmp2_audio_clk *priv; int ret;  priv = devm_kzalloc(&amp;pdev->dev,     struct_size(priv, clk_data.hws, MMP2_CLK_AUDIO_NR_CLKS),     GFP_KERNEL); if (!priv) return -ENOMEM;  spin_lock_init(&amp;priv->lock); platform_set_drvdata(pdev, priv);  priv->mmio_base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(priv->mmio_base)) return PTR_ERR(priv->mmio_base);  pm_runtime_enable(&amp;pdev->dev); ret = pm_clk_create(&amp;pdev->dev); if (ret) goto disable_pm_runtime;  ret = pm_clk_add(&amp;pdev->dev, \"audio\"); if (ret) goto destroy_pm_clk;  ret = register_clocks(priv, &amp;pdev->dev); if (ret) goto destroy_pm_clk;  return 0;  destroy_pm_clk: pm_clk_destroy(&amp;pdev->dev); disable_pm_runtime: pm_runtime_disable(&amp;pdev->dev);  return ret; }<\/code><\/pre>\n<p><strong>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 1: \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435\u00a0if\u00a0<\/strong><\/p>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (<a href=\"https:\/\/wiki.c2.com\/?ArrowAntiPattern\" rel=\"noopener noreferrer nofollow\"><em>\u0430\u043d\u0442\u0438\u043f\u0430\u0442\u0442\u0435\u0440\u043d \u00ab\u0441\u0442\u0440\u0435\u043b\u043a\u0430\u00bb<\/em><\/a> )<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 (\u0441\u043c. \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u0443\u044e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 Linux)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      if (do_something(bar)) {         if (init_stuff(bar)) {             if (prepare_stuff(bar)) {                 return_value = do_the_thing(bar);             }             clean_stuff();         }         destroy_stuff();     }     undo_something();      return return_value; }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux <\/p>\n<pre><code class=\"cmake\">static int mmp2_audio_clk_probe(struct platform_device *pdev) {     \/\/ ...     pm_runtime_enable(&amp;pdev->dev);      ret = pm_clk_create(&amp;pdev->dev);     if (!ret) {         ret = pm_clk_add(&amp;pdev->dev, \"audio\");         if (!ret) {             ret = register_clocks(priv, &amp;pdev->dev);             if (!ret) {                 pm_clk_destroy(&amp;pdev->dev);                 pm_runtime_disable(&amp;pdev->dev);             }         } else {             pm_clk_destroy(&amp;pdev->dev);             pm_runtime_disable(&amp;pdev->dev);         }     } else {         pm_runtime_disable(&amp;pdev->dev);     }      return ret; \/\/ \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0435 \u044f\u0432\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0441\u044f 0  }<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 Microsoft \u0434\u0430\u0440\u0438\u0442 \u043d\u0430\u043c <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/shell\/common-file-dialog#basic-usage\" rel=\"noopener noreferrer nofollow\">\u043c\u0438\u043b\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u00ab\u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0433\u043e\u00bb \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a>\u00a0(<a href=\"https:\/\/web.archive.org\/web\/20221203064532\/https:\/learn.microsoft.com\/en-us\/windows\/win32\/shell\/common-file-dialog#basic-usage\" rel=\"noopener noreferrer nofollow\">\u0432\u0435\u0440\u0441\u0438\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435<\/a>).   <\/p>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 2: \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2013 \u0442\u043e\u0433\u0434\u0430 \u043e\u0447\u0438\u0449\u0430\u0435\u043c   <\/h2>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u043a\u043e\u0434 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f<\/p>\n<\/li>\n<li>\n<p>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0447\u0435\u043a \u0432\u044b\u0445\u043e\u0434\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      if (!do_something(bar)) {         undo_something();         return return_value;     }     if (!init_stuff(bar)) {         destroy_stuff();         undo_something();         return return_value;     }     if (!prepare_stuff(bar)) {         clean_stuff();         destroy_stuff();         undo_something();         return return_value;     }      clean_stuff();     destroy_stuff();     undo_something();      return do_the_thing(bar); }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux   <\/p>\n<pre><code class=\"cmake\">static int mmp2_audio_clk_probe(struct platform_device *pdev) {     \/\/ ...     pm_runtime_enable(&amp;pdev->dev);      ret = pm_clk_create(&amp;pdev->dev);     if (ret) {         pm_runtime_disable(&amp;pdev->dev);         return ret;     }      ret = pm_clk_add(&amp;pdev->dev, \"audio\");     if (ret) {         pm_clk_destroy(&amp;pdev->dev);         pm_runtime_disable(&amp;pdev->dev);         return ret;     }      ret = register_clocks(priv, &amp;pdev->dev);     if (ret) {         pm_clk_destroy(&amp;pdev->dev);         pm_runtime_disable(&amp;pdev->dev);         return ret;     }      return 0; }<\/code><\/pre>\n<p><strong>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 3: \u0444\u043b\u0430\u0433\u0438\u00a0<\/strong><\/p>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 <\/p>\n<\/li>\n<li>\n<p>\u00ab\u043a\u0430\u0441\u043a\u0430\u0434\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u00bb \u0431\u0443\u043b\u0435\u0432\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0431\u0443\u043b\u0435\u0432\u044b \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      bool flag_1 = false;     bool flag_2 = false;     bool flag_3 = false;      flag_1 = do_something(bar);     if (flag_1) {         flag_2 = init_stuff(bar);     }     if (flag_2) {         flag_3 = prepare_stuff(bar);     }     if (flag_3) {         return_value = do_the_thing(bar);     }      if (flag_3) {         clean_stuff();     }     if (flag_2) {         destroy_stuff();     }     if (flag_1) {         undo_something();     }      return return_value; }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>mmp2_audio_clk_probe(<\/code>)\u00a0\u043d\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0447\u0451\u0442\u043a\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u043b\u0443\u0447\u0430\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0432 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0435 3.5.  <\/p>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 3: \u0444\u043b\u0430\u0433 \u00ab\u043f\u043e\u043a\u0430 \u0438 \u0442\u0430\u043a \u0441\u043e\u0439\u0434\u0451\u0442\u00bb   <\/h2>\n<pre><code>int foo(int bar) {     int return_value = 0;     bool something_done = false;     bool stuff_inited = false;     bool stuff_prepared = false;     bool oksofar = true;      if (oksofar) {  \/\/ \u044d\u0442\u043e\u0442 IF \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u0435\u043d (\u0432\u0441\u0435\u0433\u0434\u0430 execs), \u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0441\u044e\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b \u043a\u0430\u0440\u0442\u0438\u043d\u044b          if (do_something(bar)) {             something_done = true;         } else {             oksofar = false;         }     }      if (oksofar) {         if (init_stuff(bar)) {             stuff_inited = true;         } else {             oksofar = false;         }     }      if (oksofar) {         if (prepare_stuff(bar)) {             stuff_prepared = true;         } else {             oksofar = false;         }     }      \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e     if (oksofar) {         return_value = do_the_thing(bar);     }      \/\/ \u041e\u0447\u0438\u0441\u0442\u043a\u0430     if (stuff_prepared) {         clean_stuff();     }     if (stuff_inited) {         destroy_stuff();     }     if (something_done) {         undo_something();     }      return return_value;<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux   <\/p>\n<pre><code class=\"cmake\">static int mmp2_audio_clk_probe(struct platform_device *pdev) {     \/\/ ...     pm_runtime_enable(&amp;pdev->dev);      bool destroy_pm_clk = false;      ret = pm_clk_create(&amp;pdev->dev);     if (!ret) {         ret = pm_clk_add(&amp;pdev->dev, \"audio\");         if (ret) {             destroy_pm_clk = true;         }     }     if (!ret) {         ret = register_clocks(priv, &amp;pdev->dev);         if (ret) {             destroy_pm_clk = true;         }     }      if (ret) {         if (destroy_pm_clk) {             pm_clk_destroy(&amp;pdev->dev);         }         pm_runtime_disable(&amp;pdev->dev);         return ret;     }      return 0; }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux   <\/p>\n<pre><code class=\"cmake\">static int mmp2_audio_clk_probe(struct platform_device *pdev) {     \/\/ ...     pm_runtime_enable(&amp;pdev->dev);      bool destroy_pm_clk = false;     bool disable_pm_runtime = false;      ret = pm_clk_create(&amp;pdev->dev);     if (ret) {         disable_pm_runtime = true;     }     if (!ret) {         ret = pm_clk_add(&amp;pdev->dev, \"audio\");         if (ret) {             destroy_pm_clk = true;         }     }     if (!ret) {         ret = register_clocks(priv, &amp;pdev->dev);         if (ret) {             destroy_pm_clk = true;         }     }      if (destroy_pm_clk) {         pm_clk_destroy(&amp;pdev->dev);     }     if (disable_pm_runtime) {         pm_runtime_disable(&amp;pdev->dev);     }      return ret; }<\/code><\/pre>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 4: \u0444\u0443\u043d\u043a\u0446\u0438\u0438   <\/h2>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u0421\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (\u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u043e \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b)\u00a0&#171;\u041d\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0432\u0435\u0440\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438&#187;<\/p>\n<ul>\n<li>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0441\u0442\u0435\u043a \u0432\u044b\u0437\u043e\u0432\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0427\u0430\u0441\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430<\/p>\n<ul>\n<li>\n<p>\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435\u00a0<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0431\u043b\u0430\u0437\u043d \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0431\u0435\u0437 \u043d\u0443\u0436\u0434\u044b<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">static inline int foo_2(int bar) {     int return_value = 0;     if (prepare_stuff(bar)) {         return_value = do_the_thing(bar);     }     clean_stuff();     return return_value; }  static inline int foo_1(int bar) {     int return_value = 0;     if (init_stuff(bar)) {         return_value = foo_2(bar);     }     destroy_stuff();     return return_value; }  int foo(int bar) {     int return_value = 0;     if (do_something(bar)) {         return_value = foo_1(bar);     }     undo_something();     return return_value; }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux   <\/p>\n<pre><code class=\"cmake\">static inline int mmp2_audio_clk_probe_3(struct platform_device* pdev) {     int ret = register_clocks(priv, &amp;pdev->dev);     if (ret) {         pm_clk_destroy(&amp;pdev->dev);     }     return ret; }  static inline int mmp2_audio_clk_probe_2(struct platform_device* pdev) {     int ret = pm_clk_add(&amp;pdev->dev, \"audio\");     if (ret) {         pm_clk_destroy(&amp;pdev->dev);     } else {         ret = mmp2_audio_clk_probe_3(pdev);     }     return ret; }  static inline int mmp2_audio_clk_probe_1(struct platform_device* pdev) {     int ret = pm_clk_create(&amp;pdev->dev);     if (ret) {         pm_runtime_disable(&amp;pdev->dev);     } else {         ret = mmp2_audio_clk_probe_2(pdev);         if (ret) {             pm_runtime_disable(&amp;pdev->dev);         }     }     return ret; }  static int mmp2_audio_clk_probe(struct platform_device* pdev) {     \/\/ ...     pm_runtime_enable(&amp;pdev->dev);      ret = mmp2_audio_clk_probe_1(pdev);      return ret; }<\/code><\/pre>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 5: \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u0430\u043c\u0438   <\/h2>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0445\u00a0goto<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432,      \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u043c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430\u043c<\/p>\n<\/li>\n<li>\n<p>\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u043e\u0442 \u0434\u0432\u0443\u0445      \u0432\u044b\u0448\u0435\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0441\u0442\u0438 <\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u0442 \u0446\u0438\u043a\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435      \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f<\/p>\n<\/li>\n<li>\n<p>\u0417\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445      \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0443\u0436\u0435\u043d      \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 <\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0440\u0442\u0438\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u0430<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0442\u0440\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e, \u043f\u0443\u0442\u0430\u043d\u043e<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430<\/p>\n<\/li>\n<li>\n<p>\u0418 \u043d\u0435 \u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0439 \u043c\u0435\u0448\u0430\u043d\u0438\u043d\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u0435\u043d<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      do {         if (!do_something(bar)) break;         do {             if (!init_stuff(bar)) break;             do {                 if (!prepare_stuff(bar)) break;                 return_value = do_the_thing(bar);             } while (0);             clean_stuff();         } while (0);         destroy_stuff();     } while (0);     undo_something();      return return_value; }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux   <\/p>\n<pre><code class=\"cmake\">static int mmp2_audio_clk_probe(struct platform_device *pdev) {     \/\/ ...     pm_runtime_enable(&amp;pdev->dev);      do {         ret = pm_clk_create(&amp;pdev->dev);         if (ret) break;          do {             ret = pm_clk_add(&amp;pdev->dev, \"audio\");             if (ret) break;              ret = register_clocks(priv, &amp;pdev->dev);             if (ret) break;         } while (0);         pm_clk_destroy(&amp;pdev->dev);     } while (0);     pm_runtime_disable(&amp;pdev->dev);      return ret; }<\/code><\/pre>\n<h2>\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\/\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430   <\/h2>\n<p>\u0422\u0430\u043a\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043e\u0431\u044b\u0447\u043d\u044b \u0432 *nix-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c. \u0422\u0430\u043a\u0436\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 <code>errno<\/code>\u00a0\u0432\u00a0<code>EINTR<\/code>, \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u0438\u0434\u0451\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438.   <\/p>\n<pre><code class=\"cmake\">#include &lt;errno.h>  int main() { retry_syscall:     if (some_syscall() == -1) {         if (errno == EINTR) {             goto retry_syscall;         }          \/\/ \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438     }      return 0; }<\/code><\/pre>\n<p>\u0414\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0434\u0438\u043d \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u0442\u0430\u043a \u043f\u043b\u043e\u0445. \u041d\u043e, \u0431\u0443\u0434\u0443 \u0447\u0435\u0441\u0442\u0435\u043d: \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0432 \u0435\u0433\u043e, \u044f \u043d\u0435 \u0441\u043c\u043e\u0433 \u0431\u044b \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443 \u0431\u0435\u0437 <code>goto<\/code>.<\/p>\n<p>\u0412\u0435\u0440\u0441\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u044b \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"cmake\">#include &lt;errno.h>  int main() {     int res; retry_syscall:     res = some_syscall();     if (res == -1 &amp;&amp; errno == EINTR) {         goto retry_syscall;     }      if (res) {         \/\/ \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438     }      return 0; }<\/code><\/pre>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto: \u0446\u0438\u043a\u043b   <\/h2>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0446\u0438\u043a\u043b\u043e\u043c\u00a0<code>do {} while<\/code>, \u0443\u043a\u0430\u0437\u0430\u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432\u00a0<code>while<\/code>:<\/p>\n<pre><code class=\"cmake\">#include &lt;errno.h>  int main() {     int res;     do {         res = some_system_call();     } while (res == -1 &amp;&amp; errno == EINTR);      if (res == -1) {         \/\/ \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438     }      return 0; }<\/code><\/pre>\n<p>\u0414\u0443\u043c\u0430\u044e, \u043e\u0431\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c, \u043d\u043e \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441 <code>goto<\/code>\u00a0\u0435\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e: \u0437\u0434\u0435\u0441\u044c \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0446\u0438\u043a\u043b\u0430, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a <code>while<\/code>\u00a0\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043a\u0430\u043a\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Busy_waiting\" rel=\"noopener noreferrer nofollow\">\u0446\u0438\u043a\u043b \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f<\/a>.<\/p>\n<h2>\u041c\u0435\u043d\u0435\u0435 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440   <\/h2>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043e\u0431\u0449\u0443\u044e \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u0443\u044e \u0442\u0435\u043c\u0443 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430. \u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e kramdown (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0430\u0448 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u043b\u0443\u0447\u0448\u0435), \u0443\u0436\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u043e, \u043a\u0430\u043a \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u043d\u0430 \u043e\u0431\u0449\u0435\u043c \u0444\u043e\u043d\u0435 \u043a\u043e\u0434\u0430 \u043c\u0435\u0442\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438\u00a0<code>goto<\/code>. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0444\u043b\u0430\u0433\u0438 \u043f\u043e\u0447\u0442\u0438 \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0444\u043e\u043d\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.  <\/p>\n<p><strong>\u0412\u0435\u0440\u0441\u0438\u044f \u0441 goto\u00a0\u00a0<\/strong><\/p>\n<pre><code class=\"cmake\">#include &lt;string.h>  enum {     PKT_THIS_OPERATION,     PKT_THAT_OPERATION,     PKT_PROCESS_CONDITIONALLY,     PKT_CONDITION_SKIPPED,     PKT_ERROR,     READY_TO_SEND,     NOT_READY_TO_SEND };  int parse_packet() {     static int packet_error_count = 0;      int packet[16] = { 0 };     int packet_length = 123;     _Bool packet_condition = 1;     int packet_status = 4;      \/\/ \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u0438 \u0442.\u0434.  REPARSE_PACKET:     switch (packet[0]) {         case PKT_THIS_OPERATION:             if (\/* \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f *\/) {                 goto PACKET_ERROR;             }             \/\/ ... \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c THIS_OPERATION             break;          case PKT_THAT_OPERATION:             if (\/* \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f *\/) {                 goto PACKET_ERROR;             }             \/\/ ... \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c THAT_OPERATION             break;          \/\/ ...          case PKT_PROCESS_CONDITIONALLY:             if (packet_length &lt; 9) {                 goto PACKET_ERROR;             }             if (packet_condition &amp;&amp; packet[4]) {                 packet_length -= 5;                 memmove(packet, packet+5, packet_length);                 goto REPARSE_PACKET;             } else {                 packet[0] = PKT_CONDITION_SKIPPED;                 packet[4] = packet_length;                 packet_length = 5;                 packet_status = READY_TO_SEND;             }             break;          \/\/ ...          default: PACKET_ERROR:             packet_error_count++;             packet_length = 4;             packet[0] = PKT_ERROR;             packet_status = READY_TO_SEND;             break;     }      \/\/ ...      return 0; }<\/code><\/pre>\n<h2>\u0412\u0435\u0440\u0441\u0438\u044f \u0431\u0435\u0437 goto   <\/h2>\n<pre><code class=\"cmake\">#include &lt;string.h>  enum {     PKT_THIS_OPERATION,     PKT_THAT_OPERATION,     PKT_PROCESS_CONDITIONALLY,     PKT_CONDITION_SKIPPED,     PKT_ERROR,     READY_TO_SEND,     NOT_READY_TO_SEND };  int parse_packet() {     static int packet_error_count = 0;      int packet[16] = { 0 };     int packet_length = 123;     _Bool packet_condition = 1;     int packet_status = 4;      \/\/ \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u0438 \u0442.\u0434.      _Bool REPARSE_PACKET = true;     _Bool PACKET_ERROR = false;      while (REPARSE_PACKET) {         REPARSE_PACKET = false;         PACKET_ERROR = false;          switch (packet[0]) {             case PKT_THIS_OPERATION:                 if (\/* \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f *\/) {                     PACKET_ERROR = true;                     break;                 }                 \/\/ ... \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c THIS_OPERATION                 break;              case PKT_THAT_OPERATION:                 if (\/* \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f *\/) {                     PACKET_ERROR = true;                     break;                 }                 \/\/ ... \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c THAT_OPERATION                 break;                  \/\/ ...              case PKT_PROCESS_CONDITIONALLY:                 if (packet_length &lt; 9) {                     PACKET_ERROR = true;                     break;                 }                 if (packet_condition &amp;&amp; packet[4]) {                     packet_length -= 5;                     memmove(packet, packet+5, packet_length);                     REPARSE_PACKET = true;                     break;                 } else {                     packet[0] = PKT_CONDITION_SKIPPED;                     packet[4] = packet_length;                     packet_length = 5;                     packet_status = READY_TO_SEND;                 }                 break;                  \/\/ ...              default:                 PACKET_ERROR = true;                 break;         }          if (PACKET_ERROR) {             packet_error_count++;             packet_length = 4;             packet[0] = PKT_ERROR;             packet_status = NOT_READY_TO_SEND;             break;         }     }      \/\/ ...      return 0; }<\/code><\/pre>\n<h2>\u041e\u0431\u0449\u0438\u0439 \u043a\u043e\u0434 \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438\u00a0switch   <\/h2>\n<p>\u0412 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0431\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c: \u0430 \u0432\u0434\u0440\u0443\u0433 \u043a\u043e\u0434 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0435. \u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 switch\u00a0\u0442\u0430\u043c, \u0433\u0434\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432\u043d\u043e\u0441\u044f\u0442 \u0432 \u043a\u043e\u0434 \u043c\u0435\u043b\u043a\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f. <\/p>\n<p>\u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0431\u0449\u0438\u0439 \u043a\u043e\u0434 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442. \u0412\u0441\u0451 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0432 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438), \u0438 \u043a\u043e\u0434 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u044c\u0441\u044f. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0430 \u043d\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0438\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432. \u00a0<\/p>\n<p>\u0422\u0430\u043a \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u043a\u043e\u0434\u0443?<\/p>\n<pre><code class=\"cmake\">int foo(int v) {     \/\/ ...     int something = 0;     switch (v) {         case FIRST_CASE:             something = 2;             goto common1;         case SECOND_CASE:             something = 7;             goto common1;         case THIRD_CASE:             something = 9;             goto common1; common1:             \/* \u043a\u043e\u0434, \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u041f\u0415\u0420\u0412\u041e\u0413\u041e, \u0412\u0422\u041e\u0420\u041e\u0413\u041e \u0438 \u0422\u0420\u0415\u0422\u042c\u0415\u0413\u041e \u0441\u043b\u0443\u0447\u0430\u0435\u0432 *\/             break;          case FOURTH_CASE:             something = 10;             goto common2;         case FIFTH_CASE:             something = 42;             goto common2; common2:             \/* \u043a\u043e\u0434, \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u0427\u0415\u0422\u0412\u0401\u0420\u0422\u041e\u0413\u041e \u0438 \u041f\u042f\u0422\u041e\u0413\u041e \u0441\u043b\u0443\u0447\u0430\u0435\u0432 *\/             break;     }     \/\/ ... }<\/code><\/pre>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 1: \u0444\u0443\u043d\u043a\u0446\u0438\u0438   <\/h2>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u00ab\u041d\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0441\u0432\u0435\u0440\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e\u00bb<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0434 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445, \u0430 \u043d\u0435 \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">struct foo_context {     int* something;     \/\/ ... };  static void common1(struct foo_context ctx) {     \/* \u043a\u043e\u0434, \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u041f\u0415\u0420\u0412\u041e\u0413\u041e, \u0412\u0422\u041e\u0420\u041e\u0413\u041e \u0438 \u0422\u0420\u0415\u0422\u042c\u0415\u0413\u041e \u0441\u043b\u0443\u0447\u0430\u0435\u0432 *\/ }  static void common2(struct foo_context ctx) {     \/* \u043a\u043e\u0434, \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u0427\u0415\u0422\u0412\u0401\u0420\u0422\u041e\u0413\u041e \u0438 \u041f\u042f\u0422\u041e\u0413\u041e \u0441\u043b\u0443\u0447\u0430\u0435\u0432 *\/ }  int foo(int v) {     struct foo_context ctx = { NULL };     \/\/ ...     int something = 0;     ctx.something = &amp;something;      switch (v) {         case FIRST_CASE:             something = 2;             common1(ctx);             break;         case SECOND_CASE:             something = 7;             common1(ctx);             break;         case THIRD_CASE:             something = 9;             common1(ctx);             break;          case FOURTH_CASE:             something = 10;             common2(ctx);             break;         case FIFTH_CASE:             something = 42;             common2(ctx);             break;     }     \/\/ ... }<\/code><\/pre>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 2:\u00a0if-\u044b   <\/h2>\n<p>\u041c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0441\u0442\u0435\u0439 \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u00a0<code>switch<\/code>\u00a0\u043d\u0430\u00a0<code>if<\/code>-\u044b   <\/p>\n<pre><code class=\"cmake\">int foo(int v) {     \/\/ ...     int something = 0;     if (v == FIRST_CASE || v == SECOND_CASE || v == THIRD_CASE) {         if (v == FIRST_CASE) {             something = 2;         } else if (v == SECOND_CASE) {             something = 7;         } else if (v == THIRD_CASE) { \/\/ \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e `else`             something = 9;         }         \/* \u043a\u043e\u0434, \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u041f\u0415\u0420\u0412\u041e\u0413\u041e, \u0412\u0422\u041e\u0420\u041e\u0413\u041e \u0438 \u0422\u0420\u0415\u0422\u042c\u0415\u0413\u041e \u0441\u043b\u0443\u0447\u0430\u0435\u0432 *\/     } else if (v == FOURTH_CASE || v == FIFTH_CASE) {         if (v == FOURTH_CASE) {             something = 10;         } else {             something = 42;         }         \/* \u043a\u043e\u0434, \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u0427\u0415\u0422\u0412\u0401\u0420\u0422\u041e\u0413\u041e \u0438 \u041f\u042f\u0422\u041e\u0413\u041e \u0441\u043b\u0443\u0447\u0430\u0435\u0432 *\/     }     \/\/ ... }<\/code><\/pre>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 3: \u043f\u043e\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u00a0if \u0438 (0)   <\/h2>\n<p>\u0410\u2026 \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u0437\u0434\u0435\u0441\u044c \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c?<\/p>\n<p>\u041d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u00ab\u043f\u043e\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u2013 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e\u00bb \u0438 \u0447\u0442\u043e &#171;<code>goto<\/code>\u00a0\u2013 \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e&#187;!   <\/p>\n<pre><code class=\"cmake\">int foo(int v) {     \/\/ ...     int something = 0;     switch (v) {         case FIRST_CASE:             something = 2;       if (0) {         case SECOND_CASE:             something = 7;       }       if (0) {         case THIRD_CASE:             something = 9;       }             \/* \u043a\u043e\u0434, \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u041f\u0415\u0420\u0412\u041e\u0413\u041e, \u0412\u0422\u041e\u0420\u041e\u0413\u041e \u0438 \u0422\u0420\u0415\u0422\u042c\u0415\u0413\u041e \u0441\u043b\u0443\u0447\u0430\u0435\u0432 *\/             break;          case FOURTH_CASE:             something = 10;       if (0) {         case FIFTH_CASE:             something = 42;       }             \/* \u043a\u043e\u0434, \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u0427\u0415\u0422\u0412\u0401\u0420\u0422\u041e\u0413\u041e \u0438 \u041f\u042f\u0422\u041e\u0413\u041e \u0441\u043b\u0443\u0447\u0430\u0435\u0432 *\/             break;     }     \/\/ ... }<\/code><\/pre>\n<h2>\u0412\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435\u00a0break, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435\u00a0continue   <\/h2>\n<p>\u0414\u0443\u043c\u0430\u044e, \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0436\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c:   <\/p>\n<pre><code class=\"cmake\">#include &lt;stdio.h>  int main() {     for (int i = 1; i &lt;= 5; ++i) {         printf(\"outer iteration (i): %d\\n\", i);          for (int j = 1; j &lt;= 200; ++j) {             printf(\"    inner iteration (j): %d\\n\", j);             if (j >= 3) {                 break; \/\/ \u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430, \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443             }             if (i >= 2) {                 goto outer; \/\/ \u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430, \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \"Done!\"             }         }     } outer:      puts(\"Done!\");      return 0; }<\/code><\/pre>\n<p>\u041c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f\u00a0<a href=\"https:\/\/beej.us\/guide\/bgc\/html\/split\/goto.html#labeled-continue\" rel=\"noopener noreferrer nofollow\">\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u00a0continue<\/a>.<\/p>\n<p>\u0412 \u043a\u043d\u0438\u0433\u0435<em> Beej&#8217;s Guide to C Programming<\/em>\u00a0\u0435\u0441\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439,<br \/> \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u0445\u043d\u0438\u043a\u0443 \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u043e\u0447\u0438\u0441\u0442\u043a\u043e\u0439:<\/p>\n<pre><code class=\"cmake\">for (...) {         for (...) {             while (...) {                 do {                     if (some_error_condition) {                         goto bail;                     }                     \/\/ ...                 } while(...);             }         }     }  bail:     \/\/ \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0447\u0438\u0441\u0442\u043a\u0430<\/code><\/pre>\n<p>\u0411\u0435\u0437\u00a0<code>goto<\/code> \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0444\u043b\u0430\u0433\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u0446\u0438\u043a\u043b\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043a\u043e\u0434.   <\/p>\n<h2>\u041a\u0430\u043a \u043f\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u0446\u0438\u043a\u043b, \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438\u00a0switch   <\/h2>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>switch<\/code>\u00a0\u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e\u00a0<code>break<\/code>, \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0439\u0442\u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u043a\u0438\u043d\u0443\u0432 \u0446\u0438\u043a\u043b:<\/p>\n<pre><code class=\"cmake\">void func(int v) {     \/\/ ...      while (1) {         switch (v) {             case SOME_V:                 \/\/ ...                 break;  \/\/ \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u0446\u0438\u043a\u043b\u0430             case STOP_LOOP:                 goto break_while;         }     } break_while:      \/\/ ... }<\/code><\/pre>\n<h2>\u041f\u0440\u043e\u0441\u0442\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f   <\/h2>\n<p>ABCSFxyzxyzxnul<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u043f\u0440\u0438\u043c\u0435\u0440 1:1, \u043d\u0435\u0434\u0430\u043b\u0435\u043a\u043e \u0443\u0448\u0435\u0434\u0448\u0438\u0439 \u043e\u0442\u00a0<strong>\u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/strong>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u044b:<\/p>\n<pre><code class=\"cmake\">_Bool machine(const char* c) { qA:     switch (*(c++)) {         case 'x': goto qB;         case 'y': goto qC;         case 'z': goto qA;         default: goto err;     }  qB:     switch (*(c++)) {         case 'x': goto qB;         case 'y': goto qA;         case '\\0': goto F;         default: goto err;     }  qC:     switch (*(c++)) {         case 'x': goto qC;         case 'z': goto qB;         default: goto err;     }  F:     return true;  err:     return false; }<\/code><\/pre>\n<h2>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u0446\u0438\u043a\u043b \u0441\u043e\u0431\u044b\u0442\u0438\u0439<\/h2>\n<p>\u0414\u0430-\u0434\u0430, \u044f \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435\u00a0\u00ab<em>\u0432\u2026<\/em>\u00bb \u0432\u0430\u0441 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0443\u0434\u0438\u0432\u0438\u0442. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u044f\u043c\u043e \u043a \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044e. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0437\u0430\u043f\u0438\u0441\u0430\u043d, \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043a\u0430, \u0432\u0430\u0436\u043d\u0430\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435. \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u0432\u044b \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0431\u044b \u0438 \u043f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435.<\/p>\n<pre><code class=\"cmake\">#include &lt;stdio.h> #include &lt;fancy_alloc.h>  int main() {     int* buf = NULL;     size_t pos = 0;     size_t sz = 8;      int* temp;      goto ALLOC;     do {         if (pos > sz) { \/\/ \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430             sz *= 2; ALLOC:      temp = arrayAllocSmart(buf, sz, pos);             \/* \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a *\/             buf = temp;         }          \/* \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441 \u0431\u0443\u0444\u0435\u0440\u043e\u043c *\/     } while (checkQuit());      return 0;      \/* \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a ... *\/ }<\/code><\/pre>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 1: \u0441\u0442\u043e\u0440\u043e\u0436\u0435\u0432\u043e\u0439 \u0444\u043b\u0430\u0433   <\/h2>\n<p>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043e\u043d\u0435\u043b\u044c\u0437\u044f \u043a\u0440\u0430\u0441\u043d\u043e\u0440\u0435\u0447\u0438\u0432\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u0435\u0442, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0432\u044b\u0441\u043f\u0430\u043b\u0441\u044f \u043c\u043e\u0439 \u043c\u043e\u0437\u0433, \u043d\u043e \u044f \u0443\u0445\u0438\u0442\u0440\u0438\u043b\u0441\u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0447\u0435\u0441\u0442\u043d\u0443\u044e \u0438 \u043e\u0447\u0435\u043d\u044c \u0442\u0443\u043f\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435. \u042f \u0435\u0451 \u043d\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0438 \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u043b, \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0442\u0430\u043c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043d\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0443\u0440\u043e\u0432\u044b, \u044f \u0440\u0435\u0448\u0438\u043b \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f: \u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u0431\u0430\u0433 (\u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e, \u0432\u0435\u0434\u044c \u0432\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u043e\u043d \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c).<\/p>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u2014 \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0438 \u043e\u0431\u044b\u0447\u043d\u043e: \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0444\u043b\u0430\u0433\u0438.<\/p>\n<pre><code class=\"cmake\">#include &lt;stdio.h> #include &lt;fancy_alloc.h>  int main() {     int* buf = NULL;     size_t pos = 0;     size_t sz = 8;      int ret = 0      _Bool firstIter = true;      do {         if (pos > sz || firstIter) { \/\/ \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430             if (!firstIter) {                 sz *= 2;                 firstIter = false;             }              int* temp = arrayAllocSmart(buf, sz, pos);             \/* \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 ... *\/             buf = temp;         }          \/* \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441 \u0431\u0443\u0444\u0435\u0440\u043e\u043c *\/     } while (checkQuit());      return 0; }<\/code><\/pre>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 2: \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430   <\/h2>\n<p>\u042d\u0442\u043e\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0447\u0435\u0432\u0438\u0434\u0435\u043d, \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u0431\u043e\u0439\u0434\u0451\u043c\u0441\u044f \u0431\u0435\u0437 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432.<\/p>\n<pre><code class=\"cmake\">#include &lt;stdio.h> #include &lt;fancy_alloc.h>  int main() {     size_t pos = 0;     size_t sz = 8;      int* buf = arrayAllocSmart(NULL, sz, pos);     \/* \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a ... *\/      do {         if (pos > sz) { \/\/ \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430             sz *= 2;             int* temp = arrayAllocSmart(buf, sz, pos);             \/* \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 ... *\/             buf = temp;         }          \/* \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441 \u0431\u0443\u0444\u0435\u0440\u043e\u043c *\/     } while (checkQuit());      return 0; }<\/code><\/pre>\n<h2>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f <\/h2>\n<p>\u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u0434\u0430\u0451\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u0434\u043b\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0433\u0430\u043b\u043e\u0447\u043a\u0443, \u0447\u0442\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0442\u043e\u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f. \u041f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u043d\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445, \u043d\u0435\u0440\u0435\u0434\u043a\u043e \u0433\u0440\u0430\u043d\u0438\u0447\u0430\u0449\u0438\u0445 \u0441 \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0435\u0439.<\/p>\n<p>\u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043a\u0430\u043a\u00a0<a href=\"https:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Labels-as-Values.html\" rel=\"noopener noreferrer nofollow\">\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435\u00a0goto<\/a>\u00a0<\/p>\n<p>\u0412 \u043a\u043d\u0438\u0433\u0435 \u0411\u0438\u0434\u0436\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430\u00a0<a href=\"https:\/\/beej.us\/guide\/bgc\/html\/split\/goto.html#tail-call-optimization\" rel=\"noopener noreferrer nofollow\">\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0445\u0432\u043e\u0441\u0442\u043e\u0432\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432<\/a>, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e (\u043e \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u0435\u0434\u0430\u0433\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f! \u0412\u043e \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f\u0445 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448) \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b \u043b\u0435\u0433\u043a\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0432\u0435\u0449\u0438 \u043a\u0430\u043a \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0442\u0430\u043a\u043e\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0431\u044b \u043f\u0440\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c goto. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0435 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u0440\u043e\u0441\u043a\u043e\u0448\u044c, \u043a\u0430\u043a \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u2026 <\/p>\n<h2>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439\u00a0go to   <\/h2>\n<p>\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0443\u0442:\u00a0<a href=\"https:\/\/dl.acm.org\/doi\/epdf\/10.1145\/356635.356640\" rel=\"noopener noreferrer nofollow\">[ACM Digital Library]<\/a>\u00a0\u00a0\u00a0<a href=\"https:\/\/pic.plover.com\/knuth-GOTO.pdf\" rel=\"noopener noreferrer nofollow\">[PDF]<\/a>\u00a0\u00a0\u00a0<a href=\"http:\/\/www.kohala.com\/start\/papers.others\/knuth.dec74.html\" rel=\"noopener noreferrer nofollow\">[HTML]<\/a>   <\/p>\n<p>\u0415\u0441\u043b\u0438 \u044f \u043d\u0430\u0447\u0430\u043b \u0441 \u0414\u0435\u0439\u043a\u0441\u0442\u0440\u044b, \u0442\u043e \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u041a\u043d\u0443\u0442\u043e\u043c.<\/p>\n<p>\u041f\u043e\u0447\u0442\u0438 \u043a\u0430\u0436\u0434\u044b\u0439, \u043a\u0442\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445\u00a0goto, \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u0440\u0430\u0431\u043e\u0442\u0443. \u0418 \u044d\u0442\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e! \u041f\u043e \u0441\u0435\u0439 \u0434\u0435\u043d\u044c \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u043d\u0430 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u0442\u0435\u043c\u0443 (\u0438 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u00a0goto). \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u0432 \u043d\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0438, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b, \u043a\u0430\u043a \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u043d\u043e, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u0442\u044c \u0432\u0435\u0449\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043d\u043e \u043d\u0435 \u0430\u0440\u0442\u0438\u043a\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438: \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 <strong>go\u00a0to<\/strong> \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043b\u043e\u0445\u0438\u043c\u0438, \u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u2013 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u043c\u0438. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0437\u0430\u043e\u0441\u0442\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435: \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0431 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 <strong>go\u00a0to<\/strong>, \u0430 \u043d\u0435 \u0432\u0430\u0436\u043d\u044b\u0439 \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u0412\u044b\u0440\u0430\u0436\u0430\u044f\u0441\u044c \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0414\u0436\u043e\u043d\u0430 \u0411\u0440\u0430\u0443\u043d\u0430, \u00ab\u0411\u0440\u043e\u0441\u0430\u044f \u043d\u0430\u0448\u0438 \u043c\u043e\u0449\u043d\u0435\u0439\u0448\u0438\u0435 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u0440\u0430\u0447\u043d\u043e\u0439 \u0446\u0435\u043b\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u0435\u0437 <strong>go\u00a0to<\/strong>, \u043c\u044b \u0441\u0430\u043c\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u0438 \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0432\u0441\u0435\u0445 \u0442\u0435\u0445 \u043d\u0435\u043f\u043e\u0434\u0430\u0442\u043b\u0438\u0432\u044b\u0445 \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u0440\u0435\u0448\u0430\u0435\u043c\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0442\u044f\u0433\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443\u00bb. \u041d\u0430\u043f\u0438\u0441\u0430\u0432 \u044d\u0442\u0443 \u0434\u043b\u0438\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u044f \u043d\u0435 \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0434\u043b\u0438\u0442\u044c \u043c\u0430\u0441\u043b\u0430 \u0432 \u043e\u0433\u043e\u043d\u044c \u0441\u043f\u043e\u0440\u043e\u0432 \u043e\u0431 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u044f\u0445, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0435\u043c\u0430 \u0438 \u0442\u0430\u043a \u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0430\u0436\u043d\u043e\u0439. \u042f \u0441\u0442\u0430\u0432\u0438\u043b \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0446\u0435\u043b\u044c \u043e\u0442\u043b\u043e\u0436\u0438\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u044e \u0432 \u0431\u043e\u043b\u0435\u0435 \u043f\u043b\u043e\u0434\u043e\u0442\u0432\u043e\u0440\u043d\u043e\u0435 \u0440\u0443\u0441\u043b\u043e. \u00a0<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/720486\/\"> https:\/\/habr.com\/ru\/post\/720486\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><strong>\u0413\u043e\u0442\u043e\u0444\u043e\u0431\u0438\u044f<\/strong>\u00a0\u2013 \u044d\u0442\u043e \u0431\u043e\u044f\u0437\u043d\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 goto. \u041e\u0431\u044b\u0447\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438 \u043d\u0435\u0437\u043d\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437-\u0437\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0439 \u043e \u043d\u0435\u0437\u0430\u043f\u0430\u043c\u044f\u0442\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u0445 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u0441\u0442\u0440\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0433\u043e\u0442\u043e\u0444\u043e\u0431\u0438\u0435\u0439, \u0433\u043e\u0442\u043e\u0432\u044b \u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c\u044e \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u044b \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u0442\u044c \u043a\u00a0goto.<\/p>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u043e\u0431\u0430\u043a\u0430 \u0437\u043d\u0430\u0435\u0442 (\u0443\u0436\u0435 \u043c\u0435\u043c\u043e\u0440\u043e\u0434\u043d\u044b\u0439) \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0442\u0430\u0442\u044c\u0438 \u0414\u0435\u0439\u043a\u0441\u0442\u0440\u044b <a href=\"https:\/\/dl.acm.org\/doi\/epdf\/10.1145\/362929.362947\" rel=\"noopener noreferrer nofollow\"><em>Letters to the editor: go to statement considered harmful<\/em><\/a>\u00a0(\u00ab<a href=\"http:\/\/hosting.vspu.ac.ru\/~chul\/dijkstra\/goto\/goto.htm\" rel=\"noopener noreferrer nofollow\">\u041e \u0432\u0440\u0435\u0434\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 Go To<\/a>\u00bb) (\u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0430\u0441\u044c\u00a0<em>A case against the goto statement<\/em>). \u041d\u043e, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442, \u0432 \u043a\u0430\u043a\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0431\u044b\u043b\u0430 \u0432 60-\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f. \u0412\u0435\u0434\u044c \u0442\u0435 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u043e\u0441\u0442\u044c, \u0442\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u0438 \u0432 \u043d\u043e\u0432\u0438\u043d\u043a\u0443.<\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u0432\u043e\u0435\u043c\u0443 \u0440\u0435\u043c\u0435\u0441\u043b\u0443 \u0432 \u043c\u0438\u0440\u0435, \u0433\u0434\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 goto\u00a0\u0431\u044b\u043b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0448\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0414\u0430\u0436\u0435 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043b\u0435\u0433\u043a\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0441\u044f \u043a \u0432\u044b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0432\u0440\u0435\u0434\u043d\u044b\u043c \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0430\u043c \u0438 \u043f\u043e\u0440\u043e\u0447\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u0430\u043c. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f\u00a0 \u00a0goto, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0443\u043c\u0435\u0441\u0442\u0435\u043d, \u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438. \u041f\u043e \u0438\u0440\u043e\u043d\u0438\u0438 \u0441\u0443\u0434\u044c\u0431\u044b, \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u0435\u0435. \u042d\u0442\u043e \u0437\u0430\u0446\u0438\u043a\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043d\u0430 <em>\u0427\u0422\u041e \u0421\u0414\u0415\u041b\u0410\u0422\u042c<\/em>\u00a0(&#171;\u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442\u00a0goto&#187;), \u0430 \u043d\u0435 \u043d\u0430 <em>\u0417\u0410\u0427\u0415\u041c<\/em>\u00a0(&#171;\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0430\u043a \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c&#187;).<\/p>\n<p>\u0412 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u0440\u0443\u0433\u0430\u0445 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0442\u0430\u043b\u0434\u044b\u0447\u0438\u0442\u044c, \u0447\u0442\u043e &#171;goto\u00a0\u2013 \u044d\u0442\u043e \u0437\u043b\u043e&#187;, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044f \u0442\u043e\u0442 \u044f\u0437\u044b\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e\u0442. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0443\u0433\u0443\u0431\u043b\u044f\u0435\u0442\u0441\u044f (\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435). \u0412\u0435\u0434\u044c \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u043c \u0438 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0435, \u0432\u0435\u0440\u043d\u043e? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043f\u0440\u0438\u044f\u0442\u043d\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043c\u0443, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043b\u0438\u0448\u044c \u0443\u0434\u0438\u0432\u043b\u044f\u0442\u044c\u0441\u044f, \u043e\u0442\u0447\u0435\u0433\u043e \u0438\u0445 <a href=\"https:\/\/www.explainxkcd.com\/wiki\/index.php\/292:_goto\" rel=\"noopener noreferrer nofollow\">\u0430\u0442\u0430\u043a\u0443\u044e\u0442 \u0432\u0435\u043b\u043e\u0446\u0438\u0440\u0430\u043f\u0442\u043e\u0440\u044b<\/a>.<\/p>\n<p>\u0421\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#171;goto&#187; \u043d\u0435 \u043e\u043f\u0430\u0441\u0435\u043d \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435. \u00abGoto\u00bb \u2014 \u0442\u043e\u0447\u043d\u043e \u043a\u0430\u043a \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043c\u0430\u0441\u0441\u0430 \u043f\u0440\u043e\u0447\u0438\u0445 \u00ab\u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445\u00bb \u0437\u043e\u043b \u2014 \u043f\u043e\u0432\u0441\u0435\u043c\u0435\u0441\u0442\u043d\u043e \u043d\u0435\u043d\u0430\u0432\u0438\u0434\u044f\u0442 \u0442\u0435, \u043a\u0442\u043e \u043e\u0431\u0436\u0451\u0433\u0441\u044f \u043d\u0430 \u043f\u043b\u043e\u0445\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u00a0\u00a0<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0441\u043f\u0430\u0433\u0435\u0442\u0442\u0438-\u043a\u043e\u0434 \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u00ab\u0431\u0435\u0437 goto\u00bb, \u043c\u043e\u0433\u0443 \u043f\u0440\u0438\u0441\u043b\u0430\u0442\u044c \u0432\u0430\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043b\u0435\u0439\u0448\u0438\u0445 <em>\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432<\/em>, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0437\u0432\u0435\u044f\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \ud83d\ude09<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c goto \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f\u0445, \u0441\u043d\u0430\u0431\u0436\u0430\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043a\u0430\u043c\u0438, \u0442\u043e \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439, \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u0447\u0438\u0441\u0442\u044b\u0439 \u043a\u043e\u0434, \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0441\u044b\u043f\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438. \u0422\u0430\u043a\u0436\u0435 goto \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435 \u0438 \u043b\u043e\u0433\u0438\u0447\u043d\u0435\u0435, \u0447\u0435\u043c \u0435\u0433\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u00abbreak\u00bb &#8212; \u044d\u0442\u043e goto; \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u00abcontinue\u00bb &#8212; \u044d\u0442\u043e goto. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442 \u0442\u043e\u0447\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430.<\/p>\n<p>~\u00a0<a href=\"https:\/\/lkml.org\/lkml\/2003\/1\/12\/245\" rel=\"noopener noreferrer nofollow\">Scott Robert Ladd<\/a><\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044f\u0434\u0440\u043e Linux \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u043e\u0431\u043d\u044f\u043a\u043e\u043c, \u043d\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u0442\u0440\u043e\u0433\u043e\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043a MISRA C (\u0432 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 2012 \u0433\u043e\u0434\u0430) \u0437\u0430\u043f\u0440\u0435\u0442 \u043d\u0430 goto \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043c\u044f\u0433\u0447\u0451\u043d \u0441\u00a0<em>\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e<\/em>\u00a0\u043d\u0430\u00a0<em>\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439<\/em>, \u0442\u043e, \u0434\u0443\u043c\u0430\u044e, \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c goto\u00a0\u0442\u0430\u043a, \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0447\u0442\u0451\u043c \u043d\u0443\u0436\u043d\u044b\u043c.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0445\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0433\u0434\u0435 goto\u00a0\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u043c (\u0438\u043b\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u043c?) \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c, \u043b\u0438\u0431\u043e \u043c\u043e\u0436\u043d\u043e \u0445\u043e\u0442\u044f \u0431\u044b \u00a0<em>\u043e\u0431\u0434\u0443\u043c\u0430\u0442\u044c<\/em>, \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0422\u0430\u043a\u0436\u0435 \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0437 goto \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0445 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u043a\u0430\u043a \u0441 \u0438\u0445 \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u0430\u043c\u0438, \u0442\u0430\u043a \u0438 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u043f\u043e\u043c\u0435\u0445\u0430\u043c\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0441\u00a0goto).<\/p>\n<h2>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h2>\n<ul>\n<li>\n<p><em>The C Programming Language, 2nd ed.<\/em>\u00a0by Kernighan &amp; Ritchie<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Goto#Common_usage_patterns\" rel=\"noopener noreferrer nofollow\">Goto # Common usage      patterns &#8212; Wikipedia<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/stackoverflow.com\/q\/24451\/10247460\" rel=\"noopener noreferrer nofollow\">Are there any legitimate use-cases for &#171;goto&#187; in a language      that supports loops and functions? &#8212; Stack Overflow<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/beej.us\/guide\/bgc\/html\/split\/goto.html\" rel=\"noopener noreferrer nofollow\">Beej&#8217;s Guide to C Programming:\u00a0goto<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/hal.inria.fr\/hal-02383654\/file\/ModernC.pdf\" rel=\"noopener noreferrer nofollow\">Modern C<\/a>\u00a0by Jens Gustedt<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/eli.thegreenplace.net\/2009\/04\/27\/using-goto-for-error-handling-in-c\" rel=\"noopener noreferrer nofollow\">Using goto for error handling in C<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/dl.acm.org\/doi\/epdf\/10.1145\/356635.356640\" rel=\"noopener noreferrer nofollow\">Structured Programming with\u00a0<em>go to<\/em>\u00a0Statements<\/a>\u00a0by Donald E. Knuth<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.reddit.com\/r\/C_Programming\/comments\/g3juie\/error_handling_using_goto\/\" rel=\"noopener noreferrer nofollow\">Error handling using goto : r\/C_Programming<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.kernel.org\/doc\/html\/v6.2\/process\/coding-style.html#centralized-exiting-of-functions\" rel=\"noopener noreferrer nofollow\">Linux kernel coding      style<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.cprogramming.com\/tutorial\/goto.html\" rel=\"noopener noreferrer nofollow\">When to use Goto in C &#8212; Cprogramming.com<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/alvaro-videla.com\/2015\/02\/programming-myths.html\" rel=\"noopener noreferrer nofollow\">Harmful GOTOs, Premature Optimizations, and      Programming Myths are the Root of all Evil<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/stackoverflow.com\/q\/245742\/10247460\" rel=\"noopener noreferrer nofollow\">Examples of good gotos in C or C++ &#8212; Stack Overflow<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=8bmEhtMVrhk\" rel=\"noopener noreferrer nofollow\">Should you ever use a goto? &#8212; Jacob Sorber &#8212; YouTube<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/chidiwilliams.com\/post\/goto\/\" rel=\"noopener noreferrer nofollow\">GOTO Reconsidered<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"http:\/\/web.archive.org\/web\/20090320002214\/http:\/www.ecn.purdue.edu\/ParaMount\/papers\/rubin87goto.pdf\" rel=\"noopener noreferrer nofollow\">&#171;GOTO      Considered Harmful&#187; Considered Harmful<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.reddit.com\/r\/C_Programming\/comments\/wimvdf\/when_is_it_appropriate_to_use_goto\/\" rel=\"noopener noreferrer nofollow\">When is it appropriate to use GOTO? :      r\/C_Programming<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/800194.805859\" rel=\"noopener noreferrer nofollow\">Programming      With(out) the GOTO<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/geometrian.com\/programming\/tutorials\/gotogood\/index.php\" rel=\"noopener noreferrer nofollow\">Ian Mallett &#8212; Tutorials: The goto Statement      is Good<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.sei.cmu.edu\/confluence\/display\/c\/MEM12-C.+Consider+using+a+goto+chain+when+leaving+a+function+on+error+when+using+and+releasing+resources\" rel=\"noopener noreferrer nofollow\">MEM12-C. Consider using a goto chain when      leaving a function on error when using and releasing resources      &#8212;\u00a0SEI\u00a0CERT C Coding Standard<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/stackoverflow.com\/q\/788903\/10247460\" rel=\"noopener noreferrer nofollow\">Valid use of goto for error management in C? &#8212; Stack Overflow<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/lkml.org\/lkml\/2003\/1\/12\/126\" rel=\"noopener noreferrer nofollow\">LKML: Rob Wilkens: Re: any chance of 2.6.0-test*?<\/a><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/web.archive.org\/web\/20130521051957\/https:\/kerneltrap.org\/node\/553\/2131\" rel=\"noopener noreferrer nofollow\">Linux: Using goto In Kernel Code |       KernelTrap<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/koblents.com\/Ches\/Links\/Month-Mar-2013\/20-Using-Goto-in-Linux-Kernel-Code\/\" rel=\"noopener noreferrer nofollow\">Using Goto in Linux Kernel Code |       Koblents.com<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a\/\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0430<\/h2>\n<p>\u041e\u0431\u0440\u0430\u0437\u0446\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 goto\u00a0\u2014 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c, \u0447\u0430\u0441\u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f, \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0434\u0430\u0436\u0435 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u0442\u0430\u043a\u043e\u0439 \u043f\u0430\u0442\u0442\u0435\u0440\u043d, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 <em>\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430<\/em> \u0438 \u0447\u0451\u0442\u043a\u043e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u0430, \u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u043a\u0435, \u0430 \u043d\u0435 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u043c\u0438, \u0430 \u0435\u0449\u0451 \u0432 \u043d\u0438\u0445 \u0441\u043b\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u0434 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0445\u043e\u0440\u043e\u043d\u0435\u043d \u043f\u043e\u0434 \u0432\u043e\u0440\u043e\u0445\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>\u0418\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f SEI CERT \u044f\u0437\u044b\u043a\u0430 C:<\/p>\n<p>\u0414\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u044b\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0435 \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0432 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0441\u0435\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0443\u0442\u0435\u0447\u043a\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u2014 \u0437\u0430\u0431\u044b\u0442\u044c \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u043e\u0434\u0438\u043d (\u0438\u043b\u0438 \u0432\u0441\u0435) \u0440\u0435\u0441\u0443\u0440\u0441(\u044b) \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u00a0goto\u00a0\u2013 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0438 \u0441\u0430\u043c\u044b\u0439 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0445\u043e\u0434\u044b \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      if (!do_something(bar)) {         goto error_didnt_sth;     }     if (!init_stuff(bar)) {         goto error_bad_init;     }     if (!prepare_stuff(bar)) {         goto error_bad_prep;     }     return_value = do_the_thing(bar);  error_bad_prep:     clean_stuff(); error_bad_init:     destroy_stuff(); error_didnt_sth:     undo_something();      return return_value; }<\/code><\/pre>\n<p><strong>\u0412\u0437\u044f\u0442\u044b\u0439 \u043d\u0430\u0443\u0433\u0430\u0434\u00a0<\/strong><a href=\"http:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/drivers\/clk\/mmp\/clk-audio.c#n345\" rel=\"noopener noreferrer nofollow\"><strong>\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux<\/strong><\/a><strong>:<\/strong><\/p>\n<pre><code class=\"cmake\">\/\/ SPDX-License-Identifier: GPL-2.0-or-later \/*  * MMP Audio Clock Controller driver  *  * Copyright (C) 2020 Lubomir Rintel &lt;lkundrak@v3.sk>  *\/  static int mmp2_audio_clk_probe(struct platform_device *pdev) { struct mmp2_audio_clk *priv; int ret;  priv = devm_kzalloc(&amp;pdev->dev,     struct_size(priv, clk_data.hws, MMP2_CLK_AUDIO_NR_CLKS),     GFP_KERNEL); if (!priv) return -ENOMEM;  spin_lock_init(&amp;priv->lock); platform_set_drvdata(pdev, priv);  priv->mmio_base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(priv->mmio_base)) return PTR_ERR(priv->mmio_base);  pm_runtime_enable(&amp;pdev->dev); ret = pm_clk_create(&amp;pdev->dev); if (ret) goto disable_pm_runtime;  ret = pm_clk_add(&amp;pdev->dev, \"audio\"); if (ret) goto destroy_pm_clk;  ret = register_clocks(priv, &amp;pdev->dev); if (ret) goto destroy_pm_clk;  return 0;  destroy_pm_clk: pm_clk_destroy(&amp;pdev->dev); disable_pm_runtime: pm_runtime_disable(&amp;pdev->dev);  return ret; }<\/code><\/pre>\n<p><strong>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 1: \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435\u00a0if\u00a0<\/strong><\/p>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (<a href=\"https:\/\/wiki.c2.com\/?ArrowAntiPattern\" rel=\"noopener noreferrer nofollow\"><em>\u0430\u043d\u0442\u0438\u043f\u0430\u0442\u0442\u0435\u0440\u043d \u00ab\u0441\u0442\u0440\u0435\u043b\u043a\u0430\u00bb<\/em><\/a> )<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 (\u0441\u043c. \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u0443\u044e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 Linux)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      if (do_something(bar)) {         if (init_stuff(bar)) {             if (prepare_stuff(bar)) {                 return_value = do_the_thing(bar);             }             clean_stuff();         }         destroy_stuff();     }     undo_something();      return return_value; }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux <\/p>\n<pre><code class=\"cmake\">static int mmp2_audio_clk_probe(struct platform_device *pdev) {     \/\/ ...     pm_runtime_enable(&amp;pdev->dev);      ret = pm_clk_create(&amp;pdev->dev);     if (!ret) {         ret = pm_clk_add(&amp;pdev->dev, \"audio\");         if (!ret) {             ret = register_clocks(priv, &amp;pdev->dev);             if (!ret) {                 pm_clk_destroy(&amp;pdev->dev);                 pm_runtime_disable(&amp;pdev->dev);             }         } else {             pm_clk_destroy(&amp;pdev->dev);             pm_runtime_disable(&amp;pdev->dev);         }     } else {         pm_runtime_disable(&amp;pdev->dev);     }      return ret; \/\/ \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0435 \u044f\u0432\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0441\u044f 0  }<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 Microsoft \u0434\u0430\u0440\u0438\u0442 \u043d\u0430\u043c <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/shell\/common-file-dialog#basic-usage\" rel=\"noopener noreferrer nofollow\">\u043c\u0438\u043b\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u00ab\u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0433\u043e\u00bb \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a>\u00a0(<a href=\"https:\/\/web.archive.org\/web\/20221203064532\/https:\/learn.microsoft.com\/en-us\/windows\/win32\/shell\/common-file-dialog#basic-usage\" rel=\"noopener noreferrer nofollow\">\u0432\u0435\u0440\u0441\u0438\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435<\/a>).   <\/p>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 2: \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2013 \u0442\u043e\u0433\u0434\u0430 \u043e\u0447\u0438\u0449\u0430\u0435\u043c   <\/h2>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u043a\u043e\u0434 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f<\/p>\n<\/li>\n<li>\n<p>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0447\u0435\u043a \u0432\u044b\u0445\u043e\u0434\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      if (!do_something(bar)) {         undo_something();         return return_value;     }     if (!init_stuff(bar)) {         destroy_stuff();         undo_something();         return return_value;     }     if (!prepare_stuff(bar)) {         clean_stuff();         destroy_stuff();         undo_something();         return return_value;     }      clean_stuff();     destroy_stuff();     undo_something();      return do_the_thing(bar); }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430 Linux   <\/p>\n<pre><code class=\"cmake\">static int mmp2_audio_clk_probe(struct platform_device *pdev) {     \/\/ ...     pm_runtime_enable(&amp;pdev->dev);      ret = pm_clk_create(&amp;pdev->dev);     if (ret) {         pm_runtime_disable(&amp;pdev->dev);         return ret;     }      ret = pm_clk_add(&amp;pdev->dev, \"audio\");     if (ret) {         pm_clk_destroy(&amp;pdev->dev);         pm_runtime_disable(&amp;pdev->dev);         return ret;     }      ret = register_clocks(priv, &amp;pdev->dev);     if (ret) {         pm_clk_destroy(&amp;pdev->dev);         pm_runtime_disable(&amp;pdev->dev);         return ret;     }      return 0; }<\/code><\/pre>\n<p><strong>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0431\u0435\u0437 goto \u2116 3: \u0444\u043b\u0430\u0433\u0438\u00a0<\/strong><\/p>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 <\/p>\n<\/li>\n<li>\n<p>\u00ab\u043a\u0430\u0441\u043a\u0430\u0434\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u00bb \u0431\u0443\u043b\u0435\u0432\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0431\u0443\u043b\u0435\u0432\u044b \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cmake\">int* foo(int bar) {     int* return_value = NULL;      bool flag_1 = false;     bool flag_2 = false;     bool flag_3 = false;      flag_1 = do_something(bar);     if (flag_1) {         flag_2 = init_stuff(bar);     }     if (flag_2) {         flag_3 = prepare_stuff(bar);     }     if (flag_3) {         return_value = do_the_thing(bar);     }  <\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-346276","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/346276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=346276"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/346276\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=346276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=346276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=346276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}