c++ - `int a = 0, b = a` 是否有未定义的行为?

标签 c++ declaration undefined-behavior

问题标题说明了一切:int a = 0, b = a 形式的声明是否具有未定义的行为?

最佳答案

不,这是明确定义的。这是一个带有两个声明符 ab 的声明。每个声明器都有一个初始化器。

Each init-declarator in a declaration is analyzed separately as if it was in a declaration by itself.

也就是说,该行被视为:

int a = 0;
int b = a;

关于c++ - `int a = 0, b = a` 是否有未定义的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15371554/

相关文章:

python - 在 Python 中使用 libclang 在 C++ 中进行解析

java - 在 Java 中声明和引用字节数组的二维数组

c - C11 表达式中的赋值运算符排序

c++ - "Materializing"用于 C++ 类型推断的已知类型的对象

c++ - 在没有 "typename"的基类名称中使用从属名称

c++ - 在带有类型保护的模板文件中使用前向声明

c++ - 编译器会把这个表达式优化成一个临时常量而不是每次迭代都解析它吗?

c - 在 C 中哪里可以和不能声明新变量?

java - 声明一个变量但不初始化它会提高性能吗?

c - C 中的垃圾值