我正在尝试重写一些代码来运行 neopixel strip。我不断收到错误消息:函数声明符后的预期函数体 for(int i=0; i<3; i++){ 我不太确定如何修复它。任何人都可以帮助我克服这个障碍并使这段代码正常工作吗?我曾尝试用谷歌搜索并对其进行返工,但这只会导致弹出更多错误,我绝对不确定如何更正它们。如果你不知道,我在这方面比较新,正在努力学习。任何帮助,将不胜感激。
#define NUM_LEDS 64
#include "FastLED.h"
#define DATA_PIN 1
#define FORWARD 0
#define BACKWARD 1
#define SLOW 250
#define MEDIUM 50
#define FAST 5
CRGB leds[NUM_LEDS];
boolean direction = FORWARD;
void setup()
{ FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
randomSeed(analogRead(0));
}
void loop()
for(int i=0; i<3; i++){
CRGB c1 = randomColor();
CRGB c2 = randomColor();
stripes(c1,c2,5);
delay(2000);
stripes(c2,c1,5);
delay(2000);
rainbow(0,NULL);
delay(3000);
colorWipe(CRGB::Black,FORWARD,FAST);
delay(3000);
void colorWipe(CRGB c, int speed, int direction);
void for(int i=0; i<NUM_LEDS; i++){
if(direction == FORWARD){
leds[i] = c;
}
else{
leds[NUM_LEDS-1-i] = c;
}
FastLED.show();
delay(speed);
void rainbow(int cycles, int speed){
if(cycles == 0){
for(int i=0; i< NUM_LEDS; i++) {
leds[i] = Wheel(((i * 256 / NUM_LEDS)) & 255);
}
FastLED.show();
}
else{
for(int j=0; j<256*cycles; j++) {
for(int i=0; i< NUM_LEDS; i++) {
leds[i] = Wheel(((i * 256 / NUM_LEDS) + j) & 255);
}
FastLED.show();
delay(speed);void stripes(CRGB c1, CRGB c2, int width){
for(int i=0; i<NUM_LEDS; i++){
if(i % (width * 2) < width){
leds[i] = c1;
}
else{
leds[i] = c2;
}
}
FastLED.show();
CRGB Wheel(byte WheelPos) {
if(WheelPos < 85) {
return CRGB(WheelPos * 3, 255 - WheelPos * 3, 0);
}
else if(WheelPos < 170) {
WheelPos -= 85;
return CRGB(255 - WheelPos * 3, 0, WheelPos * 3);
}
else {
WheelPos -= 170;
return CRGB(0, WheelPos * 3, 255 - WheelPos * 3);
}
}
CRGB randomColor(){
return Wheel(random(256));
}
最佳答案
我认为错误消息对问题的描述相当清楚。
expected function body after function declarator for(int i=0; i<3; i++){
这是说 for(int i=0; i<3; i++){
之前的行是一个函数声明。那将是准确的,因为之前的行是 void loop()
, 它声明函数 loop
.
错误消息还说接下来需要一个函数体。这也是准确的。在类定义之外,函数声明后的第一个非空格字符需要是分号(表示函数体在别处)或左花括号(表示函数体的开始)。您的代码两者都没有。
所以给编译器它想要的:void loop()
的函数体.即把void loop()
后面的空行改掉到
{
(然后确保你所有的牙套都是平衡的。)
关于c++ - 错误 : expected function body after function declarator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58150511/