相关疑难解决方法(0)

隐式类型促销规则

本文旨在用作关于C中隐式整数提升的常见问题解答,特别是由通常的算术转换和/或整数提升引起的隐式提升.

示例1)
为什么这会给出一个奇怪的大整数而不是255?

unsigned char x = 0;
unsigned char y = 1;
printf("%u\n", x - y); 
Run Code Online (Sandbox Code Playgroud)

例2)
为什么这会给"-1大于0"?

unsigned int a = 1;
signed int b = -2;
if(a + b > 0)
  puts("-1 is larger than 0");
Run Code Online (Sandbox Code Playgroud)

示例3)
为什么更改上例中的类型来short解决问题?

unsigned short a = 1;
signed short b = -2;
if(a + b > 0)
  puts("-1 is larger than 0"); // will not print
Run Code Online (Sandbox Code Playgroud)

(这些示例适用于16位或短16位的32位或64位计算机.)

c type-conversion implicit-conversion

50
推荐指数
2
解决办法
7417
查看次数

size_t是字大小吗?

size_t编译代码的机器的字大小?

用g ++解析,我的编译器视图size_tlong unsigned int.在编译器被调用之前,编译器是否在内部选择某个预处理器宏的大小size_t,或者size_t实际上是stddef.h在字大小内设置的?

还是我偏离轨道?

c c++ size-t

30
推荐指数
2
解决办法
3365
查看次数

NumPy 中数据类型“intp”有什么用?

我看过Python的NumPy包中的数据类型,但我发现数据类型'intp'的描述有点混乱。它的描述是这样的:

  • intp:用于索引的整数(与 C ssize_t 相同;通常为 int32 或 int64)

如果与C的ssize_t相同,为什么这里使用索引这个词,因为ssize_t用于存储变量的大小?

c python numpy

6
推荐指数
0
解决办法
2540
查看次数

对于较小的整数值会浪费内存空间

我知道整数数据类型占用 2 或 4 个字节的内存。我想知道如果int数据类型变量值的值小于那么空间是否被浪费了?

#include <stdio.h>
int main(void)
{
  int a=1;
  printf("%d\n",a);
}
Run Code Online (Sandbox Code Playgroud)

a 二进制值是 00000001,即 1 个字节,int 数据类型为 a 值分配了 2 个字节的空间。剩余的 1 个字节是否被浪费了?

c memory

5
推荐指数
2
解决办法
2953
查看次数

标签 统计

c ×4

c++ ×1

implicit-conversion ×1

memory ×1

numpy ×1

python ×1

size-t ×1

type-conversion ×1