1
我正在構建Android和iOS上使用的C++代碼。我需要某種形式的調試宏來輕鬆地將調試插入到代碼中。 例如,我在想是這樣的:Android - 跨平臺的友好調試/記錄器宏
#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( 「%s您好」, 「世界」)和MY_DEBUG( 「你好」)
然而,抱怨宏重新定義(並且正確如此)。我如何製作一個宏...'過載',或者如果輸入了多個參數?
另外 - 是否printf()發送數據到iOS控制檯?
我明白了。是否有一個原因,你爲什麼避免在多平臺代碼?任何具體的Android/iOS? – KaiserJohaan
@KaiserJohaan我有不幸的樂趣,不得不使用一些較老的工具,所以我儘量避免使用C99中的「新」功能。 Variadic宏在Android和iOS上應該沒問題,但我從未嘗試過。 – IronMensan