如何在c++函数中声明和初始化静态int
How can I declare and initialise a static int in c++ function?
你能帮我吗?我受够了这个静态int变量....这是我的函数。我希望它的值static int ban_ve在第一个函数访问时为0我希望每次程序访问该方法时,计算机都增加它,以检测程序是否访问了两次程序。
void iCol::attCalc() //juste une fois cpt test
{
static int ban_ve; // how can I initialize it to 0 and only the first
if (ban_ve>0)
{
printf(" hello tu es dedans ....n");
_getch();
exit(0);
}
attConD = OdemoConInfo(GetStdHandle(STD_OUTPUT_HANDLE)) ;
carConD = attConD % 16; // couleur de caractere par modulo carConD
bckConD = attConD - carConD;
bckConCH = bckConD / 16; // car hexa couleur de fond (ex F)
printf("attcalc attConD %d carConD %d bckConD %d bckConCH %d n",attConD, carConD ,bckConD ,bckConCH );
ban_ve++;
}
将static int ban_ve
声明为全局变量,并在每次调用函数时增加它:
static int ban_ve = 0;
void iCol::attCalc()
{
ban_ve++;
//rest of code
}
只写static int ban_ve = 0;
保证ban_ve
只初始化一次。
所有块作用域变量的零初始化(8.5)存储时长(3.7.1)或线程存储时长(3.7.2)为在任何其他初始化发生之前执行。常数初始化具有静态存储的块作用域实体(3.6.2)Duration(如果适用)在其块第一个执行之前执行进入。允许提前执行一个实现用静态或线程初始化其他块作用域变量与实现相同条件下的存储持续时间允许使用static或thread静态初始化变量命名空间范围内的存储时间(3.6.2)。否则这样一个变量在控件第一次通过其声明时初始化;这样的变量在完成它的初始化。如果通过抛出异常退出初始化,初始化未完成,因此将在下次重试时间控制进入声明。如果控件进入声明当变量被初始化时,并发的执行应等待初始化完成如果控件递归地重新进入声明在初始化时,行为是未定义的。
相关文章:
- 从另一个静态常量数组初始化静态常量数组(只需少量计算)
- "local scope"中的 C++ 初始化静态变量
- 虚拟成员函数的定义是否强制在同一转换单元中动态初始化静态数据成员?
- 未调用的初始化静态thread_local结构的构造函数和析构函数
- 如何在 C++ 中使用 NULL(或 0)初始化静态字符数组
- 如何从静态类函数初始化静态类对象
- C++:用IIFE线程初始化静态局部变量安全吗
- 如何在 c++ 中初始化静态类对象?
- 使用 lambda 初始化静态数组
- 使用 lambda 函数初始化静态数据成员
- 如何从 std::integer_sequence 初始化静态数组?
- 在构造函数中初始化静态函数指针
- C - 初始化静态成员的方法
- 大括号使用枚举类初始化静态常量unordered_map
- C++ main 函数中初始化静态变量
- 在定义(.cpp文件)中初始化静态浮点 constexpr 成员是可能的
- 错误 C2864:'element::next':只能在类 (STRUCT) 中初始化静态常量整数数据成员
- 我应该使用类内发起器初始化静态常量数据成员还是在其类外的定义中初始化静态常量数据成员
- 如何在运行时使用静态成员函数初始化静态成员变量
- 与其他静态const成员初始化静态常量成员