【发布时间】:2021-12-20 21:10:24
【问题描述】:
我有以下情况,但我不知道我做错了什么。我显然在参数定义中有错误的类型,但我不知道正确的语法是什么。
dto.h
...
class Dto
{
public:
struct msg
{
int id;
byte type;
char text[100];
};
char* getText();
void setText(char* text);
private:
Dto::msg message;
...
dto.cpp
...
char* Dto::getText()
{
return Dto::message.text;
}
void Dto::setText(char* text)
{
Dto::message.text = text;
}
...
当我编译时,我得到:
Dto.cpp:85:30: error: incompatible types in assignment of 'char*' to 'char [100]' Dto::message.text = text;
【问题讨论】:
-
你可能想使用
strcpy(message.text, text); -
或使用
std::strings -
@TedLyngmo 不在 Arduino 上。
-
@gre_gor 我过去在 Arduino 上使用过它——但是自从我发现 Arduino STL 不做移动语义之后,我就停止了。它仍然比使用原始
char数组 i.m.o 更安全/更容易。也许 ArduinoString是一个选择。