c++ - 错误 : expected function body after function declarator

标签 c++

我正在尝试重写一些代码来运行 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/

相关文章:

c++ - OpenMP 的缩放问题

c++ - 使用 std::inner_product 时内积为零

c++ - 基于范围的循环和范围类型

c++ - 动态创建包含另一个动态创建的结构数组的结构数组时的内存管理

C++ 标准对未实例化模板的要求

c++ - 继承还是包容? C++

c++ - MAC OS X下如何配置TCP_KEEPALIVE

c++ - 无法使用 istream 和 ostream 指针跨 Linux 管道写入

c++ - 有没有优雅的方式在多态 lambda 中编写类型别名

c++ - 如何正确比较两个无符号字符?