繁体   English   中英

C-丢弃指针参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM