字节/短整型 Vs int 作为循环计数器变量
当我们知道确切的循环数时,使用字节/短字节作为计数器变量是一种好的做法吗?例如
for (byte i = 1; i <= 26; i++)
与
for (short i = 1; i <= 26; i++)
与
for (int i = 1; i <=26; i++)
当我们知道确切的循环数时,使用字节/短字节作为计数器变量是一种好的做法吗?例如
for (byte i = 1; i <= 26; i++)
与
for (short i = 1; i <= 26; i++)
与
for (int i = 1; i <=26; i++)
它更有可能令人困惑而不是有帮助。大多数开发人员都希望看到一个值,而您的CPU中只有32位或64位寄存器,因此它不会改变程序的工作方式或执行方式。int
有很多选项可以工作并且对您的程序无害,但是您需要考虑一下糟糕的开发人员,他们必须阅读它并在以后理解它,这可能是您6个月后。;)
即使性能更快,也不值得进行这样的更改,除非它明显更快。请考虑此更改。
for (byte i = 1; i <= 120; i++)
或
for (byte i = 1; i <= x; i++)
你可能会认为这很好,因为200<2 ^ 8,它编译得很好,但它实际上是一个无限循环。
你必须问这个问题;如果以后引入 Bug 的风险增加,它必须快多少?
通常答案是,它必须以我测量的方式使我的整个程序明显更快(而不仅仅是你改变的那一点),我必须需要它明显更快。
简短的回答:不。
长答案:否,因为 CPU 已针对整数运算进行了优化。如果使用字节或短整型,CPU 必须经常将其转换为整数并转换回来,通常是通过应用位掩码。