【发布时间】:2016-09-28 21:46:02
【问题描述】:
我正在重写一个函数,我注意到初始化后从未重新分配一个特定变量。有没有理由不简单地将这个变量转换为宏?在这种情况下,宏总是更可取吗?
谢谢!
【问题讨论】:
-
最好使用
const而不是宏。 -
初始化器是常量还是表达式?我同意
const'variable' 更好的共识,但如果初始化程序是一个精心设计的运行时表达式,则更加明显,特别是如果该值被多次使用。不使用宏的另一个好处是:变量名在程序的符号表中,而宏不在符号表中。缺少符号会使调试变得比需要的更难。 -
@EugeneSh.:
const i = 10; static int a[i];不起作用!在 C 语言中,无论如何您都需要一个清晰的命名方案,宏没有具体问题。如果需要符号常量,请使用宏。不过,我支持你使用类似函数的宏。 -
如果你真的展示了你正在谈论的代码,这个问题会好得多。
-
"在这种情况下,宏总是更可取吗?" --> 案件没有清楚地呈现出来。