我正在读一本叫做C 编程:现代方法 https://rads.stackoverflow.com/amzn/click/com/0393979504在讨论数组的第一部分中,作者指出:
使用宏定义数组的长度是很好的做法
然后使用简短的例子:
#define N 10
...
int a[N];
我知道这与能够返回程序的源代码并更改值有关,并将其设为宏可能会让程序员更容易,但我不确定。Why这是一个很好的做法,还是客观的?
这是一个很好的做法,因为
- 数组大小显然必须是硬编码的
- 但它不应该将一个神奇的数字直接注入源代码中
- 因此,宏是给它一个可读的名称并将其从源代码中删除的好方法
话虽如此,我不确定我是否同意这是最好的方法。枚举也可以工作并避免宏的一些问题(例如更难覆盖和静默编译)。和 IIRCconst int
也有效。
作为参考,这编译为cc
:
const int s = 1;
int a[s];
int main() {
return 0;
}
Apple LLVM 版本 4.2 (clang-425.0.28)(基于 LLVM 3.2svn)
目标:x86_64-apple-darwin12.4.0
线程模型:posix
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)