ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
339519 Топик полностью
fk0, легенда (08.07.2012 11:09, просмотров: 48) ответил mazur на Как на си делаются переходы на метки, как в ассемблере? Например, мне не хочется плодить дополнительную функцию, и в уже существующей функции есть кусок кода, куда требуется перейти.
Надо брать и плодить тот кусок кода, куда требуется перейти, в виде отдельной функции, и её вызывать. Если ещё научиться для всех функций не вызываемых снаружи модуля писать мол static, то оптимизатор сделает примерно то, что ты хочешь. Хотя не факт, что так делать (искать и выделять общую часть кода) нужно и вообще полезно. В этом можно зайти слишком делеко и совершенно напрасно. Качественные компиляторы (например, KEIL для x51) такую оптимизацию за тебя делать умеют во-первых, во-вторых может оказаться, что код вовсе и не общий и в недалёком будущем может потребоваться в одном месте его изменить, а в другом оставить как есть. А по поводу вопроса: невозможно перейти с помощью goto в другую функцию. Почему -- в процессе работы функции важно, чтоб переменные в стеке были в том виде, как в прологе данной функции определяется. Можно хакирскими методами, но оно тебе не надо.
[ZX]