如何使用cscope查找结构成员使用并忽略局部变量?

问题描述

| 我正在将cscope用于具有vim的大型项目,但没有vim映射(出于某些奇怪的原因,它们冻结了vim)。我正在vim中使用cscope命令,我希望能够在整个代码中找到结构成员的用法。 假设我有这样的事情:
  1 typedef struct _s{
  2     
  3     int x;
  4 } S;
  5  
  6 int main(){
  7
  8     int x = 1;
  9
 10     S my_s;
 11
 12     my_s.x = 5;
 13
 14     return my_s.x;
 15 }
如果我发出命令\'cs f s x \',它将同时返回S \的成员变量和本地主变量。有没有办法我只能找到S \的成员变量的出现?     

解决方法

        我认为没有任何方法可以使cscope区分局部变量x和结构成员变量。 我们在公司解决此问题的方法是对成员变量使用独特的命名方案,以帮助区分它们:
typedef struct _s{    
    int s_x;
} S;
一开始它有点尴尬,但是一旦您习惯了它,它的确使导航代码变得更加容易。通常,唯一化符仅是与结构相关的几个字符,并且不会使事情变得太糟。     ,        您可以将光标放在结构变量\“ my_s \”上,然后按组合键\“ gd \”,而不是搜索x。这将使您位于my_s的定义上,然后使用cscope查找S的定义。