最近,在重构会议期间,我正在查看我编写的一些代码,并注意到以下几点:
- 我有用于
unsigned char在区间 [0-255] 中强制执行值的函数。 - 使用的其他函数
int或带有语句的long数据类型在函数内以静默方式将值钳制在有效范围内。if - 包含在类中和/或声明为具有未知
upper bound但已知且明确的非负数的函数的参数的值lower bound被声明为unsigned数据类型(int或long取决于超过 4,000,000,000的可能性)。upper bound
这种不一致令人不安。这是我应该继续的好习惯吗?我应该重新考虑逻辑并坚持使用int或long使用适当的非通知钳位吗?
关于使用“适当”的注意事项:在某些情况下,我使用signed数据类型并在值超出范围时抛出通知异常,但这些是为divde by zero和保留的constructors。