
局部变量
栈内存分配是编译期确定的连续空间,堆内存分配是运行时动态申请的离散空间;栈由编译器自动管理、速度快但大小固定且有限,堆灵活但开销大、易出错;应优先使用栈,堆仅用于跨作用域或大小未知场景。
thread_local变量为每个线程提供独立副本,延迟初始化且线程安全,支持类类型构造/析构;区别于static(共享需加锁)、__thread(无构造/析构)和WindowsTLSAPI(手动管理...
range遍历slice时v是副本,修改v不影响原元素;遍历map顺序随机且v也是副本;循环变量被闭包捕获时需局部绑定;channel遍历会阻塞至关闭。
栈内存分配是编译期确定的连续空间,堆内存分配是运行时动态申请的离散空间;栈由编译器自动管理、速度快但大小固定且有限,堆灵活但开销大、易出错;应优先使用栈,堆仅用于跨作用域或大小未知场景。
thread_local变量为每个线程提供独立副本,延迟初始化且线程安全,支持类类型构造/析构;区别于static(共享需加锁)、__thread(无构造/析构)和WindowsTLSAPI(手动管理...
C++26不包含rethrow_with_context,它仍处于TS探索阶段;标准库不支持异常上下文是因值语义、零开销原则及跨ABI兼容性限制;当前可靠方案是手动包装异常并结合std::source...
pprof是Go官方性能分析工具,需合理启用HTTP接口或runtime/pprof写文件;CPUprofile采样需足够时长,heapprofile要加?gc=1查存活对象;goroutine泄漏需...
constinit保证变量在静态初始化阶段完成初始化,即程序进入main前由常量表达式初始化,禁止动态初始化,不隐含const或constexpr,仅适用于命名空间作用域或静态成员。
Go中不能直接传值修改结构体字段,因为值传递只操作副本,原结构体不受影响;应使用指针接收者方法、封装状态、配合同步原语确保安全变更。
std::function用于存储任何符合指定签名的可调用对象,如普通函数、lambda、成员函数指针或std::bind结果;需严格匹配参数与返回类型,捕获局部变量时须注意生命周期,空对象调用抛st...