gpt4 book ai didi

c - C 中的 DRY 缓存

转载 作者:太空狗 更新时间:2023-10-29 16:13:25 26 4
gpt4 key购买 nike

我希望干掉以下 C 代码:

if (i < SIZE_OF_V) {
if (V[i])
K = V[d];
else
K = V[d] = (expensive complicated call);
} else {
K = (expensive complicated call);
}

有什么建议吗?本地宏可以工作,但我更喜欢更现代的替代方法。

最佳答案

你可以简单地做

if (i < SIZE_OF_V && V[i]) {
K = V[d];
} else {
K = (expensive complicated call);

if (i < SIZE_OF_V)
V[d] = K;
}

您还可以将您的昂贵的复杂调用放在一个外部函数中,并从您的if条件中的两个地方调用:

int myExpensiveAndComplicatedCall() {
// Do things
}

if (i < SIZE_OF_V) {
if (V[i])
K = V[d];
else
K = V[d] = myExpensiveAndComplicatedCall();
} else {
K = myExpensiveAndComplicatedCall();
}

关于c - C 中的 DRY 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13501020/

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