如何通过VisualStudio查看C/C++标准库的实现?

Posted

技术标签:

【中文标题】如何通过VisualStudio查看C/C++标准库的实现?【英文标题】:How to see the implement of standard library of C/C++ by VisualStudio? 【发布时间】:2015-02-16 06:03:51 【问题描述】:

我想看看VisualStudio的“strcmp strcpy atoi”等一些函数的实现细节

我按 F12 或跳转到定义 但是我只能看到下面的代码看不到实现细节

_Check_return_ int     __cdecl strcmp(_In_z_ const char * _Str1, _In_z_ const char * _Str2);

【问题讨论】:

你可能做不到。你想要一个免费软件libc 来查看这样的实现细节。你可能对 Linux 感兴趣。 用调用编写一个程序。在通话前休息一下。选择查看拆解。按 F11 直到代码进入 strcmp。对于 C 库中的所有其他例程也是如此。其中许多已在汇编程序中实现以提高效率。 如何通过linux查看实现细节?我只知道“man strcmp”来查看 api 文档@BasileStarynkevitch 在 Linux 上,您始终可以获取 glibc 或 musl-libc 的源代码并查看它们! 这个链接可能有用 - lxr.free-electrons.com/source/lib/string.c 【参考方案1】:

Express 版用户无权访问源代码。但如果您不想花钱,社区版会包含它。

安装后可以在:%VCINSTALLDIR%\crt\src找到。如果您不想手动导航到该文件夹​​,请打开Developer Command Prompt,然后执行explorer %VCINSTALLDIR%\crt\src

调试您的程序并单步执行此类函数也应该可以工作,因为 Visual Studio 然后会打开包含实现的源文件。这就是 VS 附带它的主要原因。

但这并不是所有的源代码。不包括数学函数(在 *nix 世界中称为 libm)。你也不能只是构建它。

【讨论】:

以上是关于如何通过VisualStudio查看C/C++标准库的实现?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2019 中控制 C++ 标准修订版

如何编程实现视频转码? 用C/C++实现将MPEG4标准的视频转化为H.264标准的视频

如何评价 JetBrains 的新 C/C++ IDE CLion

如何在 Visual Studio 2005 中禁止警告 4200?

C/C++ 服务器,通过标准输入/标准输出与客户端通信(阻塞标准输入,直到读取了多个字节)

Visual studio 编辑标记