写个知识点吧,关于va_list的,也是关于2dx的
2014-06-02 23:57
288 查看
关于va_list,你知道多少?
先说一下我的了解吧。
废话不多说,先看一段下面的小程序:
void CCLog(const
char * pszFormat, ...)
{
printf("Cocos2d: ");
char szBuf[kMaxLogLen+1] = {0};
va_list ap;
va_start(ap, pszFormat);
vsnprintf(szBuf,
kMaxLogLen, pszFormat, ap);
va_end(ap);
printf("%s", szBuf);
printf("\n");
}
该程序摘自2dx中的CCCommon.mm中。
如上程序,首先,定义一个va_list;然后,使用va_start来获取参数表中的各个参数;使用完毕后,使用va_end来结束使用。
说完va_list了,然后,解释一下这个函数的意义吧。该函数也没有别的意思,只是打印出一些日志。不用多解释什么,相信对2dx熟悉的同学都对CCLog很熟悉的。
void CCLog(const char * pszFormat, ...)
{
char buf[MAX_LEN];
va_list args;
va_start(args, pszFormat);
vsnprintf(buf, MAX_LEN, pszFormat, args);
va_end(args);
__android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", "%s", buf);
}
上边这段程序摘自CCCommon.cpp。
这段程序,摘自应用在android平台。功能都是一样的。
其实,我想具体说一下关于这个函数的整体架构,但是有些东西还没了解清楚。就说到此处了,以免让人误入歧途。有什么不恰当的地方,还请看到的朋友帮忙解释一下。谢谢。
先说一下我的了解吧。
废话不多说,先看一段下面的小程序:
void CCLog(const
char * pszFormat, ...)
{
printf("Cocos2d: ");
char szBuf[kMaxLogLen+1] = {0};
va_list ap;
va_start(ap, pszFormat);
vsnprintf(szBuf,
kMaxLogLen, pszFormat, ap);
va_end(ap);
printf("%s", szBuf);
printf("\n");
}
该程序摘自2dx中的CCCommon.mm中。
如上程序,首先,定义一个va_list;然后,使用va_start来获取参数表中的各个参数;使用完毕后,使用va_end来结束使用。
说完va_list了,然后,解释一下这个函数的意义吧。该函数也没有别的意思,只是打印出一些日志。不用多解释什么,相信对2dx熟悉的同学都对CCLog很熟悉的。
void CCLog(const char * pszFormat, ...)
{
char buf[MAX_LEN];
va_list args;
va_start(args, pszFormat);
vsnprintf(buf, MAX_LEN, pszFormat, args);
va_end(args);
__android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", "%s", buf);
}
上边这段程序摘自CCCommon.cpp。
这段程序,摘自应用在android平台。功能都是一样的。
其实,我想具体说一下关于这个函数的整体架构,但是有些东西还没了解清楚。就说到此处了,以免让人误入歧途。有什么不恰当的地方,还请看到的朋友帮忙解释一下。谢谢。
相关文章推荐
- 关于C中函数的可变参数va_list...(转)
- 19、关于va_list,va_start,va_arg,va_end
- 关于C中函数的可变参数va_list...
- 关于:va_list,va_start,va_arg的3篇文章(ZZ)
- va_list-关于方法变参的问题
- 关于C/C++中可变参数的详细介绍(va_list,va_start,va_arg,va_end)
- 关于C中函数的可变参数va_list...(转)
- 关于C中函数的可变参数va_list...
- 关于可变的参数列表va_list的笔记
- demo关于(va_list,va_start,va_arg,va_end)的(-(void)addButton:(NSString *)sender,...{})方法
- 关于 va_start, va_end, va_list,va_arg的应用
- 关于C、C++中可变参数的简介——(va_list,va_start,va_arg,va_end)
- 关于va_list
- js中关于value的一个小知识点(value既是属性也是变量)
- VC++中关于ListControl排序的一点心得[原创]
- 关于Freelists和Freelist Groups的研究(修订版)- freelists存储在哪儿
- 关于Freelists和Freelist Groups的研究(修订版)- freelists是否已经过时
- 也是关于日本人!
- 关于CheckBoxList和RadioButtonList的几个问题
- 关于Map和List的性能测试报告