C 和 C++ 的静态变量之间的差异
Difference between static variable of C and of C++?
在C中这是一个错误
int x=5;
static int y=x; //error
C++这是有效的为什么?
int x=5;
static int y=x; //valid
因为C和C++是不同的语言。
C++程序启动时有一个动态初始化阶段,在这个阶段中,静态变量可以使用非平凡构造函数或非常量初始化器进行初始化。C 没有,并且需要使用常量表达式初始化静态变量。
相关文章:
- 类与私有变量的其他类之间的线程安全性
- 编辑字符串以包含括号 c++ 之间的变量
- 子目录之间的 CMAKE 共享变量
- 在.cpp文件之间传递全局字符串变量?
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- 如何在不同的CMakeList.txt之间共享变量?
- C++ 编译时在两个变量之间交替
- 创建变量之间的运算符排列
- 通过require在不同的Lua状态之间共享全局变量
- 成员变量的不同"kinds"之间的区别
- 互锁变量访问(在布尔值上)和 std::atomic_flag 之间的区别
- 在没有外部文件的情况下在应用会话之间保存变量
- 计算两个uint8_t变量之间差值的最快方法是什么?
- 有没有办法在两个共享对象之间使用相同的全局变量?
- lambda 表达式中引用捕获的 constexpr 变量和非显式捕获的 constexpr 变量之间的区别
- 在成员函数之间传递const变量为数组的索引
- 直接为浮点变量分配十六进制整数与通过指针转换分配之间的区别
- 如果两个线程调用同一个函数,但函数中的所有变量都是局部变量,我还需要担心线程之间共享数据吗?
- 使用文件锁定的进程之间的条件变量
- C++ 静态成员变量 - 文件之间的访问