- Что происходит быстрее: указатели на функции или переключатель?
Оператор switch должен иметь около 30 case
s, состоящий из перечисленных беззнаковых ints от 0 до 30.
Я мог бы сделать следующее:
class myType
{
FunctionEnum func;
string argv[123];
int someOtherValue;
};
// In another file:
myType current;
// Iterate through a vector containing lots of myTypes
// ... for ( i=0; i < myVecSize; i ++ )
switch ( current.func )
{
case 1:
//...
break;
// ........
case 30:
// blah
break;
}
И переходите через коммутатор с func
каждый раз. Хорошая вещь о коммутаторе также будет заключаться в том, что мой код более организован, чем с 30 функциями.
Или я мог бы это сделать (не так уверен в этом):
class myType
{
myReturnType (*func)(int all, int of, int my, int args );
string argv[123];
int someOtherValue;
};
У меня было бы 30 различных функций, тогда сначала указатель на один из них присваивается myType.
- Скорее всего, быстрее: оператор switch или указатель функции?
Звонки в секунду: около 10 миллионов. Я не могу просто проверить это - мне потребовалось бы переписать все это. В настоящее время используется переключатель.
Я создаю интерпретатор, который я хочу быть быстрее, чем Python и Ruby - каждый такт имеет значение!