[英]C - discard pointer parameter
我不确定如何表达这个问题,因此我将举例说明我要做什么。
我有一个从FIFO获取下一个字节的函数。
void fifoGet(uint8_t * byte) {
*byte = somefunction();
}
我正在制作一个函数来刷新FIFO
void fifoFlush(void) {
uint8_t i;
uint8_t discardByte;
for (i=0; i<fifoLength; i++) {
fifoGet(&discardByte);
}
}
我想知道的是,由于不需要不需要的discardByte
,因此可以分配内存并仅将空指针传递给fifoGet()吗?
就像是
void fifoFlush(void) {
uint8_t i;
for (i=0; i<fifoLength; i++) {
fifoGet(&void);
}
}
不,void方法将导致程序的行为不确定,因为您将取消引用指向未知内存的指针。
您使用discardByte
可能是最好的方法。
将您的结构更改为:
uint8_t fifoGet() {
return somefunction();
}
void fifoFlush(void) {
uint8_t i;
for (i=0; i<fifoLength; i++) {
fifoGet();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.