Имам следните 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;
}
strcmp(a, b)
връща нула (което се оценява като false в булев контекст), когато a е равно на b. - person rczajka   schedule 20.10.2011