Меня смущает, как именно переменная типа enum и переменная типа int работают по-разному в C.
Я слышал, что в C ++ может быть ошибка приведения между типом enum и целочисленным типом, но C не делает.
Тогда, если нет разницы между целочисленной переменной и переменной типа перечисления в C, могу ли я просто объявить имена перечислений и использовать их, не объявляя какие-либо переменные этого типа перечисления, например ,
...
enum { WIN, LOSE, DRAW };
int main() {
int result;
result = play_game(...);
if (result == WIN) { ... }
else if (result == LOSE) { ... }
...
}
int play_game(...) {
...
if (...) return WIN;
else if (...) return LOSE;
else return DRAW;
...
}
как указано выше. (просто для повышения читабельности вместо использования бессмысленных чисел; 0
, 1
, 2
, 10
, -1
, и c.)
Собственно, я не мог понять, что означает объявление переменной типа specifici c enum, как показано ниже.
enum GameResult { WIN, LOSE, DRAW } result;
Связано ли это также с удобочитаемостью кода? Я имею в виду, есть ли разница между объявлением result
как int и как переменной типа enum?