keil吧 关注:15,058贴子:30,517
  • 3回复贴,共1

程序出错了,不知道为什么,请教一下

只看楼主收藏回复

#include<reg52.h>
#define uint unsigned int//宏定义
#define uchar unsigned char
uchar temp;//全局变量声明
void delay(uint);//函数的声明,需要注明参数的类型
void _crol_(temp);
void main()
{
temp=0xfe;
P1=temp;
while(1)
{
temp=_crol_(temp,1);
delay(600);
P1=temp;
}
}
void delay(uint z)
{
uint x,y ;
for(x=100;x>0;x--)
for(y=z;y>0;y--);
}
以上是我的源代码,但是编译后报错出来
流水灯.C(13): error C208: '__crol_': too many actual parameters
(流水灯是文件名),在crol函数那一行,这个函数应该是库中的,为什么出现这种错误,请高手帮忙解答



IP属地:上海1楼2012-07-07 14:54回复
    void _crol_(temp);
    这个有问题,如果_crol_是库文件,那么你就不应该有void _crol_(temp)这个声明了,
    至少这个声明的函数应该有两个参数,还有void _crol_(temp)声明中应该是变量类型,而不应该是变量。而且你没有包含相应库的头文件。
    希望这样解释能帮到你。
    


    IP属地:陕西2楼2012-07-11 18:07
    回复
      2025-12-27 20:56:17
      广告
      不感兴趣
      开通SVIP免广告
      _corl_ 这个是函数在<intrins.h>头文件中的,不是在<reg52.h>,所以在程序前加一个头文件
      #include<reg52.h>
      #include<intrins.h>//包含_corl_
      #define uint unsigned int//宏定义
      #define uchar unsigned char
      uchar temp;//全局变量声明
      void delay(uint);//延时函数的声明,需要注明参数的类型
      //void _crol_(temp);//这个声明就不用了
      void main()
      {
      temp=0xfe;
      P1=temp;
      while(1)
      {
      temp=_crol_(temp,1);
      delay(600);
      P1=temp;
      }
      }
      void delay(uint z)
      {
      uint x,y ;
      for(x=100;x>0;x--)
      for(y=z;y>0;y--);
      }
      


      IP属地:广东3楼2012-07-14 02:14
      回复
        #include <intrins.h> 加入这段代码,问题应该就解决了


        4楼2015-08-24 14:16
        回复