列挙型で質問なんですが

enum menu{ add, kill };

menu selemenu(void)
{
int a;

return (menu(a));
}

int main(void)
{
menu b;

switch( b = selemenu() )
{
略
}
return 0;
}

私が参考にしている本では上記のように
selemenu関数の返却値a(menu型)をmain関数でb(menu型)に代入しています。
しかし、bがint型でもa(menu型)が代入できてしまいます。

なぜですか?