最近,在重构会议期间,我正在查看我编写的一些代码,并注意到以下几点:
- 我有用于
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
。