[英]How to map a function pointer to its definition?
当我浏览源代码时,我得到了一个函数指针。 所以我用了ctags -R
但我没有得到定义。 就像是
int (*example)(struct arg1, struct arg2);
如何获得原始功能(定义)?
int (*example)(struct arg1, struct arg2);
上面的行声明了一个名为example
的变量,类型为int (*)(struct arg1, struct arg2)
。 您可以为其分配一个兼容的函数指针,例如:
int foo(struct arg1 a1, struct arg2 a2) {
// irrelevant
}
int main(void) {
int (*example)(struct arg1, struct arg2); // declare example as a function ptr
struct arg1 a1;
struct arg2 a2;
example = &foo; // assign address of foo to it. BTW, `example = foo;` also works.
example(a1, a2); // call foo
return 0;
}
就像有另一个指针一样,例如: int *example;
,但类型不同。
int (*example)(struct arg1, struct arg2);
此处声明了函数指针,但未分配值,即,它没有指向任何函数。 因此在代码中将有一条语句为其分配一个函数,以便您可以搜索,
"example="
在源代码中了解它所指向的功能。
功能指针也只是指向地址的指针。
int(* example)(结构arg1,结构arg2);
那是指针的声明而不是定义。
为了定义,您搜索指针指向的地方,如@learningC回答检查在example
被分配的地方
假设您在编译之前就找到了它(因为您的信息不完整,所以您想要这样)
VI / Vim,只需键入“ /”或“?”,然后输入要搜索的单词。
编辑:- 查找单词以在多个文件中查找模式检查链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.