gpt4 book ai didi

c++ - 有没有什么情况你不想包括 guard ?

转载 作者:可可西里 更新时间:2023-11-01 18:15:19 26 4
gpt4 key购买 nike

我知道为什么存在 include 守卫,并且 #pragma once 不是标准的,因此并非所有编译器等都支持。

我的问题是不同的:

有什么合理的理由永远不要拥有它们吗?我还没有遇到过这样一种情况,从理论上讲,不在本应包含在其他地方的文件中提供 include guards 会有任何好处。有没有人举例说明没有它们有实际好处?

我问的原因 - 对我来说,它们看起来很多余,因为您总是使用它们,而且 #pragma once 的行为也可以自动应用于字面上的所有内容。

最佳答案

我见过根据包含前定义的宏生成代码的 header 。在这种情况下,有时需要将这些宏定义为一个(一组)值,包含 header ,重新定义宏,然后再次包含。
看到这种情况的每个人都同意这是丑陋的,最好避免,但有时(比如如果标题中的代码是通过其他方式生成的)这样做的危害较小。

除此之外,我想不出其他原因。

关于c++ - 有没有什么情况你不想包括 guard ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191479/

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