Arduino结构变量似乎在没有明确重新赋值的情况下被重新赋值。
创始人
2024-09-12 19:30:26
0

在Arduino中,结构变量在没有明确重新赋值的情况下被重新赋值的情况可能是由于指针操作造成的。以下是一个示例代码和解决方法:

struct MyStruct {
  int value;
};

void setup() {
  Serial.begin(9600);

  MyStruct structVar;
  MyStruct* structPointer = &structVar; // 将指针指向结构变量

  structPointer->value = 10; // 通过指针修改结构变量的值

  Serial.println(structVar.value); // 输出结果为 10

  structVar.value = 20; // 明确重新给结构变量赋值

  Serial.println(structVar.value); // 输出结果为 20
}

void loop() {
  // 程序循环
}

在上述示例代码中,structPointer是一个指向结构变量structVar的指针。当我们使用structPointer修改结构变量的值时,实际上是直接修改了结构变量本身。因此,在输出structVar.value时,我们会得到修改后的值。

如果我们想要避免这种情况,可以在重新给结构变量赋值时,使用memcpy函数将整个结构体的数据复制到一个新的结构变量中,从而避免指针操作带来的问题。以下是修改后的代码示例:

struct MyStruct {
  int value;
};

void setup() {
  Serial.begin(9600);

  MyStruct structVar;
  MyStruct* structPointer = &structVar; // 将指针指向结构变量

  structPointer->value = 10; // 通过指针修改结构变量的值

  Serial.println(structVar.value); // 输出结果为 10

  MyStruct newStructVar; // 创建一个新的结构变量用于复制数据

  memcpy(&newStructVar, structPointer, sizeof(structVar)); // 将数据从结构变量复制到新的结构变量

  newStructVar.value = 20; // 明确重新给新的结构变量赋值

  Serial.println(newStructVar.value); // 输出结果为 20
}

void loop() {
  // 程序循环
}

在修改后的代码中,我们创建了一个新的结构变量newStructVar,并使用memcpy函数将structVar中的数据复制到newStructVar中。然后,我们可以重新给newStructVar赋值,而不会影响原始的结构变量structVar。这样,我们就避免了结构变量在没有明确重新赋值的情况下被重新赋值的问题。

相关内容

热门资讯

第五俱乐部(wepoke真的)... 第五俱乐部(wepoke真的)外挂透明挂辅助器(辅助挂)可靠技巧(有挂细节)-哔哩哔哩;实战中需综合...
五个检测!wpk怎么下载ios... 五个检测!wpk怎么下载ios(外挂被实锤)原来真的有挂(有挂实锤)-哔哩哔哩;支持2-10人实时对...
2个挂!德扑之星电脑版(数据解... 2个挂!德扑之星电脑版(数据解析)透视辅助(有挂分析)-哔哩哔哩关于德扑之星电脑的基本介绍、功能特点...
4修改器!白金岛放炮罚有挂吗(... 4修改器!白金岛放炮罚有挂吗(辅助挂)太坑了其实真的有挂(确实有挂)-哔哩哔哩是一款可以让一直输的玩...
3个规律!用ai外挂打德州有用... 3个规律!用ai外挂打德州有用(辅助机器人)透视(真的有挂)-哔哩哔哩这是由厦门游乐互动科技有限公司...
第3新版(德扑手机上)外挂透明... 第3新版(德扑手机上)外挂透明挂辅助APP(辅助挂)安装教程(有挂规律)-哔哩哔哩;wpk透视辅助官...
第4个助手!德扑ai软件(牌力... 第4个助手!德扑ai软件(牌力分析软件)辅助透视(有挂讲解)-哔哩哔哩1、玩家可以在德扑ai软件软件...
第九计算器!网易棋牌一直输为什... 第九计算器!网易棋牌一直输为什么(辅助挂)太坑了其实真的有挂(有挂解密)-哔哩哔哩1、任何德州ai辅...
第四个技巧!微扑克app(伙牌... 第四个技巧!微扑克app(伙牌技巧)透视辅助(的确有挂)-哔哩哔哩;wpk透视辅助官方版是专为公司和...
第6专用(德州免费)外挂透明挂... 1、第6专用(德州免费)外挂透明挂辅助神器(透视)德州论坛(有挂详情)-哔哩哔哩;详细教程。2、德州...