Implicit declaration of function 'ether_ntoa' is invalid in C99


报错代码:
strcpy(temp, (char *)ether_ntoa(LLADDR(sdl)));

解决方法:

导入这三个头文件即可,
#include <sys/types.h>
#include <sys/socket.h>
#include <net/ethernet.h>

然后上面那行代码会有一个警告:"Incompatible pointer types passing 'caddr_t' (aka 'char *') to parameter of type 'const struct ether_addr *'" ;
可以在LLADDR的前面加上(const struct ether_addr *) 也就是这样:
strcpy(temp, (
char *)ether_ntoa((const struct ether_addr *)LLADDR(sdl)));
这样就没有警告了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM