代码如下:#include "Main.h"#include "Swit_A.h"#include "0_01_12g.H"#include "LED_Swit.h"#include "PORT.H"/* ............................................................... *//* ............................................................... */void main(void){// Set up the schedulervoid SCH_Init_T0();void SWITCH_Init();int X=0;int Y=0;SCH_Add_Task( GR, 0, 4000);SCH_Add_Task( void XX(X), 3000 , 8000);SCH_Add_Task( void XX(Y), 7000 , 8000);SCH_Add_Task( void YY(X), 4000 , 8000);SCH_Add_Task( void YY(Y), 8000 , 8000);SCH_Start();while(1){SCH_Dispatch_Tasks();}}用到的函数先前都有定义:void YY (a){ a=0;}void XX (b){ b=1;}但是函数名前不加void就会变成*** ERROR C267 IN LINE 56 OF Main.c: 'XX': requires ANSI-style prototype*** ERROR C193 IN LINE 56 OF Main.c: 'parameter': bad operand type*** ERROR C193 IN LINE 57 OF Main.c: 'parameter': bad operand type*** ERROR C193 IN LINE 58 OF Main.c: 'parameter': bad operand type*** ERROR C193 IN LINE 59 OF Main.c: 'parameter': bad operand type求助!!!!
2 回答
catspeake
TA贡献1111条经验 获得超0个赞
有人告诉你函数调用可以这样做么
SCH_Add_Task( void XX(X), 3000 , 8000);
1)SCH_Add_Task( XX(X), 3000 , 8000); 实参为函数调用XX(X)的返回值,形参为函数XX返回值的类型。
2)SCH_Add_Task( XX, 3000 , 8000); 实参为函数XX即函数XX的地址,形参为函数指针
void XX (b)
{ b=1;}
这不是C,C++的定义方式
C,C++:
1)新式定义
void XX (int b)
{ b=1;}
2)老式定义
void XX (b)
int b;
{ b=1;}
大话西游666
TA贡献1817条经验 获得超14个赞
因为你既然把这个函数调用放在了另一个函数里当参数,但是这个函数是void类型,不返回任何值当然会出错了,我不知道你调用那个void函数干嘛,但是如果你想返回一个值的话可以定义函数为int型或者其他需要的值,如果你只是想调用那个函数改变传进去的数的值,那么可以在之前调用,把改变过的值再放到下面的函数里 !希望帮到你。
- 2 回答
- 0 关注
- 86 浏览
添加回答
举报
0/150
提交
取消