微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > zigbee协议栈有一句代码不理解

zigbee协议栈有一句代码不理解

时间:10-02 整理:3721RD 点击:
在看Zstack代码里面经常看到这样类代码,在函数参数前加一个void,下面举了一个例子
在uint16 GenericApp_ProcessEvent( uint8 task_id, uint16 events )函数里面就有这么一句代码
(void)task_id; // Intentionally unreferenced parameter
不知道这是什么意思,请帮忙解答一下,谢谢。

看注释就知道啦,故意引用的参数,目的是为了使任务和任务ID一起,好看

调用一下,防止报警

能讲详细的点吗?不太明白,给一些相关知识的网站也可以,谢谢

一般(void *)的是用于强制转换指针的意味,但是z-stack里的(void)有种解释是如上楼说的:避免警告,相当于task_id=task_id; 不编译成指令。(呵呵—但我用注释消去次句后,并无警告出现...)


纠正一下楼上,这句是 故意不引用的参数,没有引用到,可能有其他指示作用

如果编译报警等级选择很高,在函数的形参未在函数中使用时也会报警,编译时给你个warning,当然本身这个warning无伤大雅,你可以忽略他。但在一些强迫症程序员眼里,一个warning都不想留下的情况,就必须使用(void)param,来欺骗编译器有用到这个形参,事实上这句话不会产生任何代码的。
一句话: 消除编译告警!

学习了

学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top