You get the message because you’re not actually declaring, you’re only defining something, namely an enumeration named “states”. You can later use this definition to declare a variable of that type. That variable may be a static or instance variable, but the definition doesn’t need (and shouldn’t have) the storage specifier attached to it.