1
例如,如果我有这样的代码:我可以创建一个宏来执行调试或发布代码吗?
#ifdef _DEBUG
mPluginsCfg = "plugins_d.cfg";
#else
mPluginsCfg = "plugins.cfg";
#endif
我可以定义一个宏,看起来像
#define DEBUG_RELEASE(debug_code, release_code)
,然后用它像这样;
DEBUG_RELEASE(mPluginsCfg = "plugins_d.cfg";,mPluginsCfg = "plugins.cfg";)
如果你还没有看到任何丑陋的东西,你还没有看到人们用宏做出的更疯狂的事情。但是,是的,至少在像OP一样使用它时,这相当难看。 – delnan 2013-02-09 21:57:44
哦,就这么简单?出于某种原因,我试图在#define中使用#ifdef来做到这一点。我不明白为什么这是丑陋的寿。我的意思是它击败了每次都不写完整的东西? – BringMeAnother 2013-02-09 21:59:13
@delnan我同意。如果你想在C世界有足够的时间,你会看到更多丑陋的东西。虽然它非常强大,可以做许多只有C++才有的功能。 – texasbruce 2013-02-09 22:00:28