gpt4 book ai didi

c++ - 对库对象的 C 引用

转载 作者:行者123 更新时间:2023-11-30 20:34:52 25 4
gpt4 key购买 nike

我正在使用我的 arduino 来提高我的 C 知识。我进行了多次尝试,但无法使其工作:-(我希望有一个人可以帮助我。

我有来自库的不同对象。

Adafruit_NeoPixel hours = Adafruit_NeoPixel(NUMPIXELS, .....);
Adafruit_NeoPixel minutes = Adafruit_NeoPixel(NUMPIXELS, ....-);
Adafruit_NeoPixel seconds = Adafruit_NeoPixel(NUMPIXELS, .....);

现在我想使用指向声明的库对象的指针多次调用函数(小时、分钟和秒 => E.G POINTERTOLIB ?)

void showTime(int iShowTime, **POINTERTOLIB** ) 
{
int ones = iShowTime % 24;

//set LEDs according to acutal Time
for (int i=0; i<8; i++)
{
((ones >> i) & 1) ? **POINTERTOLIB** .setPixelColor(i, **POINTERTOLIB** .Color(0,150,0)) : **POINTERTOLIB** .setPixelColor(i, hours.Color(0,0,0));
**POINTERTOLIB** .setBrightness(40);
}
**POINTERTOLIB** .show(); // This sends the updated pixel color to the hardware.
}

感谢您的帮助

最佳答案

由于您想使用类 Adafruit_NeoPixel 的不同对象(小时、分钟、秒)多次调用函数 showTime,那么您可以使用以下签名:

void showTime(int iShowTime, Adafruit_NeoPixel *pObj);

因此,现在 showTime 需要一个指向 Adafruit_NeoPixel 类 的任何有效对象的指针。

showTime内,您可以调用类Adafruit_NeoPixel的member_functions,如下所示:

pObj->setPixelColor() 
pObj->Color().

您可以按如下方式调用showTime:

showTime(3, &hours); or showTime(3, &minutes);
showTime(3, &hours); or showTime(3, &hours);
showTime(3, &hours); or showTime(3, &seconds);

关于c++ - 对库对象的 C 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41056521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com