C инструкция адрес - PullRequest
       3

C инструкция адрес

1 голос
/ 31 мая 2010

Отказ от ответственности, я не делаю ничего особенно в отношении этого вопроса, просто любопытно.

Можно ли взять адрес инструкции или блока в C? по сути, есть ли эквивалент прыжка в C?

например:

void function() {
    int k;
    { // is a possible to go to this address from arbitrary point in code?
      int i, j;
      k += j+i;
    }
}

спасибо

Ответы [ 2 ]

3 голосов
/ 31 мая 2010

Я думаю, что самым близким, который вы можете получить, используя стандартные методы, является setjmp и longjump . Они не получат доступ к фактическому адресу, потому что объект jmp_buf непрозрачен.

3 голосов
/ 31 мая 2010

Да, используйте goto:

void function() {
    int k;
    { // is a possible to go to this address from arbitrary point in code?
myLabel:
      int i, j;
      k += j+i;
    }

// stuff

    goto myLabel;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...