如何解决VSCode“转到定义”并查找未找到函数和变量
我正在使用 VS Code 来做一个已经提供了大部分代码的项目。我正在努力了解这一切是如何运作的。
通常,“转到定义”和 control+shift+f 都没有返回结果。我希望有效的代码结构和函数在文件中的某个位置有一个位置 - 例如标题或宏。
例如在下面的代码中(只是一个随机片段),无论是使用 control+shift+f 搜索还是“转到定义”都找不到 addrinfo
结构体或 getaddrinfo()
函数的任何结果(我想知道为什么):
int get_listener_socket(char *port)
{
int sockfd;
struct addrinfo hints,*servinfo,*p;
int yes = 1;
int rv;
// This block of code looks at the local network interfaces and
// tries to find some that match our requirements (namely either
// IPv4 or IPv6 (AF_UNSPEC) and TCP (SOCK_STREAM) and use any IP on
// this machine (AI_PASSIVE).
memset(&hints,sizeof hints);
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE; // use my IP
if ((rv = getaddrinfo(NULL,port,&hints,&servinfo)) != 0) {
fprintf(stderr,"getaddrinfo: %s\n",gai_strerror(rv));
return -1;
}
注意:我打开了项目的整个工作区文件夹,所以一切都在那里,并且我安装了 C/C++ 扩展。我在 Windows 上,但我使用 GCC 和 WSL 进行编译。
我的理论是,这些结构可能作为标准的一部分嵌入到编译器中,在这种情况下,它们不在文件内,而是在编译器二进制文件内,不可能被找到。学习这将帮助我更好地使用工具,了解它们的工作原理以及 C 的工作原理。谢谢!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。