【发布时间】:2013-04-18 21:47:06
【问题描述】:
我有这个代码:
#ifdef something32 <----- might not be defined
the_real_value = thing[something32];
thing[something32] = my_value;
#else
the_real_value = thing[something]; <------- guarantied to be defined (something)
thing[something] = my_value;
#endif
#ifdef THE_OTHER_THING <--------- might not be defined
#ifdef something32
thing32[something32] = my_value;
#else
thing32[something] = my_value;
#endif
#endif
我会经常使用它,所以我想用宏替换它。我知道#ifdef 不能存在于宏中,所以我想知道我还能如何替换所有这些代码。有什么想法吗?
编辑:
抱歉,我忘了提到 something32 只是一长串变量之一。
这个想法是有类似的东西
SHORTEN_MY_CODE(something, something32);
SHORTEN_MY_CODE(another_something, another_something32);
etc...
【问题讨论】:
-
#ifdefs不能在宏中,但宏可以在#ifdef中。 -
@CarlNorum 很抱歉造成混乱,我会编辑我的问题,你会明白为什么我不能使用它。
-
我认为有一种正确的方法可以做您想做的事情,但我需要查看您的其余代码以提供帮助。
-
@MarkLakata 这就是全部。如果有帮助,我可以粘贴真实的代码。你要我做吗?