c00*_*0fd 5 c++ visual-studio-2017
我今天亲眼目睹了这样一种形式enum,在VS 2017下编译:
enum ens en1, en2, en3;
Run Code Online (Sandbox Code Playgroud)
然后它被用作这样的:
int n = en2;
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,enum它的形式是什么以及n后来为什么会这样0?
实例:
enum ens en1, en2, en3;
int main()
{
int n = en2;
}
Run Code Online (Sandbox Code Playgroud)
使用默认编译器选项编译而不发出警告
此示例不正确,因为枚举的声明必须包含底层类型或项目列表。这也意味着它不能与变量声明结合使用。固定变体:
enum ens: int; // ens is a complete type at this point
enum ens en1, en2, en3; // en1 en2 en3 are global variables of enum ens type
// alternative "traditional" enum definition with empty list of items:
enum ens{} en1, en2, en3;
Run Code Online (Sandbox Code Playgroud)
int n = en2;等于n0,因为它en2是一个全局变量并且隐式初始化为 0。
| 归档时间: |
|
| 查看次数: |
273 次 |
| 最近记录: |