首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缺少显式类型(假定为“int”)

缺少显式类型(假定为“int”)
EN

Stack Overflow用户
提问于 2019-03-30 03:08:24
回答 3查看 4K关注 0票数 0

我正在尝试和IAR一起开发一个项目。以下是错误消息: ErrorPe260:缺少显式类型(假设为“int”)

致以问候。

当我尝试时: void send_data_byte(unsigned char dattt) {

我看到一个新的错误: ErrorPe159:声明与以前的"send_data_command“不兼容。

我在中的sen_data_command函数在下面

代码语言:javascript
复制
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);  


  }  
代码语言:javascript
复制
  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();  
  }  
EN

回答 3

Stack Overflow用户

发布于 2019-03-30 03:10:38

您需要显式声明函数的返回类型。在这种情况下,如果没有要返回的内容,则应将其声明为void

代码语言:javascript
复制
void send_data_byte(unsigned char dattt) {   
票数 2
EN

Stack Overflow用户

发布于 2019-03-30 03:23:03

错误消息指出,您没有显式声明函数send_data_type的任何返回类型。它建议在send_data_type之前放一个int。错误提示建议你用下面的方式写:

代码语言:javascript
复制
int send_data_byte(unsigned char dattt) {   

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

代码语言:javascript
复制
void send_data_byte(unsigned char dattt) {   

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

代码语言:javascript
复制
send_data_byte(unsigned char dattt){  
for(j=0;j<8;j++){ 

应该是,

代码语言:javascript
复制
send_data_byte(unsigned char dattt){  
int j;
for(j=0;j<8;j++){ 
票数 2
EN

Stack Overflow用户

发布于 2019-03-30 04:03:44

在1999年之前,C语言的旧版本有一个“隐式int”规则。如果在没有指定返回类型的情况下声明了一个函数,则假定该函数返回类型为int的结果。1999年的标准放弃了这一规则,并强制要求在任何函数声明或定义上指定返回类型。许多编译器通过允许这样的声明来迎合旧代码,或者通过使用非致命警告来诊断它们。

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

至于你的其他错误:

代码语言:javascript
复制
Error[Pe159]: declaration is incompatible with previous "send_data_command"

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55424088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档