我想看看c++中c_str函数的代码。
我怎么能看到-->
(1) 在英特尔编译器中 (2)在Visual Studio 2012编译器中 (3) 在 GCC/MinGW 中。
打开
<string>
头文件,并沿着#include
的踪迹,直到找到basic_string<T>
模板。这就是 c_str
的来源。
例如,在 Visual Studio 2012 中,该函数位于
<xstring>
标头中,如下所示:
const _Elem *c_str() const _NOEXCEPT
{ // return pointer to null-terminated nonmutable array
return (this->_Myptr());
}
使用合适的IDE,您可以右键单击该函数并选择“转到定义”。 Visual Studio有这个选项,所以这对于MSVC的实现来说是最快的。 对于 gcc (libstdc++),我喜欢使用 online doxygen docs。 这里是 c_str() 实现的链接。对于intel,我相信他们使用libstdc++(gcc的实现)。
使用 MinGW,您可以在 ...\MinGW\lib\gcc\mingw32 .7.1\includ 找到头文件