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

Die*_*lia 13 c vim 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 }
Run Code Online (Sandbox Code Playgroud)

如果我发出命令'cs fsx',它将返回S的成员变量和本地主变量.有没有办法我只能找到S的成员变量的出现?

Sum*_*Guy 4

我认为没有任何方法可以让 cscope 区分局部变量 x 和结构成员变量。

我们公司解决这个问题的方法是对成员变量使用独特的命名方案,以帮助区分它们:

typedef struct _s{    
    int s_x;
} S;
Run Code Online (Sandbox Code Playgroud)

一开始有点尴尬,但是一旦习惯了,它确实会让浏览代码变得更容易。通常,唯一限定符只是与结构相关的几个字符,并且不会使事情变得太混乱。