/* * demo_versions/enum_assign_int.c * -------------------------------------------------------------------------- * 演示:枚举与整型的赋值差异 —— C 宽松,C++ 严格。 * * 来源:wiki 块 [58954439:15](C/C++ 类型严格性对照): * C 中可 `enum Color c = 1;`(整型隐式转 enum); * C++ 中需 `enum Color c = (Color)1;` 或 `Color c = static_cast(1);`。 * * 验证: * gcc -std=c17 → PASS(int 隐式转 enum 合法) * g++ -std=c++17 → ERROR (invalid conversion from int to Color) * * 运行: * tools/std_probe.py --lang c --file tools/demo_versions/enum_assign_int.c * tools/std_probe.py --lang c++ --file tools/demo_versions/enum_assign_int.c * -------------------------------------------------------------------------- */ #include enum Color { RED, GREEN, BLUE }; int main(void) { enum Color c = 1; /* C 合法;C++ 报 invalid conversion from int to Color */ printf("c = %d\n", c); return 0; }