Tällainen vertailu sopii, mikäli erikoisehtoja olisi hyvin vähän. Nyt niitä kuitenkin on suhteellisen monta, joten on ehkä helpompi tehdä taulukko, jossa on ehdot ja mitä ehdoilla tehdään:
/****************************************************************************/
typedef enum {
YHT,
ERIS,
PIEN,
PIENYHT,
SUUR,
SUURYHT
} Vertailu_oper_tyyppi;
typedef struct {
char *ehto;
int pit;
Vertailu_oper_tyyppi kasky;
} Vertailu_tyyppi;
static Vertailu_tyyppi EHDOT [] = {
{ "" , 0, YHT},
{ "==", 2, YHT},
{ "!=", 2, ERIS},
{ "<=", 2, PIENYHT},
{ "<" , 1, PIEN},
{ ">=", 2, SUURYHT},
{ ">" , 1, SUUR},
{ NULL, 0, YHT}
};