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} };