微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VSCode“转到定义”并查找未找到函数和变量

如何解决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 举报,一经查实,本站将立刻删除。