gpt4 book ai didi

c - 宏末尾的 avr-libc (void)__s

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:34 26 4
gpt4 key购买 nike

我目前正在尝试弄清楚 avr-libc 的 /util/atomic.h 是如何工作的实现它的魔力。到目前为止,我了解了使用 __cleanup__ 属性来实现 RIAA。我还理解了巧妙地使用 for 循环来创建“ block 参数”。我不明白的是以下函数末尾的 (void)__s; 行。

static __inline__ void __iSeiParam(const uint8_t *__s)
{
sei();
__asm__ volatile ("" ::: "memory");
(void)__s;
}

static __inline__ void __iCliParam(const uint8_t *__s)
{
cli();
__asm__ volatile ("" ::: "memory");
(void)__s;
}

这些函数的最后一行是做什么用的?

最佳答案

这些函数不会以其他方式使用它们的参数,因此使用参数是为了消除“未使用的参数”编译器警告。

包含对 (void) 的转换,因为如果没有它,大多数编译器会发出另一个警告,类似于“表达式结果未使用”(如果我没记错的话,在 GCC 的情况下)。

关于c - 宏末尾的 avr-libc (void)__s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28008237/

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