0
J'utilise VC2008 comme mon complier, et il me est surpris de qu'un ENUM pourrait être utilisé sans défini:Pourquoi un type ENUM pourrait être utilisé sans défini
void func(enum EnumType type)
{
}
code
ci-dessus pourrait être compilé et exécuté sans un problème, quelqu'un pourrait-il expliquer pourquoi cela fonctionne?
Mise à jour: je pourrais définir un ENUM vide en C++, comme suit:
enum EnumType {};
Voulez-vous dire qu'il considère l'expression "enum EnumType type" comme déclaration directe? –
@Dbger: Oui. *** –
Si c'est bien, il semble que MS fasse 2 trucs ici: 1. Vous pouvez renvoyer declare sth quand vous déclarez le paramètre d'une fonction; 2. VC++ considère que la taille de l'énumération doit toujours être de 4 octets, au moins par défaut. –