gpt4 book ai didi

c++ - gcc 源代码中的 C++ new() 函数在哪里?

转载 作者:行者123 更新时间:2023-11-30 04:10:34 24 4
gpt4 key购买 nike

我知道 libstdc++ 代码现在与 libc 代码捆绑在一起。我从这里下载了完整的 gcc 4.8.2 代码:

http://www.netgull.com/gcc/releases/gcc-4.8.2/

但是我找不到任何名为 new.cnew.cpp 的文件,其中包含类似于分配内存时调用的 new() 的内容在 C++ 程序中。

我确实找到了 new_op.cc 但不确定这是否是相同的运行时函数?如果没有,我在哪里可以找到上面链接的 zip 中的 new() 源代码?

最佳答案

Ubuntu GCC 4.8 并不完全是 FSF 提供的 GCC 4.8!发行版正在修补 GCC。于是获取Ubuntu源码包。和 ::operator newlibstdc++-v3/libsupc++/new (安装为 <new> header )和 libstdc++-v3/libsupc++/new_*.cc GCC源文件。

大部分工作由 malloc 完成(从 new_op.cc 调用)在 libc 内部实现并使用 mmap(2) (和相关的)系统调用来改变 address space .系统调用在内核中实现,是来自应用程序内部的基本原子操作(通常会执行 SYSENTER 机器指令以切换到内核模式)

关于c++ - gcc 源代码中的 C++ new() 函数在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20590977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com