我想在c ++中看到c_str函数的代码。
我怎么能看到 - >
(1)在英特尔编译器中 (2)在Visual Studio 2012编译器中 (3)在GCC / MinGW。
答案 0 :(得分:3)
打开<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());
}
答案 1 :(得分:2)
使用合适的ide,您可以右键单击该功能并选择“转到定义”。 Visual Studio有这个选项,因此这对于MSVC的实现来说是最快的。 对于gcc(libstdc ++),我喜欢在那里使用online doxygen docs。 Here is a link to the implementation of c_str()。对于intel,我相信他们使用libstdc ++(gcc的实现)。
答案 2 :(得分:2)
使用MinGW,您可以在... \ MinGW \ lib \ gcc \ mingw32 \ 4.7.1 \ include \ c ++ \ debug \ string中找到头文件。
c_str()
函数直接在该标题中定义,而不是在include中定义;我把文字放在下面。
const _CharT* c_str() const _GLIBCXX_NOEXCEPT
{
const _CharT* __res = _Base::c_str();
this->_M_invalidate_all();
return __res;
}
答案 3 :(得分:1)
而不是试图找到并打开包含文件的地方 函数已定义(假设它在包含中定义 文件 - 这通常是这种情况,但不是必需的):什么 当我想看到一个类的定义时,我通常会这样做 写一个包含适当标题的一行程序, 没有别的。这里:
#include <string>
(是的,这是完整的程序。)然后我使用/E
选项(VC ++)或-E
选项进行编译
(大多数其他编译器),将输出重定向到一个文件,其中
然后,我可以悠闲地阅读。
这很容易直接从命令行执行,但如果你
想要使用VS,打开源文件中的属性
包括<string>
,转到条目C / C ++ - &gt;命令行,和
在“其他选项”窗格中输入/E
。然后编译。该
输出将出现在输出窗口中;然后单击它
control-A后跟control-C,你可以粘贴它
无论你喜欢什么编辑。
无论哪种方式,一旦你有一个预处理器输出
编辑器,从顶部搜索c_str
作为完整的单词。
答案 4 :(得分:0)
如果在Linux上或使用MinGW或WSL,则创建一个名为string.txt的文件
然后放
#include <string>
并从终端运行cpp string.txt > string.txt
或到达this site