Je veux tester la transition d'un état à un autre. J'ai défini mes états dans un ENUM comme ceci:comparer un tableau d'enums dans (Objectif) C
enum FingerStatus {
FINGERS_UP,
MOVING,
FINGERS_STILL
};
J'ai un « currentState » et une variable « newState ». Je sais que les enums ne sont que des entiers, et s'ils sont des entiers de 16 bits, ce que je pense qu'ils sont, il est possible de représenter deux énumérations comme un seul entier de 32 bits.
je me sens comme je devrais être en mesure de faire quelque chose le long des lignes de
switch ({currentStatus, newFingerStatus}) {
case {FINGERS_STILL, MOVING}:
NSLog(@"fingers starting to move");
break;
case {MOVING, FINGERS_STILL}:
NSLog(@"fingers stopped moving");
break;
default:
break;
}
je réalise la syntaxe est tout faux, mais je pense que l'idée de base est saine. Y a-t-il une autre manière agréable et propre de faire cela?
Merci! Puis-je garantir qu'ils sont inférieurs à 16 bits en leur attribuant simplement des valeurs pouvant être conservées en 16 bits ou moins? – morgancodes
Oui, si vous leur attribuez des valeurs, elles auront ces valeurs. :-) – xscott
J'aurais dû être plus précis et dire "si les valeurs de vos énumérations peuvent être représentées en moins de 16 bits". – xscott