android中c文件log做宏打印

android有时候我们需要在c文件中,自己定义打印的格式,那我们可以使用宏,下面我举个在adbd中自己打印的log宏

#if !ADB_HOST
#  define  LOG(...)                                \
        do {                                       \
            __android_log_print(                   \
                ANDROID_LOG_INFO,                  \
                "adbd",                      	   \
                __VA_ARGS__ );					   \
        } while (0)
#else
#define LOG(...) ((void)0)

#endif  /* !ADB_HOST */

这里的adbd代表是LOG的TAG,__VA_ARGS__ 代表是可变的参数,ANDROID_LOG_INFO代表打印的等级


如何使用呢?

LOG("%s: A_SYNC send_packet\n", __FUNCTION__);
使用的使用我们可以把参数__FUNCTION__作为传参,这个参数代表当前函数的字符串。


当然我们也可以想办法把__FUNCTION__加入到宏,而不是在用的时候用它。



你可能感兴趣的:(android中c文件log做宏打印)