【发布时间】:2015-05-11 23:11:30
【问题描述】:
我不记得有一个邪恶的宏把戏,它很像这样:
public :
var = 3;
}
应该扩展到
if(route == ROOTING_PUBLIC)
{
var = 3;
}
我怎样才能实现这样的目标?
【问题讨论】:
-
嗯?你为什么还要关心这种粗俗(假设有可能)?
-
我不认为这是粗俗。它对我来说看起来更干净,就像特定环境的加法一样。在我正在做的项目中..这肯定会很好地利用我以前见过的这个技巧。
-
我想你会发现自己是少数,那么!让我们假设这是可能的(它不是)。您将隐藏控制流和语法范围,看起来完全不同。任何遇到此代码的人都会被完全误导。
-
邪恶的宏把戏按定义是邪恶的。不要作恶。它可能看起来干净或聪明。如果您是唯一会接触到它的人,那很好。但如果它是为了别人的眼睛,你可能要考虑这样的邪恶代码可能会产生什么样的诅咒。
-
没错,但我认为这还不是我在well..生活中遇到的最糟糕的C-reinventing。而且我觉得还是比较安全的。
标签: c if-statement macros goto c89