分类: C/C++
2013-02-22 18:09:06
变长参数以前只是听说,没有搞过。今天看cocos2d-x源码,见到了一些变长参数列表,觉得不错,因此拿过来研究了一番。尔后发现它的使用是很easy的。
CCArray.cpp CCArray* CCArray::arrayWithObjects(CCObject* pObject, ...) { va_list args; va_start(args,pObject); CCArray* pArray = create(); if (pArray && pObject) { pArray->addObject(pObject); CCObject *i = va_arg(args, CCObject*); while(i) { pArray->addObject(i); i = va_arg(args, CCObject*); } } else { CC_SAFE_DELETE(pArray); } va_end(args); return pArray; }
参考:
上面的例子中参数列表是指针类型的参数。对于其他类型的参数没有研究,不太清楚(貌似char类型的就不行,但也不是很确定,哈哈)。如果有兴趣研究的话,自己尝试。