HA协议中hal_led.h和hal_led.c中定义的函数形参不一样。
时间:10-02
整理:3721RD
点击:
最近在看HA协议下的LED的驱动函数,发现一个问题,hal_led.h声明的函数原型和hal_led.c中定义的函数形参不一样,
如在hal_led.c中定义函数 HalLedBlink (uint8 leds, uint8 numBlinks, uint8 percent, uint16 period),
但hal_led.h却声明成了extern void HalLedBlink( uint8 leds, uint8 cnt, uint8 duty, uint16 time );
请问,为啥这样软件没有报错,而且还能调用此函数?
如图所示
.h里面定义的函数类型,实际上对于参数只检测类型和数量是否一致,不检测定义的名称是否一致,就算不写名称,只写类型也是正确的。所以不会报错,而且你可以对比定义的变量名的意思是相同的,不用担心,这里没有错误。
嗯,形参的数据类型是一样的,之前写程序以为类型和变量名得全部一样呢,又学了一招。非常感谢