【问题标题】:Eclipse CDT Content Assist Not Completing StructuresEclipse CDT 内容辅助未完成结构
【发布时间】:2016-02-26 22:10:18
【问题描述】:

我以前在 Eclipse CDT 中使用过内容辅助,没有遇到任何问题。但是,对于一个新项目,我在内容辅助建议来自 C 结构的成员方面遇到了麻烦。它准确地暗示了结构类型,而不是成员。

我将内容辅助设置为优先考虑基于解析的提案 + 基于解析的提案(以任务为中心)。我根据其他建议取消了其他选项;无论他们是否被选中,它似乎都没有做任何事情。

这是我试图获得建议的结构:

/**
* HAL DIN voltages
*/
typedef struct
{
    uint16_t din0; ///< din0 voltage
    uint16_t din1; ///< din1 voltage
    uint16_t din2; ///< din2 voltage
    uint16_t din3; ///< din3 voltage
    uint16_t din4; ///< din4 voltage
    uint16_t din5; ///< din5 voltage
    uint16_t din6; ///< din6 voltage
    uint16_t din7; ///< din7 voltage
}sDINVoltage;

sDINVoltage test; // sDINVoltage will get suggested
test.//No members get suggested

在我的项目索引事物的方式中,我是否可能遗漏了什么?提前致谢!

【问题讨论】:

    标签: c eclipse struct eclipse-cdt content-assist


    【解决方案1】:

    看起来它一直在工作!似乎只有在函数内的成员才会被推荐 - 例如:

    sDINVoltage voltages_;
    voltages_. // No recommendation 
    
    void test_func(void)
    {
        sDINVoltage voltages;
        voltages.// Will get recommendation here
    }
    

    我试图在函数之外获得建议。 :) 如果有人知道为什么会这样,还是很高兴知道!

    【讨论】:

      【解决方案2】:

      回答您为什么在函数之外没有得到任何建议的问题:不允许以这种方式在函数之外设置结构的成员。可能这就是为什么 Eclipse CDT 甚至没有给您建议的原因。例如,这是不允许的:

      test.din0 = 2;
      

      我刚才自己试了一下,代码如下:

      /* test.c */
      typedef struct
      {
        char state1;
      } STATE_STR;
      
      STATE_STR state_str;
      
      state_str.state1='c';
      
      void main()
      {
      }
      

      在cygwin中编译我得到这个错误:

      $ gcc test.c && ./a.exe
      test.c:8:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
       state_str.state1='c';
      

      (您可以使用以下代码来初始化您的结构:

      typedef struct
      {
        char state1;
      } STATE_STR;
      
      STATE_STR state_str = {.state1='c'};
      
      void main()
      {
      }
      

      )

      【讨论】:

        猜你喜欢
        • 2013-03-12
        • 2011-10-18
        • 1970-01-01
        • 1970-01-01
        • 2013-07-05
        • 1970-01-01
        • 2012-07-20
        • 2011-12-20
        • 2014-07-05
        相关资源
        最近更新 更多