【问题标题】:CLion greys out includeCLion 灰色显示包括
【发布时间】:2022-12-12 16:32:08
【问题描述】:

Mycode

为什么 #include "string.h" 变灰并且即使变灰它仍然包含它。这是我项目中唯一的 CPP 源文件,所以我知道我不会将它包含在另一个文件中。我的助教说它可能使用 CPP 版本的字符串,但在课程的后面它会成为一个问题,因为我们需要使用字符串的“string.h”版本,所以我想确保它仍然包括“字符串” .h”,即使它是灰色的。

【问题讨论】:

  • 不知道 CLion 但是 #include "string.h" 是错误的,如果你真的想使用 std::string 类(你正在做的)。 #include <string> 是正确的。也许 IDE 注意到您实际上并没有使用 "string.h" 中的任何内容,因此警告通过把它变成灰色?尝试将其更改为<string>。我认为这会解决它。
  • <string.h> 这不是 C++ 代码。和往常一样,Ted 对 Clion 的行为是正确的。它是灰色的,因为你实际上并没有使用它。我很确定 iostream include 会引入 <string>
  • @CaptainGiraffe 干杯!确保获得 std::string 定义的唯一方法是实际上是 #include &lt;string&gt;。它是确保您具有该定义的唯一标头。 &lt;string.h&gt; 标头在 C++ 中称为 &lt;cstring&gt;,但它仅将 C 字符串函数引入 std::(并可能在它们周围添加一些 C++ 特定细节)。它没有定义std::string。凌乱?是的 :-)

标签: c++ clion


【解决方案1】:

如果 clion 检测到您没有直接使用引用标头中的内容,它就会变灰。 它在检测过程中并不总是正确的。

在这种情况下,它是。 string.h&lt;string&gt; 作为包含是有区别的。

【讨论】:

    【解决方案2】:

    有解决这个问题的方法吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-06
      • 2017-07-08
      • 2020-11-26
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多