android打印参数类型,__android_log_vprint可变参数打印日志

想到把JNI下的

__android_log_print();函数进行封装,可是这个函数的参数是可变长参数;对于可以变长的参数,我们可以使用以下函数msdn提供的变量和函数进行实现封装可变参数传递的函数;

type va_arg( va_list arg_ptr, type );

void va_end( va_list arg_ptr );

void va_start( va_list arg_ptr );   (UNIX version)

void va_start( va_list arg_ptr, prev_param );   (ANSI version)

参数含义:

type:参数类型

arg_ptr:指向参数列表的指针

prev_param:第一个参数的类型

msdn也提供了相关的例程,但是在JNI使用中遇到的这个问题,就直接使用JNI的例子进行测试;

/jni/Log.h

#include

#include

void Log_i(const char* log, ...);

/jni/Log.cpp

#include"Log.h"

void Log_i(const char* log, ...) {

va_list arg;

va_start(arg, log);

__android_log_vprint(ANDROID_LOG_INFO, "JniLogTools", log, arg);

va_end(arg);

}

// 测试:

#include

Log_i("打开文件错误 ! err = %d\n",errno);

\android-ndk-r9d\platforms\android-19\arch-arm\usr\include\android\log.h

//在这个头文件中可以看到:

typedef enum android_LogPriority {

ANDROID_LOG_UNKNOWN = 0,

ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */

ANDROID_LOG_VERBOSE,

ANDROID_LOG_DEBUG,

ANDROID_LOG_INFO,

ANDROID_LOG_WARN,

ANDROID_LOG_ERROR,

ANDROID_LOG_FATAL,

ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */

} android_LogPriority;

/*

* Send a formatted string to the log, used like printf(fmt,...)

*/

int __android_log_print(int prio, const char *tag, const char *fmt, ...)

#if defined(__GNUC__)

__attribute__ ((format(printf, 3, 4)))

#endif

;

/*

* A variant of __android_log_print() that takes a va_list to list

* additional parameters.

*/

int __android_log_vprint(int prio, const char *tag,const char *fmt, va_list ap);所以如果封装了可变参数,

不能使用__android_log_print();

需要使用为可变参数专门提供的函数 __android_log_vprint();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android百度地图画圆,android百度地图半径画圆

Java代码import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.graphics.Path;import android.graphics.Point;import android.os.Bundle;import…

android程序 美食分享,下厨房Android产品分析

下厨房产品宣传图一、产品概况1、产品简介下厨房菜谱是一款简单实用的美食应用,可以帮助用户寻找想吃的美食,搜索精美食谱,使用购买清单选购食材,与朋友分享自己制作的美食。2、主要竞品美食杰、豆果美食、好豆菜谱、香哈菜谱。二…

android短信的uri,Android系统Intent中的Uri使用

Intent应该算是Android中特有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料。都指定好后,只要调用startActivity(),Android系统会自动寻找最符合你指定要求的应用程序&…

简单html5作品,最新HTML5简单入门系列精选

随着HTML5的流行,LZ作为一个web开发者,也决定学习一下前端前沿技术。HTML5 是下一代的HTML,它将成为 HTML、XHTML 以及 HTML DOM 的新标准。它是W3C( World Wide Web Consortium)和WHATWG(Web Hypertext Application Technology Working Grou…

js在ie追加html,如何使用JavaScript将属性添加/更新到HTML元素?

如果你想要完全兼容,看起来容易的事实上是很棘手的。var e document.createElement(div);假设您要添加“div1”的ID。e[id] div1;e.id div1;e.attributes[id] div1;e.createAttribute(id,div1)这些都将工作,除了IE 5.5中的最后一个(这是古代历史&…

标题显示字数限制 html css,【紧急】我想问一下HTML的TITLE标签,里面的内容能填写多少个?有限制吗_html/css_WEB-ITnose...

我想问一下HTML的TITLE标签,里面的内容能填写多少个?有限制吗另外如果提高搜索引擎访问的质量,把我的网站排列在前面除了title和meta里面多放些关键词之外我还需要做什么?回复讨论(解决方案)title写太多没用。。。关键字就好了你到…

html实现图片加载动画效果,HTML5+javascript实现图片加载进度动画效果

在网上找资料的时候,看到网上有图片加载进度的效果,手痒就自己也写了一个。图片加载完后,隐藏loading效果。想看加载效果,请ctrelF5强制刷新或者清理缓存。效果预览:0%代码如下:HTML5javascript实现图片加载…

织梦html权限设置,详细的Dede织梦目录权限安全设置教程

用户织梦建站,网站安全不可忽视。给大家分享织梦各目录的安全设置教程。以供参考。/ 【站点上级目录】假如要使用后台的目录相关的功能需求有列出目录的权限 //0444/ 【站点根目录】需求执行和读取权限 假如要在根目录下面创建文件和目录的话需求有写入权限 //0755/…

html页面左右布局透明背景,HTML透明背景

我想创建一个透明背景,表格和一些文本的网页.我见过与此相关的帖子,但由于我对css不熟悉,我不知道怎么办我的代码才能运行.我只想要一个透明的背景,而这段代码让一切都变得透明.有人可以帮助.Toll ChargesClass 2 inc Private A$4.95 Class 2 inc Commercial A$13.95 …

html5开发app的缺点,全解HTML 5在移动Web应用的优劣势

关于HTML5HTML5具有语义学、本地存储、设备访问、连接性、多媒体、平面和三维效果、性能和集成和CSS3八大技术特征。让Web应用进入无插件时代,在功能和性能上逼近桌面应用。促使应用Web化,实现跨平台。HTML5规范草案将于2012年发布候选推荐版&#xff0c…

html怎么加断点快捷键,HTML添加断点 - osc_vyztkm1b的个人空间 - OSCHINA - 中文开源技术交流社区...

###1.前言 很多时候,页面的dom元素是动态添加的,而我们不知道具体是哪段js代码在操作这个dom元素,所以需要进行断点,对相应的dom元素进行断点监听,这样才能找出相关的js代码。在浏览器的调试工具中,切到ele…

黑群晖找不到设备_黑群晖洗白算号器SN、MAC地址

可算DX3615xs及DS3617xs SN号与MAC号运行程序每次执行生成20组SN号,选其中一个即可。祝你好运!!!生成DS3615xs SN序列号: 【1】 生成DS3617xs SN序列号: 【2】 生成网卡MAC序列号: 【3】 退…

html5 canvas 图像预览,html5-canvas 加载并显示图像

示例加载图像并将其放置在画布上var image new Image(); // 请参阅有关创建图像的注释image.src "imageURL";image.onload function(){ctx.drawImage(this,0,0);}创建图像有几种创建图像的方法new Image()document.createElement("img")作为HTML正文的…

施工部署主要不包括_专项施工方案编制至少应该包括以下内容及管片选型主要依据以下原则...

一、专项施工方案编制至少应该包括以下内容1、工程概况:分部分项工程概况、施工平面布置、施工要求和技术保证条件等。 2、 编制依据:相关法律、法规、规范、标准及图纸(国标图集)、施工组织设计等。 3、施工工艺技术:…

html能插入背景的行级元素,Html元素类型:块级元素、行内元素(内联元素)和行内块级元素...

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?html中的标签元素大体被分为三种不同的类型:块级元素、内联元素(又叫行内元素)和内联块级元素。事实上,我以前用的时候只是建立在对它们的初…

fox pro删除单条数据_Mac文件夹数据同步工具——Sync Folders Pro

Mac版同步文件夹Pro(文件夹数据同步工具)分享给大家!Mac版同步文件夹Pro是一种功能强大的文件夹数据同步工具,可帮助您同步两一个文件夹的内容,包括任何子文件夹。使用文件夹同步软件,允许您在任一方向或两…

初中生学计算机视频,推荐一下适合中学生的在线视频学习网站

英语语法省略句精讲一、并列复合句中某些相同成分的省略。1. This beeper works well,but that one doesnt (work well).这个寻呼机工作正常,但那个就不行。2. All uranium atoms do not have the same atomic weight. Some of them weigh 234 units&…

bp神经网络预测未来五年数据_预测 | 未来五年以太网收发器出货将达2.75亿只

新闻导读LC最新预测表明,从2021年到2025年间,供应商将售出2.75亿只以太网收发器,为其带来240亿美元的收入。但由于激烈的竞争、电信和企业网络投资的放缓,以及中美敌对升级可能导致中国云数据中心升级的延迟,LC下调了未…

计算机知识竞赛决赛流程,计算机知识竞赛决赛圆满结束!还不快戳?!

原标题:计算机知识竞赛决赛圆满结束!还不快戳?!温 馨 提 示 :热烈庆祝:青海大学 “计算机知识竞赛”圆满结束!计算机莅临本场比赛的嘉宾有:计算机协会指导老师:贾金芳老师…

开关造成的毛刺_玻璃面板开关钻孔加工

玻璃面板开关,也叫做钢化玻璃开关。与传统的面板开关不同在于它是用钢化玻璃制作而成,但是同样能够达到控制电路的作用,这种开关的设计理念是为了能够达到简约时尚的作用,同时也具有美观与安全性,可以说是受到许多家庭…