Confusion in the use of byte variable
There is probably somewhere else, like this:

#define LOW 0


Which means the pre-processor turns your line from this:

volatile byte state = LOW;


into this:

volatile byte state = 0;


There is nothing arduino-specific here, just the use of standard C/C++ features.