【发布时间】:2020-09-18 06:31:24
【问题描述】:
我有一个公共函数 save 接受文件 configuration.cpp
中的rw_ssid 和rw_pswd char 类型变量
namespace Eeprom
{
void configuration::initialize(){
EEPROM.begin(512);
}
void configuration::save(char* rw_ssid, char* rw_pswd) {
for (int i = 0; i < 128; ++i) {
EEPROM.write(i, 0);
delay(10);
}
for (int i = 0; i < rw_ssid.length(); ++i) {
EEPROM.write(i, rw_ssid[i]);
}
for (int i = 0; i < rw_pswd.length(); ++i) {
EEPROM.write(32 + i, rw_pswd[i]);
}
EEPROM.commit();
Serial.println("Written to EEPROM!");
Serial.print("SSID: ");
Serial.println(rw_ssid);
Serial.print("PASS: ");
Serial.println(rw_pswd);
Funcs::connection::connectWifi(rw_ssid, rw_pswd);
Serial.print("IP connection: ");
Serial.println(WiFi.localIP());
}
void configuration::save(char* rw_ssid, char* rw_pswd) {
for (int i = 0; i < 128; ++i) {
EEPROM.write(i, 0);
delay(10);
}
for (int i = 0; i < rw_ssid.length(); ++i) {
EEPROM.write(i, rw_ssid[i]);
}
for (int i = 0; i < rw_pswd.length(); ++i) {
EEPROM.write(32 + i, rw_pswd[i]);
}
EEPROM.commit();
Serial.println("Written to EEPROM!");
Serial.print("SSID: ");
Serial.println(rw_ssid);
Serial.print("PASS: ");
Serial.println(rw_pswd);
Funcs::connection::connectWifi(rw_ssid, rw_pswd);
Serial.print("IP connection: ");
Serial.println(WiFi.localIP());
}
}
然后我有它的头文件
configuration.h
namespace Eeprom
{
class configuration
{
public:
static void initialize();
static char* read();
static void save(char* recvd_ssid, char* recvd_pass);
};
}
编译时出现此错误:
sketch/configuration.cpp: In static member function 'static void Eeprom::configuration::save(char*, char*)':
configuration.cpp:19: error: request for member 'length' in 'rw_ssid', which is of non-class type 'char*'
for (int i = 0; i < rw_ssid.length(); ++i) {
^
configuration.cpp:22: error: request for member 'length' in 'rw_pswd', which is of non-class type 'char*'
for (int i = 0; i < rw_pswd.length(); ++i) {
^
configuration.cpp:34: error: 'WiFi' was not declared in this scope
Serial.println(WiFi.localIP());
^
sketch/configuration.cpp: In static member function 'static char* Eeprom::configuration::read()':
configuration.cpp:41: error: expected identifier before numeric constant
char* read_ssid_pswd = [2];
^
sketch/configuration.cpp: In lambda function:
configuration.cpp:41: error: expected '{' before ';' token
char* read_ssid_pswd = [2];
^
sketch/configuration.cpp: In static member function 'static char* Eeprom::configuration::read()':
configuration.cpp:41: error: cannot convert 'Eeprom::configuration::read()::__lambda0' to 'char*' in initialization
configuration.cpp:55: error: invalid conversion from 'char*' to 'char' [-fpermissive]
read_ssid_pswd[0] = rw_ssid;
^
configuration.cpp:56: error: invalid conversion from 'char*' to 'char' [-fpermissive]
read_ssid_pswd[1] = rw_pswd;
^
exit status 1
request for member 'length' in 'rw_ssid', which is of non-class type 'char*'
我是 cpp 新手,边做边学。
【问题讨论】:
标签: c++ arrays function char arduino-c++