我在设置 c++ MACRO 单音函数结果时遇到问题。这就是我所拥有的:
宏
#define CCDICT_FOREACH(__dict__, __el__) \
CCDictElement* pTmp##__dict__##__el__ = NULL; \
if (__dict__) \
HASH_ITER(hh, (__dict__)->m_pElements, __el__, pTmp##__dict__##__el__)
这就是我尝试设置它的方式:
CCDictElement* pElement = NULL;
CCDICT_FOREACH(GameSingleTone::getInstance()->getGemsDictionary(), pElement)
{
}
getGemsDictionary() 方法返回我:
CCDictionary*,gemsDictionary
;
我得到的编译错误是(在 MACRO 的行上):
error C2143: syntax error : missing ';' before '{'
但如果我这样做:
CCDictionary* tempDictionary = CCDictionary::create();
tempDictionary = GameSingleTone::getInstance()->getGemsDictionary();
CCDICT_FOREACH(tempDictionary , pElement)
{
}
一切正常。
为什么 ?