日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/11 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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();

總結

以上是生活随笔為你收集整理的android打印参数类型,__android_log_vprint可变参数打印日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。