查看: 464|回复: 2

[未解决] 奇葩!什么叫"这里不允许在{令牌之前使用函数定义(...

[复制链接]
  • TA的每日心情
    无聊
    2019-10-27 08:38
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    发表于 2019-8-15 14:36 | 显示全部楼层 |阅读模式
    奇奇葩葩!什么叫”这里不允许在“{”令牌之前使用函数定义“(翻译,原a function-definition is not allowed here before '{' token),竟然所有函数(包过setup,loop)都是!
    晒代码:
    #include <Wire.h>
    int distance=5;
    void d(char Inward_outward,char direction_of,int speed,double few_seconds)
    {
      if(Inward_outward=='q' && direction_of=='s')
      {
        analogWrite(3,speed);
        delay(few_seconds);
      }else if(direction_of=='x' && Inward_outward=='q')
      {
        analogWrite(4,speed);
        delay(few_seconds);
      }else if(Inward_outward=='h' && direction_of=='s')
      {
        analogWrite(5,speed);
        delay(few_seconds);
      }else if(Inward_outward=='h' && direction_of=='x')
      {
        analogWrite(6,speed);
        delay(few_seconds);
      }
    }
    void _delay(float seconds){
        long endTime = millis() + seconds * 1000;
        while(millis() < endTime);
    }
    float rkcs()
    {//入口超声波
        pinMode(A0,OUTPUT);//入口的超声波trig接A0
        digitalWrite(A0,LOW);
        delayMicroseconds(2);
        digitalWrite(A0,HIGH);
        delayMicroseconds(10);
        digitalWrite(A0,LOW);
        pinMode(A1, INPUT);//echo a1
        return pulseIn(A1,HIGH,30000/58.0);
    }


    float ckcs()
    {//出口超shen
      pinMode(A2,OUTPUT);//trig
      digitalWrite(A2,0);
      delayMicroseconds(2);
      digitalWrite(A2,1);
      delayMicroseconds(2);
      digitalWrite(A2,0);
      pinMode(A3,INPUT);//echo
      return pulseIn(A3,1,30000/58.0);//换算
    }
    void entrance()//入口
    {
      if(rkcs<5)
      {
        d('q','s',200,1);
      }else{
        d('q','x',200,3);




    void setup()
    {
      pinMode(3,OUTPUT);
      pinMode(4,OUTPUT);
      pinMode(5,OUTPUT);
      pinMode(6,OUTPUT);
      d('h','x',200,1000);
    }


    void loop()
    {
      entrance;
      _export;
    }


    void _export()
    {
      if(ckcs<5)
      {
        d('h','x',200,1000);
      }
    }


    错误:
    正在编译项目...
    "D:\\Rjian\\arduino-nightly\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\\Rjian\\arduino-nightly\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Rjian\\arduino-nightly\\hardware\\arduino\\avr\\variants\\standard" "-ID:\\Rjian\\arduino-nightly\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\25768\\AppData\\Local\\Temp\\arduino_build_52251\\sketch\\l.ino.cpp" -o "C:\\Users\\25768\\AppData\\Local\\Temp\\arduino_build_52251\\sketch\\l.ino.cpp.o"
    C:\Users\25768\Desktop\__\收费\l\l.ino: In function 'void _delay(float)':


    C:\Users\25768\Desktop\__\收费\l\l.ino:25:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]


    C:\Users\25768\Desktop\__\收费\l\l.ino: In function 'void entrance()':


    C:\Users\25768\Desktop\__\收费\l\l.ino:52:11: warning: ISO C++ forbids comparison between pointer and integer [-fpermissive]


    l:60:1: error: a function-definition is not allowed here before '{' token


    l:69:1: error: a function-definition is not allowed here before '{' token


    l:75:1: error: a function-definition is not al
    lowed here before '{' token


    l:80:1: error: expected '}' at end of input


    l:80:1: error: expected '}' at end of input


    使用 1.0  版本的库 Wire 在文件夹: D:\Rjian\arduino-nightly\hardware\arduino\avr\libraries\Wire
    exit status 1
    a function-definition is not allowed here before '{' token


    ”错误“的翻译(仅参考):
    正在编译项目…
    “D: \ \ Rjian \ \ arduino-nightly \ \硬件\ \工具\ \ avr / bin / avr-g + +”- c - g - o - wall -Wextra化gnu c++ 11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error =缩小mmd -flto -mmcu = atmega328p -DF_CPU = 16000000 l -DARDUINO = 10810 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR”id: \ \ Rjian \ \ arduino-nightly \ \ \ \ arduino \ \ avr \ \硬件核心\ \ arduino”“id: \ \ Rjian \ \ arduino-nightly \ \硬件\ \ arduino \ \ avr \ \变体\ \标准”id: \ \ Rjian \ \ arduino-nightly \ \硬件\ \ arduino \ \ avr \ \图书馆\ \线\ \ src "用户" C: \ \ \ \ 25768 \ \ AppData当地\ \ \ \ Temp \ \ arduino_build_52251 \ \ \ \ l.ino草图。cpp " o " C: \ \ \ \ 25768 \ \用户当地AppData \ \ \ \ Temp \ \ arduino_build_52251 \ \ \ \ l.ino.cpp.o草图”
    C:\Users\25768\Desktop\__\收费\ \ l。ino:在函数“void _delay(float)”中:
    C:\Users\25768\Desktop\__\收费\ \ l。警告:有符号和无符号整数表达式之间的比较[-Wsign-compare]
    C:\Users\25768\Desktop\__\收费\ \ l。在函数“void entry()”中:
    C:\Users\25768\Desktop\__\收费\ \ l。警告:ISO c++禁止比较指针和整数[- fper]
    l:60:1: error:这里不允许在“{”令牌之前使用函数定义
    l:69:1: error:这里不允许在“{”令牌之前使用函数定义
    l:75:1: error:这里不允许在“{”令牌之前使用函数定义
    l:80:1:错误:在输入结束时期望“}”
    l:80:1:错误:在输入结束时期望“}”
    使用1.0版本的库线在文件夹: \ Rjian \ arduino-nightly \硬件\ arduino \ avr \图书馆\电线
    退出状态1
    这里不允许在“{”令牌之前使用函数定义

  • TA的每日心情
    擦汗
    2019-8-17 09:22
  • 签到天数: 44 天

    [LV.5]常住居民I

    发表于 2019-8-16 09:44 | 显示全部楼层
    1.entrance()少俩“ } ”补上,2。调用函数要加括号 3.不想声明的函数都要放到setup前面
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Blynk与m5stack basic以及uiflow的交互玩法
    Blynk与m5stack basic以及
    Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
    中文 字库 的8针 OLED 12864模块 arduino
    中文 字库 的8针 OLED 128
    屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
    【零知ESP8266项目篇】1 OLED天气时钟
    【零知ESP8266项目篇】1 O
    引述: 我们一起学了这么久的零知ESP8266的教程,是不是该检验一下自己了呢?在前面的
    创客集结号:温馨水杯
    创客集结号:温馨水杯
    今天,在创客集结号平台看到一个能自动感应的杯子,不仅神奇还非常有创意,该作品主要
    下载库报错
    下载库报错
    我在编写arduino1602液晶屏温湿度下载DHT_sensor_library库时,下载了库后,还没有改
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表