gpt4 book ai didi

可以使用按位或 (|) 代替逻辑或 (||) 吗?

转载 作者:行者123 更新时间:2023-11-30 21:47:44 25 4
gpt4 key购买 nike

我发现了以下代码:

/* WMF or IF2 frames */
if ((input_format == MIME_IETF) | (input_format == IF2)) {
....

来源:https://android.googlesource.com/platform/frameworks/av/+/android-7.1.2_r11/media/libstagefright/codecs/amrnb/dec/src/amrdecode.cpp#414

我不相信这是程序员的真实意图。但我发现它不会造成真正的问题。我想知道这是否会导致问题。

最佳答案

使用逻辑“或”时,仅当前半部分为时才评估后半部分。

if ((input_format == MIME_IETF) || (input_format == IF2)) {

使用按位“或”,两个参数都会被计算。

if ((input_format == MIME_IETF) | (input_format == IF2)) {

使用OP的代码if ((input_format == MIME_IETF) | (input_format == IF2)) {,可能差别不大。

I want to know if this will cause problem.

如果input_format、IF2、MIME_IETF都是简单变量或常量,则这里使用|功能是相同的||。编译器甚至可能会发出相同的代码。

我建议编写最容易理解的代码。就目前而言,它造成的问题是代码审查中不必要的暂停。

关于可以使用按位或 (|) 代替逻辑或 (||) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43827457/

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