実装が大変になりそうなんだけど、列挙型は値の指定が出来ない変わりに、
範囲内と言うことを強く型付けしたいと思う。

例えば
enum Weekday { SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATRUDAY};

とした場合、

Weekday day;

day = SATRUDAY;
day++;
if(day == SANDAY){
 // OK SUNDAY
}

となるような感じ。

また、char* dayname[Weekday];
と定義すれば、

char* pday;
pday = dayname[7];
でコンパイルエラーが出るような事に死体。