目前,我有此代码:
void writeLog(__FlashStringHelper* mes){
Serial.println(mes);
if(!logfile){
logfile = SD.open(logpath,FILE_WRITE);
if(!logfile) return;
}
logfile.write(mes);
}
void writeLog(char* mes){
Serial.println(mes);
if(!logfile){
logfile = SD.open(logpath,FILE_WRITE);
if(!logfile) return;
}
logfile.write(mes);
}
有没有一种方法可以重载函数以接受char *和__FlashStringHelper *而不编写主体两次?
谢谢!
最佳答案
如果可以使用模板,请尝试以下操作:
template <typename T>
void writeLog(T mes) {
Serial.println(mes);
if (!logfile) {
logfile = SD.open(logpath, FILE_WRITE);
if (!logfile) return;
}
logfile.write(mes);
}
关于c++ - 在函数中重载运算符,而无需编写主体2次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60617129/