首页 > 其他分享 >记录一种我第一次见的“局部变量”外部赋值方法

记录一种我第一次见的“局部变量”外部赋值方法

时间:2023-02-08 16:12:50浏览次数:37  
标签:Processer 外部 局部变量 static GetCurrentProcesser proc 赋值

比如在libgo中的函数

Processer* & Processer::GetCurrentProcesser()
{
    static thread_local Processer *proc = nullptr;
    return proc;
}

然后给proc赋值可以用

struct Processer::Process(){
    GetCurrentProcesser() = this  
}

刚看到这段代码的时候我是懵圈的,我是第一次见这么写。但是细细分析就发现确实很巧妙。

众所周知,static修饰的常量是保存在静态区中的,是不参与堆栈回收之类的事情的,也就是说它是持久存在的,所以不必担心变量赋值给空指针,然后它提供了一种不在类内声明的变量方式,与类解耦

标签:Processer,外部,局部变量,static,GetCurrentProcesser,proc,赋值
From: https://www.cnblogs.com/yanzhao-x/p/17102226.html

相关文章