c – “&”对“\u0026\u0026”实际上对编译时标志有所帮助吗?

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

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

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

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

我知道两个操作符之间的区别,以及正常的代码&会短路。但是,上述都是由编译器处理的。我甚至使用什么呢?它是否会影响编译时间由于一些无穷小的数量,因为它不评估第二个define()?

由于定义(SOMETHING)产生0或1,所以您双方保证为0或1,它不会在技术上有所不同,无论您使用&或&&

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

第三方,你不能使用关键字,你可以使用普通的C代码。

笔记:
¹使用Visual C,您可以使用并通过强制包含< iso646.h&gt ;.

http://stackoverflow.com/questions/39284525/does-vs-actually-make-a-difference-for-compile-time-flags

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – “&”对“\u0026\u0026”实际上对编译时标志有所帮助吗?