Что я могу сделать, чтобы вручную улучшить большие переключатели и скорость if-elses?Возможно, мне понадобится какая-нибудь хеш-таблица или таблица поиска.
Я работаю с кодами gcc и C, я сомневаюсь, что gcc имеет какие-либо встроенные оптимизации для этого.это то, на что похож каждый переключатель, сделайте что-нибудь, основываясь на том, является ли конкретное int каким-либо значением.Мои if-elses выглядят так:
if( !strcmp( "val1", str ) )
foo();
else if( !strcmp( "val2", str ) )
foo2();
...
У меня также есть ifs, которые делают это
if( struct.member1 != NULL )
foo();
if( struct.member2 != NULL )
foo2();
EDIT2: Спасибо всем.Я не уверен, какой из них я должен выбрать в качестве ответа, потому что многие из этих ответов имеют веские аргументы и ценную информацию.К сожалению, я должен выбрать только один.Но спасибо всем!В конце концов, использование идеальной хеш-таблицы кажется лучшим способом получить время O (n) для доступа как для if, так и для переключателей.