C 和 C++ 的静态变量之间的差异

Difference between static variable of C and of C++?

本文关键字:之间 变量 静态 C++      更新时间:2023-10-16

在C中这是一个错误

int x=5;
static int y=x; //error

C++这是有效的为什么?

int x=5;
static int y=x; //valid

因为C和C++是不同的语言。

C++程序启动时有一个动态初始化阶段,在这个阶段中,静态变量可以使用非平凡构造函数或非常量初始化器进行初始化。C 没有,并且需要使用常量表达式初始化静态变量。