当它超出范围

本文探讨了静态变量在C++中的使用方式及其如何作为唯一标识符生成器。通过一个递增并打印值的例子,解释了静态变量仅在声明时初始化一次的特点,以及其在每次函数调用间保持状态的能力。
部署运行你感兴趣的模型镜像
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
void IncrementAndPrint()
{
    using namespace std;
    static int s_nValue = 1; // fixed duration
    ++s_nValue;
    cout << s_nValue << endl;
} // s_nValue is not destroyed here, but becomes inaccessible
 
int main()
{
    IncrementAndPrint();
    IncrementAndPrint();
    IncrementAndPrint();
}

在这个程序中,因为s_nvalue已被声明为静态的,s_nvalue仅仅是创建和初始化(1)一次。当它超出范围,它不被破坏。每一次的函数incrementandprint()称,s_nvalue的价值是无论我们把它之前。因此该程序的输出

使用匈牙利表示法,它是常见的固定持续时间的变量前缀“s_”。一些程序员使用“S”(我们不喜欢因为这封信被更好的用于结构)或“c_”(我们不喜欢因为它不是为记)。

一个固定的时间局部变量最常见的用途是唯一标识符发生器。在处理程序中的类似的对象的数量很大,它分配给每个一一独特的ID号,所以他们可以识别往往是有益的。这是做的一个固定的时间局部变量很容易:


您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值