gcc源代码中许多数据结构在定义中都使用了GTY来标记,这样会干扰ctags生成的标记,无法正确的找到这些结构体。比如: union GTY ((ptr_alias (union lang_tree_node), desc ("tree_node_structure (&%h)"), variable_size)) tree_node { struct tree_base GTY ((tag ("TS_BASE"))) base; struct tree_typed GTY ((tag ("TS_TYPED"))) typed; ... ... }; 另外,VEC的用法也会对ctags有干扰。幸好,ctags有这么一个选项-I (参见http://ctags.sourceforge.net/ctags.html)可以将这些宏过滤掉。; 因此,可以在gcc子目录下执行如下命令: $ ctags -R -I GTY+ -I VEC+ --exclude="testsuite" 这样,在vim中查看数据类型的定义,就比较准确了。 祝好 邢明杰