将-1用作无效值用于枚举和可能未知的值是否是错误的做法?

问题描述

| 将-1用作枚举值的无效值(对于从0或更大的枚举开始)是一个不好的主意。对于未初始化的值或不再具有有效值的值。 如何测试函数如何处理无效
#define INVALID_ENUM_VALUE -1
如果将随机uint值设置为未初始化/无效(例如,资源ID),该怎么办?
#define INVALID_UNINT_VALUE -1
环绕是否有潜在问题?如果程序不是很复杂并且不能长时间运行,则有效整数不太可能具有该值。我应该使用UINT_MAX吗?放弃并只使用布尔值来跟踪有效状态?     

解决方法

        如果所有整数都是代码中的好值(例如用于加法),则使用-1(或任何数字值)表示错误或未知数是没有意义的-您需要使用其他某种机制,或只是忽略错误。     ,        这是我使用的方法: 如果您使用的是
enums
,请为“无效状态”添加另一个值 如果您有一个返回returns3ѭ的函数,则可以: 返回带有额外字段的
struct
(例如
valid_result
error
),或者 将指针指向您为结果修改的“ 3”并让返回值报告错误