如何通过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?