gpt4 book ai didi

c - 将指针传递给具有 volatile 成员的结构作为函数参数

转载 作者:行者123 更新时间:2023-11-30 16:13:02 25 4
gpt4 key购买 nike

如果我有一个结构,其中一些成员是 volatile 的,但不是全部,并且我将一个指向该结构的指针作为函数参数传递,那么编译器会阻止对函数内的这些成员进行优化,还是我必须声明该指针也不稳定?

typedef struct {
volatile uint16_t reg1;
volatile uint16_t reg2;
const uint32_t speed;
uint8_t error;
}uart;

void uartInitialize(uart *const hdlPtr);
//void uartInitialize(volatile uart *const hdlPtr); is this required?

最佳答案

简短回答:无需在 hdlPtr 上添加 volatile。

长答案:除非 hdlPtr 可以以某种意想不到的方式更改,否则不需要将其声明为 volatile。鉴于它是函数的本地函数,因此除了 uartInitialize 之外,它不能被任何其他内容更改。鉴于您将其声明为“const”,因此 uartInitialize 本身无法更改它。

关于c - 将指针传递给具有 volatile 成员的结构作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58177641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com