I wrote simple program to test debug macros, but it gives me compilation error
//Program:
#include <Arduino.h>
#define DEBUG
#ifdef DEBUG
#define DPRINT(...) Serial.print(__VA_ARGS__)
#define DPRINTLN(...) Serial.println(__VA_ARGS__)
#else
// define blank line
#define DPRINT(...)
#define DPRINTLN(...)
#endif
void setup() {
// put your setup code here, to run once:
String str ="Hello MrNams";
DPRINT("Here is my string %s",str);
}
void loop() {
// put your main code here, to run repeatedly:
}
Compilation Error:
src/main.cpp: In function 'void setup()':
src/main.cpp:7:50: error: no matching function for call to 'HardwareSerial::print(const char [21], String&)'
#define DPRINT(...) Serial.print(__VA_ARGS__)
^
src/main.cpp:19:3: note: in expansion of macro 'DPRINT'
DPRINT("Here is my string %s",str);
^~~~~~
In file included from C:/Users/<User Name>/.platformio/packages/framework-arduinoespressif32/cores/esp32/Stream.h:26,
from C:/Users/<User Name>/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:177,
from src/main.cpp:2:
C:/Users/<User Name>/.platformio/packages/framework-arduinoespressif32/cores/esp32/Print.h:81:12: note: candidate: 'size_t Print::print(const __FlashStringHelper*)'
size_t print(const __FlashStringHelper *);
^~~~~
C:/Users/<User Name>/.platformio/packages/framework-arduinoespressif32/cores/esp32/Print.h:81:12: note: candidate expects 1 argument, 2 provided
C:/Users/<User Name>/.platformio/packages/framework-arduinoespressif32/cores/esp32/Print.h:82:12: note: candidate: 'size_t Print::print(const String&)'
size_t print(const String &);