我正在编写一本名为" C编程:现代方法"的书,在讨论数组的第一部分中,作者指出:
使用宏来定义数组的长度是很好的做法
然后使用简短的例子:
#define N 10
...
int a[N];
Run Code Online (Sandbox Code Playgroud)
我知道它与能够回到程序的源代码并更改值有关,并使其成为宏可能使程序员更容易,但我不确定.为什么这是一个很好的做法,还是客观的?
这是一个很好的做法,因为
话虽如此,我不确定我是否同意这是最好的方法。枚举也可以工作并避免宏的一些问题(例如更难覆盖和静默编译)。IIRC a 也能const int工作。
作为参考,这编译为cc:
const int s = 1;
int a[s];
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Apple LLVM version 4.2 (clang-425.0.28)(基于LLVM 3.2svn)
目标:x86_64-apple-darwin12.4.0
线程模型:posix