V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skull
V2EX  ›  程序员

有没有用 CLion 的?请教一个问题

  •  
  •   skull · 2015-07-28 17:30:24 +08:00 · 7442 次点击
    这是一个创建于 3202 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是打个比方,hello.h文件已经 include 在 global.h里面,而 global 已经 include在 test.c 里面,这时候在 c 里面用到hello.h里面定义的 struct1结构体,当你敲出 struct1.这个小数点的时候会弹出结构体成员提示,再回车选中,这时候 hello.h 就会被自动include到 test.c 第一行,导致了重复包含。在 CLion 的设置里面找了又找,一直没有找到可以解决这个问题的选项。求问有没有达人知道怎么整?这个问题烦了我好久。。。
    12 条回复    2015-07-29 10:03:45 +08:00
    Rube
        1
    Rube  
       2015-07-28 19:16:14 +08:00
    cmakelists
    xfwduke
        2
    xfwduke  
       2015-07-28 20:06:32 +08:00
    Google 下头文件保护

    #ifdef _HELLO_H
    #define _HELLO_H
    ...
    ...

    #endif
    zerh925
        3
    zerh925  
       2015-07-28 20:13:02 +08:00
    #ifndef _HELLO_H
    #define _HELLO_H
    //your code here

    #endif

    @xfwduke
    xfwduke
        4
    xfwduke  
       2015-07-28 20:45:19 +08:00
    a ....

    哈哈哈. 少个 n
    丢人了
    skull
        5
    skull  
    OP
       2015-07-28 22:01:07 +08:00 via iPhone
    @xfwduke
    @zerh925 我主要是想问有没有办法不要自动添加已经被包含的头文件。这种语法我是懂的😳
    skull
        6
    skull  
    OP
       2015-07-28 22:02:08 +08:00 via iPhone
    @Rube 这个真有待研究
    canautumn
        7
    canautumn  
       2015-07-28 22:03:30 +08:00
    现在CLion的Bug还很多,要用就忍忍吧。
    skull
        8
    skull  
    OP
       2015-07-28 22:06:53 +08:00 via iPhone
    @canautumn 我爬墙去官网的issue看,有人说过这个问题,官方也回复了哪里可以设置,然后并没有什么卵用
    xfwduke
        9
    xfwduke  
       2015-07-28 22:38:32 +08:00
    我这边 auto import 需要按 alt+enter 触发, 倒是没碰到自己加上的
    Valyrian
        10
    Valyrian  
       2015-07-29 09:28:41 +08:00
    加了头文件保护怎么包含都一样。不过个人感觉最好越清晰越好,举个例子
    1. a 包含了 b,你想在文件 c 里(仅)用 b 的函数,就不要包含a
    2. a 包含了 b,你想在文件 c 里用 a 的函数和 b 的函数,就同时包含 a b(即使 a 包含了 b)。

    如果包含某个文件的原因不是一目了然,最好注释说明
    #include <a.h> /* for function f, g */
    skull
        11
    skull  
    OP
       2015-07-29 10:01:47 +08:00
    @Valyrian 嗯嗯,不过这是公司搞的程序,有自己的代码风格,至于是好是坏就不管了,哈,就用着,也没有去改动
    skull
        12
    skull  
    OP
       2015-07-29 10:03:45 +08:00
    @xfwduke 这个也有,不过是这个是在头文件没有被包含,然后自动提示的时候是用这个,不过我这个情况是头文件已经被包含了,可以正常使用了,它还会在我用的时候插进头文件,不过这种情况仅出现在使用结构体上
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1710 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:32 · PVG 08:32 · LAX 17:32 · JFK 20:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.