gpt4 book ai didi

c++ - "&"与 "&&"实际上对编译时标志有影响吗?

转载 作者:IT老高 更新时间:2023-10-28 21:49:16 25 4
gpt4 key购买 nike

我有在编译时标志中使用以下语法的习惯:

#if (defined(A) & defined(B))

通常建议我使用 && 如下:

#if (defined(A) && defined(B))

我知道这两个运算符之间的区别,并且在普通代码中 && 会短路。但是,以上都由编译器处理。我用什么重要吗?是否因为不计算第二个 define() 而对编译时间的影响很小?

最佳答案

自从 defined(SOMETHING)产生 0 或 1,因此保证两边都是 0 或 1,无论您使用 &,它都不会产生技术差异或 && .

主要是关于良好的习惯(使用 & 可能会在某些情况下出现错误)以及编写通过简单的模式匹配易于掌握的代码。一个 &在那里会导致毫秒的停顿,而人们会考虑它是否可能是位级的。

另一方面,不能使用关键字and ,您¹可以在普通 C++ 代码中使用。

<支持>注意事项:
¹ 使用 Visual C++,您可以使用 and通过 <iso646.h> 的强制包含.

关于c++ - "&"与 "&&"实际上对编译时标志有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39284525/

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