The first value in an enum is automatically set to zero. Succeeding values are automatically set to one more than the previous value. But you can override this if you like.
Code:
enum numbers {
minusone = -1,
zero,
three = 3,
four,
five
};
But the point of enums is that the values don't matter. You just have something like
Code:
enum {
MODE_OUTSIDE,
MODE_INTAG,
MODE_INATTRIBUTE
} mode = MODE_OUTSIDE;
and you always compare the enum to those values.
Code:
if(mode == MODE_OUTSIDE) mode = MODE_INTAG;
if(mode != MODE_INTAG) puts("not in tag");
Using enums the way they are intended to be used, it should not matter what the values of the enumerations are.