hour = enum time ( t ) ;属于强制类型转换赋值,如果是hour = 100;在C++是编译不过的(类型检查),C中的话是可以的,但是你的这个行为(100超出25的范围)是未定义的,虽然你赋值成功了,强制的东西,这种行为编译器多数是反对的,主要原因是只有你知道100的意义,(如果是0,编译器知道去找night0 ,100只能返回给你解释)
可以超出这25个值,会赋值给hour。