gpt4 book ai didi

c - volatile 作为参数标识符

转载 作者:太空狗 更新时间:2023-10-29 15:23:31 26 4
gpt4 key购买 nike

我在最近的一次采访中被问到一个问题,下面定义了一个函数

int square(volatile int * p)
{
return *p**p;
}

有人告诉我这个函数有问题,不适合计算平方,我认为这是由于 volatile,谁能解释为什么?

最佳答案

可能有一个假设,因为 *p 是一个可变访问,它的值在每次评估期间可能不同,因此您应该只评估一次:

int q = *p;
return q * q;

这当然是愚蠢的设计;该函数实际上应该是 int square(int) 并且调用者应该说 square(*p)

关于c - volatile 作为参数标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39431124/

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