写个知识点吧,关于va_list的,也是关于2dx的

简介: 写个知识点吧,关于va_list的,也是关于2dx的

关于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平台。功能都是一样的。

其实,我想具体说一下关于这个函数的整体架构,但是有些东西还没了解清楚。就说到此处了,以免让人误入歧途。有什么不恰当的地方,还请看到的朋友帮忙解释一下。谢谢。

相关文章
|
4月前
|
索引 Python
Python小姿势 - Python核心知识点—list
Python小姿势 - Python核心知识点—list
|
Dart 索引
Dart之List基本知识点
Dart之List基本知识点
【剑指offer知识点】List转int[],List转String,String转int,char[]转String,String 转char[],List转String[]
【剑指offer知识点】List转int[],List转String,String转int,char[]转String,String 转char[],List转String[]
117 0
|
安全 Java
【Java面试】List知识点总结
【Java面试】List知识点总结
93 0
|
Dart Java
flutter开发之必须掌握的dart知识点:list,set,map
要说,List在我的开发使用中,确实是最为频繁的了,那么如何使用list,也就成了一个问题,list提供的方法又有哪些 这些都是需要掌握理解的。 首先第一个, 对于固定长度的list,如何删除添加元素呢
577 0
|
索引 Python
Python知识点笔记-列表list、元组tuple和dict类型
Python知识点笔记-列表list、元组tuple和dict类型
130 0
|
Python
Python 知识点: 列表推导式(list comprehension)
Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension ,有人把它翻译成“列表推导式”,也有人翻译成“列表解析式”。名字听上去很难理解,但是看它的语法就很清晰了。
2590 0
|
3月前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
468 1
|
2月前
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
|
2月前
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。