我有一个变量,类型并不重要;可能的范围很容易适合上述任何类型。例如循环计数器。等等
使用的优点和缺点是什么:
int
unsigned int
int_fastN_t
uint_fastN_t
任何潜在的接近投票者请注意:我不是问使用哪一个,因为那是基于意见的,但我问的是,在选择一个而不是另一个时我应该考虑哪些因素?
以下是做出选择时需要考虑的一些因素:
如果边界是整数文字,请使用经典
for (int i = 0; i < 10; i++) {
...
}
原理:越简单越好。
如果边界是变量,请使用与边界相同的类型。
size_t len = strlen(s);
for (size_t i = 0; i < len; i++) {
...
}
如果边界可能超出
int
的范围,请使用更大的类型:long
或int64_t
...使用int_fastN_t
或int_leastN_t
会使代码更难以阅读,并且不会产生任何影响在大多数架构上。