Tôi có một enum:Làm cách nào để kiểm tra xem biến enum có hợp lệ không?
enum myenum{
typeA,
typeB,
typeC
} myenum_t;
Sau đó, một chức năng là để được gọi với một tham số enum:
int myfunction(myenum_t param1)
{
switch(param1)
{
case typeA:
case typeB:
case typeC:
//do the work
break;
default:
printf("Invalid parameter");
}
return 0;
}
Nhưng, như myenum_t
phát triển với ngày càng nhiều giá trị, myfunction
dường như không thật thanh lịch.
Có cách nào tốt hơn để kiểm tra xem liệu enum có hợp lệ hay không?
Không có một bản sao của tiêu chuẩn, tôi sẽ được trích xuất để nói điều này mà không cần trích dẫn nó, vì vậy tôi sẽ làm cho nó một lời nhận xét: Trong mỗi lần thực hiện C hoặc C++ tôi đã thấy, các giá trị 'enum' được phân bổ theo thứ tự số tăng dần. Vì vậy, tất cả những gì bạn cần làm là thêm 'firstEnum = typeA, lastEnum = typeC' vào' enum' và sau đó kiểm tra phạm vi bằng 'if (int (inputEnum) int (lastEnum)) {/ * xử lý lỗi * /} '. –