weixin_50697999 2021-09-19 09:05 采纳率: 73.7%
浏览 52
已采纳

51单片机函数声明和函数传参的问题。


sbit SMG1=P0^0;
sbit SMG2=P0^1;

void Change_SMG(sbit smg)
{
    u8 j;
    for(j=0;j<16;j++)
    {
        smg    = smgduan[j];
        delay(5000);
        P0 = 0x00;
    }
}

1,在51单片机上,函数不用先声明吗?我没声明也可以用啊。

2,向上面的代码,能像这样Change_SMG(SMG1)把SMG1传入Changg_SMG函数吗?

编译出错,不知道错在哪里了

  • 写回答

1条回答 默认 最新

  • yyyyyhq 2021-09-19 09:21
    关注

    sbit类型做不了函数参数的,他是给寄存器取的一个名字。
    关于函数没声明可以用,你是不是在主函数上面定义的他,或者说编译的时候没警告吗,有完整的代码吗。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月11日
  • 创建了问题 9月19日

悬赏问题

  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退