c - 使用 -1 作为无效值是不好的做法吗(对于枚举和可能未知的值)

标签 c initialization

将 -1 用作枚举值的无效值(对于从 0 或更大开始的枚举)是否是个坏主意。对于未初始化的值或不应再具有有效值的值。 如何测试函数如何处理无效

#define INVALID_ENUM_VALUE -1

如果随机 uint 值处于未初始化/无效(比如资源 ID)状态,那么将其设置为 -1 怎么样?

#define INVALID_UNINT_VALUE -1

环绕是否存在潜在问题?如果程序不是很复杂并且不会长时间运行,则有效整数不太可能具有该值。我应该使用 UINT_MAX 吗?放弃并只使用 bool 来跟踪有效状态?

最佳答案

如果所有整数在代码中都是可能的好值,因为它们用于(比如说)加法,那么使用 -1(或任何数值)来指示错误或未知数没有意义 - 您需要使用其他一些机制,或者干脆忽略错误。

关于c - 使用 -1 作为无效值是不好的做法吗(对于枚举和可能未知的值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6327568/

相关文章:

c++ - 如何将套接字动态绑定(bind)到一个网络接口(interface)?

c - getcontext 系统调用 (ucontext.h) 的真正作用是什么?

c - scanf 不要求输入

javascript - 无法初始化 Foundation 5 上的轨道

C++三元运算符,有什么区别?

c++ - 修改 char *const 字符串

c - 如何判断一个数是正数还是负数还是0

c++ - Array[n] vs Array[10] - 使用变量初始化数组 vs 数值字面量

c++ - 同一程序每次返回不同的输出?

c# - 如何将焦点设置到 Windows 窗体应用程序中的控件?