相关疑难解决方法(0)

在 C++ 中,用自身初始化全局变量是否具有未定义的行为?

int i = i;

int main() { 
 int a = a;
 return 0;
} 
Run Code Online (Sandbox Code Playgroud)

int a = a肯定有未定义的行为 (UB),关于它的更多细节在 读取未初始化的值总是未定义的行为吗?或者有例外吗?.

但是呢int i = i?在 C++ 中,我们可以为全局变量分配非常量值。i在遇到声明之前声明并零初始化(因为它具有文件范围)。在这种情况下,我们将0在定义的后面分配给它。可以说这没有 UB 吗?

c++ undefined-behavior language-lawyer

64
推荐指数
2
解决办法
4029
查看次数

为什么有专门为未初始化内存定义的 C++ 算法?

为什么我们需要特殊的算法来写入未初始化(但已分配)的内存?正常的修改算法不会吗?或者未初始化的内存是否与名称本身所表达的意思不同?

c++

7
推荐指数
1
解决办法
421
查看次数

是 int x = x; 在 C++ 中定义良好?

我有以下代码:

// in global scope:
int x = x;
Run Code Online (Sandbox Code Playgroud)

此代码编译时不会对 GCC 和 clang发出警告:

x:
  .zero   4
Run Code Online (Sandbox Code Playgroud)

这是明确定义的吗?它是如何工作的?

c++ initialization global-variables language-lawyer

1
推荐指数
1
解决办法
103
查看次数