繁体   English   中英

Android-跨平台友好的调试/记录器宏

[英]Android - cross-platform friendly debug/logger macro

我正在构建在android和iOS上都使用的C ++代码。 我需要某种形式的调试器宏才能将调试轻松地插入代码中。 例如,我在想这样的事情:

#ifdef ANDROID 
#   define MY_DEBUG(debugmsg) __android_log_print(ANDROID_LOG_INFO, ANDROID_DEBUG_TAG,debugmsg)
#   define MY_DEBUG(debugmsg, mystr)    __android_log_print(ANDROID_LOG_INFO, ANDROID_DEBUG_TAG,debugmsg,mystr)
#elif defined (iOS)
#   define MY_DEBUG(debugmsg) printf(debugmsg)
#   define MY_DEBUG(debugmsg, mystr)    printf(debugmsg, mystr)
#endif 

因此,例如,我可以使用MY_DEBUG(“ hello%s”,“ world”)和MY_DEBUG(“ hello”)

但是,它抱怨宏重新定义(也是正确的)。 如何创建宏..“过载”,或者输入多个参数?

另外-printf()是否将数据发送到iOS控制台?

您不能像使用函数那样重载宏,因为自C以来,预处理器并没有发生很大的改变,甚至根本没有改变。一种常见的方法是使用MY_DEBUG和MY_DEBUG2等。

各种宏,但我在多平台代码中避免使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM