Можно ли в студии при использовании switch() case запретить генерировать такой переход jmp [eax*4 + base] адрес? А чтоб вместо этого делала условные переходы + сравнения ? Пробывал разные варианты оптимизации а также отключение релоков не помогает. switch не хочеться менять на if. Или чтоб по всему коду были относительные переходы/вызовы, где это возможно. Microsoft Visual Studio 2008.
> switch не хочеться менять на if если чисто из-за удобства и читабельности, то можно во что-то такое обернуть: Не тестил, но идея понятна. upd: c какого я посчитал, что и тут не будет jumptable'a - хз. чекни (:
deLight Работает. Кроме такого варианта Код (Text): d = 23; SWITCH( d ) { CASE(23) CASE(45) { break; } } SWITCH_END
Ну так подставь. Код (Text): if(d==23) if(d==45) { // body break; } Как не трудно заметить, тело не выполнится никогда, а по логике switch должно выполняться для d равного 23 и 45.