首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cscope的虫子?cscope找不到函数指针参数的定义

cscope的虫子?cscope找不到函数指针参数的定义
EN

Stack Overflow用户
提问于 2015-11-11 06:03:41
回答 1查看 828关注 0票数 2
代码语言:javascript
复制
//main.c  
#include "stdio.h"
void f(){
    printf("Welcome to emacs's world!");
    return;
}
void call_f(void (*f)()){
    (*f)();
    return;
}
void main(){
    call_f(f);
    return;
}

我使用cscope来找到函数"call_f“的定义,但是没有结果,cscope无法找到"call_f”的定义。

除函数指针外,我将函数"call_f“的参数类型更改为另一种类型。

代码语言:javascript
复制
#include "stdio.h"
void f(){
    printf("Welcome to emacs's world!");
    return;
}
void call_f(/* void (*f)() */void){
//    (*f)();
    f();
    return;
}
void main(){
//    call_f(f);
    call_f(void);
    return;
}

然后cscope可以找到函数"call_f“的定义。那是窃听器吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-25 19:10:21

是的,这是个窃听器。Cscope没有实现完整的C语言解析器。相反,它只是使用带有许多怪癖的扫描器。

例如,如果开始参数括号在下一行。如下所示,cscope也无法识别函数调用/声明:

代码语言:javascript
复制
fn_foo
    (arg1, arg2);

你发现的bug甚至是记录在cscope的手册页面中

它也不识别函数指针参数的函数定义。 ParseTable::识别( int startState,char *模式,int finishState,void (*FinalAction)(char *)) {.}

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33645081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档