Управление передается на оператор в теле той же функции, помеченный указанным идентификатором (метка).
Пример:
# include < stdio.h >
void main (void)
{ int a;
scanf (" % d", & a);
if (a > = 0) goto М1;
a = 0;
M1: printf ("a = % d \ n", a);
}
Хотя в языке C и разрешена передача управления на любой оператор в теле функции, опыт показывает, что следует пользоваться этой возможностью, как можно реже или вовсе от нее отказаться. В соответствии с теорией структурного и объектно-ориентированного программирования использование оператора goto нежелательно, т.к. может затруднить возможности и свести на нет усилия компилятора по активизации программы. Если все же применяется оператор goto целесообразно придерживаться следующих инструкций:
1) Не входить внутрь блока из вне.
2) Не входить внутрь оператора if или else, конструкции if else или оператора switch.
3) Не входить внутрь итерационной структуры оператора цикла из вне этой структуры.