【问题标题】:Variable names in CC中的变量名
【发布时间】:2009-12-09 07:46:17
【问题描述】:

在预处理器中,我们可以在宏之间切换,例如,

#define BUFF(n) BUFF_##n

因此,BUFF(1) 将被 BUFF_1 替换,BUFF(2) 将被 BUFF_2 和歌曲替换

这是否适用于 C 变量?即,动态地在相似变量之间进行选择。我知道这是一种奇怪的情况,可以使用数组或任何其他构造来处理..但是这种情况需要我这样的情况..你能帮忙吗..提前谢谢

【问题讨论】:

  • 是的,你最好解释一下原来的问题。很可能 C 对此有更好的解决方案。

标签: c variables


【解决方案1】:

是的,您可以使用该宏将BUFF_ 应用于任何内容。预处理器将展开宏,然后编译器将尝试编译结果。后者可能会失败,因为如果您使用BUFF(+),您会得到BUFF_+,而这不是一个有效的变量名。

【讨论】:

  • 对于子程序也很方便。我不记得细节了,但我相当确定在我的前世,我们曾在现实生活中应用过这种结构,但公平地说,我们的一些编码实践有点离题......
【解决方案2】:

当然,您可以这样做。预处理器宏只是在编译之前对代码进行的文本替换。但是,您不能在运行时执行此操作。

【讨论】:

    猜你喜欢
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 2011-10-10
    • 1970-01-01
    • 2010-09-19
    相关资源
    最近更新 更多