将缓冲区的大小定义为宏还是常量,这被认为是不好的做法吗?
例如:
char buffer[1024];
代替:
#define BUFF_SIZE 1024
char buffer[BUFF_SIZE];
一般来说,由于几个原因,"魔术数字"被认为是一种不好的做法.
1)如果使用有意义的名称命名常量,它将变为自我记录,从而提高代码的可读性.
2)常数通常不在一个地方使用.考虑一下你用1024个元素定义一个缓冲区的情况,然后在代码的其他地方,你想要遍历它的所有元素(假设sizeof在那里不可用,例如在某些地方它被转换为指针).你会写类似的东西for (i=0; i<1024....但是明天你会认为1024它不够大,你想让它变得不同.然后你将不得不在拥有这个数字的所有地方之后追捕,但只有在与缓冲区大小有关的地方.通过命名常量,您可以避免所有这些麻烦,只需在一个地方更改值.从而提高了代码的可维护性.
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |