如果我将无符号 int 分配给有符号的 int,是否可以有单位化位
Can there be unitialized bits if I assign unsigned int to signed int
>我有一个无符号整数(比如 32 位(,当我将其分配给有符号整数时,转换后有符号整数中是否可以留下未初始化的位。
unsigned int i = 10
int j = i;
我从 valgrind 收到一个错误,说在
int func(long,int,int);
我在第三个参数中看到一个未签名的 int 被传递给这个 func。我怀疑这种无符号签名的转换会导致此 valgrind 错误
赋值时,赋值在右侧,而不是在右边的对象表示。 因此,在赋值变量后,永远不会有未初始化的位(或字节(。
此外,由于字节是最小可寻址单位,因此不能仅为字节中的某些位赋值。 要么全有,要么全无。
如果通过char *
或通过memcpy
完成,则只能分配给变量的特定字节。 例如:
unsigned char c[] = { 1, 2 };
int j;
memcpy(&j, c, sizeof(c));
假设一个int
是 4 个字节,那么只有 j
的前 2 个字节被写入,最后 2 个字节保持未初始化状态。
相关文章:
- 是否可以从int转换为enum类类型
- '[](std::list& list)<int>{return std::move(list)}(list)' 是否保证将 'list' 留空?
- 是否可以保证按字节的零 int 是零的表示形式?
- 是否可以将无符号 int 的最大值转换为 int 并将结果转换为 -1?
- 将uint8_t转换为已签名的 int 是否至少有时不正确?
- 判断 int 是否在 C++ 中赋值的任何优雅方法
- 从std::round转换为int是否安全
- 有没有办法检查int是否不等于数组中的所有值?(C )
- "!" "== 0"是否检查 int 是否是 0 的好做法?
- 从函数返回向量<向量<int>>是否会调用 C++11 中的任何移动构造函数
- 确定 int 是否包含特定数字的函数出现问题
- int 是否有运算符==
- 确定 int 是否不为 0,没有 if 语句
- 本地引用int是否有任何好处
- 在C++中,函数定义的int a[]和int*a是否相同
- 在C++中递增未初始化的 int 是否安全
- 将string映射到int是否可能比使用hashmap更快?
- Int a=1, a || 1是否为常量表达式
- ' int a = 0, b = a '是否有未定义的行为?
- 将本机方法定义为公共本机synchronized int doSum(int a, int b)是否正确?