Оператор переключения в C

У меня есть следующие операторы if:

    if (strcmp(registerName, "zero"))
            return 00000;
    else if (strcmp(registerName, "at"))
        return 00001;
    else if (strcmp(registerName, "v0"))
        return 00010;
    else if (strcmp(registerName, "v1"))
        return 00011;

На самом деле они очень длинные - около 20 операторов if. Поэтому я хотел бы использовать переключатель. Как мне преобразовать что переключать, когда у каждого оператора разные условия?

Я пробовал что-то вроде кода ниже, но он не работает:

int registerAddress;

switch(registerAddress) {

case 1 (strcmp(registerName, "zero")):
        regsiterAddress = 00000;
        break;
case 2 (strcmp(registerName, "at")):
        registerAddress = 00001;
        break;
}
6
задан darksky 20 October 2011 в 16:59
поделиться