【问题标题】:explicit type is missing ("int" assumed)缺少显式类型(假定为“int”)
【发布时间】:2019-03-29 19:08:23
【问题描述】:

我正在尝试使用 IAR 开发一个项目。 这是错误消息: 错误[P​​e260]:缺少显式类型(假定为“int”)

问候。

当我尝试时: void send_data_byte(unsigned char dattt) {
我看到一个新错误: 错误[P​​e159]:声明与之前的“send_data_command”不兼容

我的 sen_data_command 函数在下面

send_data_byte(unsigned char dattt){  
   for(j=0;j<8;j++){  
 pwmstart(1);  
 pwmstop(18);  
  if(dattt & 0x01){  
    __delay_cycles(1687);
  dattt=dattt>>1;  
  }  
 else  
  {  
 __delay_cycles(562); 
   dattt=dattt>>1;  
  }  
  }  
 pwmstop(1);  


  }  
  void send_data_command(unsigned char dat){  

 for (int r=0;r<160;r++)
   {pwmstart(1);}  
 for (int y=0;y<80;y++)
   {pwmstop(1);} 
  send_data_byte(dat);  
  repeat();  
  }  

【问题讨论】:

    标签: c iar


    【解决方案1】:

    您需要显式声明函数的返回类型。在这种情况下,如果您没有什么可以返回,您应该将其声明为void

    void send_data_byte(unsigned char dattt) {   
    

    【讨论】:

    • 我试过了,但是有一个新的错误。我添加了细节。请再看一遍好吗?
    【解决方案2】:

    错误消息表明,您没有显式声明函数send_data_type 的任何返回类型。它建议在send_data_type 之前放置一个int。错误按摩建议您按以下方式编写:

    int send_data_byte(unsigned char dattt) {   
    

    如果不需要返回任何内容,也可以将函数声明为 void。

    void send_data_byte(unsigned char dattt) {   
    

    您的代码中还有一个错误是,在函数send_data_byte 中您没有声明j。以下部分代码

    send_data_byte(unsigned char dattt){  
    for(j=0;j<8;j++){ 
    

    应该是,

    send_data_byte(unsigned char dattt){  
    int j;
    for(j=0;j<8;j++){ 
    

    【讨论】:

      【解决方案3】:

      1999 年之前的旧版 C 语言有“隐式int”规则。如果您声明了一个函数而没有指定返回类型,则假定它返回一个int 类型的结果。 1999 年的标准删除了这条规则,并强制要求在任何函数声明或定义中指定返回类型。许多编译器通过允许此类声明或通过非致命警告来诊断旧代码来迎合旧代码。

      即使在 1999 年之前的 C 中,也没有真正的理由利用“隐式int”规则。如果一个函数返回一个int 结果,你总是可以显式地声明它。 (非常旧的 C,在 1989 年之前,没有 void,但现在对 1989 后的 C 的支持基本上是普遍的。)

      至于你的其他错误:

      Error[Pe159]: declaration is incompatible with previous "send_data_command"
      

      它表示你有两个声明,或者一个声明和一个定义,send_data_command,它们在某些方面有所不同。您的问题中只出现了一次send_data_command,因此您没有向我们展示导致该错误的代码。确保您的程序中对send_data_command 的所有引用都是一致的,并确保声明——特别是原型(它指定任何参数的类型)——在您调用它的任何时候都是可见的。

      (顺便说一句,如果缩进正确,您的代码会更容易阅读。有一些自动化工具可以帮助您做到这一点。缩进应该反映代码的嵌套结构。)

      【讨论】:

        猜你喜欢
        • 2013-11-22
        • 2013-10-26
        • 2015-05-02
        • 2016-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-23
        • 1970-01-01
        相关资源
        最近更新 更多