【发布时间】:2018-07-25 20:50:32
【问题描述】:
我对 Arduino 编程还很陌生,对如何将结构与函数一起使用有点困惑。
下面是一个例子 - 我有 2 组数据存储在一个结构中,struct1 - firstSet 和 secondSet。我想获取这些集合中的每一个,并将函数应用于它们,更改所有值。然后我想将新值打印到控制台,每次迭代时数字应该会变大,firstSet 的速度是 secondSet 的两倍。
这不会发生,并且会一遍又一遍地打印初始值。我不确定我需要做什么才能将这些值反馈到它们的原始结构中。
我一直在考虑添加一条返回线,并将 void 更改为其他内容(int 和 void*),但我似乎真的无法解决这个问题。甚至可能吗?或者有没有更好的方法来做到这一点?提前致谢!
#include "Arduino.h"
//The setup function is called once at startup of the sketch
struct struct1
{
int val1 = 1;
int val2 = 2;
int val3 = 3;
};
struct1 firstSet;
struct1 secondSet;
void func1(struct struct1)
{
struct1 dataSet;
dataSet.val1 = dataSet.val2;
dataSet.val2 = dataSet.val3;
dataSet.val3++;
}
void setup()
{
Serial.begin(9600);
while (! Serial);
Serial.println("Console Online");
}
void printAll()
{
Serial.println(firstSet.val1);
Serial.println(firstSet.val2);
Serial.println(firstSet.val3);
Serial.println("---");
Serial.println(secondSet.val1);
Serial.println(secondSet.val2);
Serial.println(secondSet.val3);
Serial.println("---END---");
}
// The loop function is called in an endless loop
void loop()
{
func1(firstSet);
func1(firstSet);
func1(secondSet);
printAll();
delay (1000);
}
【问题讨论】:
-
如果我理解正确,通过引用传递就是你要找的。获得一本好的 C++ 书来学习基础知识 (stackoverflow.com/questions/388242/…)
-
你需要给
func1的参数命名。
标签: c++ function data-structures arduino