在C语言中,函数参数中的"..."表示可变参数,也称为可变长度参数或不定参数。在函数定义中,"..."表示函数可以接受任意数量的参数。但是,这些参数的类型和数量在函数定义中是未知的。

在你的代码中,当你尝试将"..."传递给__android_log_print函数时,由于它的参数类型和数量是不确定的,编译器无法正确解析这个语法。因此,编译器会报错。

要正确使用可变参数,你可以使用stdarg.h头文件中的宏来处理可变参数列表。下面是一个示例:

#include <stdarg.h>

void LOGD(const char* fmt, ...){
    va_list args;
    va_start(args, fmt);
    __android_log_vprint(ANDROID_LOG_DEBUG, "TSW", fmt, args);
    va_end(args);
}

在这个示例中,我们使用了va_list、va_start、va_end和__android_log_vprint宏来正确处理可变参数。va_list是一个指向可变参数列表的类型,va_start和va_end用于在使用可变参数之前和之后初始化和清理va_list。__android_log_vprint类似于__android_log_print,但它接受一个va_list作为参数。

通过使用上述代码,你就可以正确地将可变参数传递给__android_log_print函数了

void LOGDconst char fmt __android_log_printANDROID_LOG_DEBUGTSWfmt;我这个函数传人__android_log_print时爆红了不能这样传吗

原文地址: https://www.cveoy.top/t/topic/iH9N 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录