当前位置: 首页 > 知识库问答 >
问题:

当引用内存时,数据类型之间的真正区别是什么?

虞航
2023-03-14
#define NAME_OF_THE_REGISTER *((unsigned int *)(0x40020000))

在我的大学提供的“示例”代码中,他们似乎喜欢在无符号char、volatile无符号char、unsigned int、volatile无符号int等等之间切换,我不明白为什么。例

#define     PORT            0x40020000
#define     PORTNAME        ((volatile unsigned int *)      (PORT))
#define     PORTOFFSET1     ((volatile unsigned short *)    (PORT + 0x4)) //offset to access Output register 

使用它们之间的优点和缺点是什么?

共有1个答案

谭景明
2023-03-14

考虑以下内存布局:

100  01 02 03 04
104  05 06 ff ff
108  07 08 09 10

在32位小端计算机上,代码

printf("%d\n", *(char *)104);
printf("%d\n", *(short int *)104);
printf("%d\n", *(int *)104);
printf("%u\n", *(unsigned int *)104);

可能会打印

5
1541
-63995
4294903301
    null
 类似资料:
  • 问题内容: 这是过去的考试问题,我想知道什么是原始类型和引用类型?对于数组,我知道引用类型是由对象或变量组成的数组,而原始类型是仅使用int或字符串创建数组的类型。(对?) 您认为您会如何回答测试中的问题并获得良好的信誉?如果没有真正直接引用原始的ARRAY类型,有没有办法做到这一点?还是您只用数组解释一下就可以了。 问题答案: 这些是Java中的原始类型: boolean byte short

  • 问题内容: 我从“ Head First Java”学习“多态”,然后想到了这个概念。有人可以举例说明吗? 编译器检查引用类型的类,而不是对象类型。 那么引用类型和对象类型之间有什么区别? 问题答案: 我认为它们对“对象类型”和“引用类型”的使用不是标准化的,但这是我的解释。 考虑以下代码: 该 引用 是类型的。它引用的 对象 是类型。 因此,“引用类型”为,“对象类型”为。 造成这种混乱的原因是

  • 问题内容: 因此Java 8引入了方法参考,并且文档描述了这四种类型。 我的问题是两种实例类型有什么区别? 引用特定对象的实例方法。 引用特定类型的任意对象的实例方法。 两者都引用参考,但是有什么显着不同?用来解析它们的类型推断是否不同?(在他们的示例中)一个是闭包,另一个是lambda是否有意义?与方法中的参数数量有关吗? 问题答案: 将采用并返回,并且可用于以这种方式工作的任何lambda。从

  • 本文向大家介绍数据类型和数据结构之间的区别,包括了数据类型和数据结构之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,编程完全围绕数据展开。数据是实现所有业务逻辑的基础,而数据流则是构成应用程序或项目功能的数据。因此,组织和存储数据以使其最优化使用并使用良好的数据模型进行有效编程就变得非常重要。 通常,数据类型和数据结构似乎都与处理数据的性质和组织相同,但是其中两个描述了数据的类型和性

  • 我在网上阅读,找到了引用数组存储引用。如果我没有弄错的话,数组将存储变量的内存地址。如果这就是为什么我在循环字符串数组时看不到内存地址的原因,如下所示。 现在根据定义,arrNames数组将在arrNames[0]、arrNames[1]、arrNames[2]存储引用。这意味着内存地址将指向名字,如eJohn,Max和Alex。 如果它是基元数组,它将直接存储如下所示的值。 Num[0]将直接保

  • 问题内容: 嗨,我在我的经验中都使用了这两种方法,而我当时在想方法和类型都是 POST 和 GET 方法。 但是似乎它们并不相似。 如果我使用它正在工作,我是一个表格数据。 如果我写它不起作用,谁能解释他们之间的区别是什么..? 帮助是适当的。 问题答案: 类型(默认:’GET’)类型:字符串方法的别名。 如果您使用的是1.9.0之前的jQuery版本, 则应使用 type。 http://api