2014-11-04 150 views
0

有人可以解释一般情况下编程环境中什么是低级别和高级别数据类型。 来自Java背景我认为低级别是诸如整型,布尔型,String等原始类型,高级别将是复合对象类型。 不太确定这是一般的理解,但我无法在网上找到明确的定义。低级别和高级别数据类型

+0

您的理解是正确的:低级类型通常是基元,而高级类型通常是由基元或其他高级类型组成的类型。这是粗糙的,非正式的类型分类。 – xxbbcc 2014-11-04 15:27:30

+0

你从哪里听到这个词?你应该看那里的定义。 – svick 2014-11-04 18:35:07

+0

@xxbbcc谢谢 – panas 2014-11-05 12:06:09

回答

0

您的理解一般是正确的,但它也非常依赖于您的特定代码堆栈。

例如,您将String列为基元类型;但是在C语言中,例如,一个字符串通常只是一个字符数组,而一个全功能的字符串(就像Java中的那个)是一个非常高级的对象。至少比某些struct更高级别,您可以轻松定义,如复杂数字或像typedef struct {float x, y} Point这样的2d点。

当然,它可以很容易地解释,因为Java是比C更高级的语言,所以它的原语比C语言更高。最后,这意味着“高/低”水平只是定义为相对值,有些东西比其他水平高。

最终,软件中的所有内容都必须由CPU执行,因此有必要注意哪些概念在硬件中实现,哪些不是。

整数,指针,位域,浮点等对大多数CPU来说都是通用的。其中一些还处理数组,甚至是简单的(C样式)字符串。

结构和类型值通常在代码中是“隐式”的,但不是CPU特性,所以它们稍微高一点,但通常很低,以至于可能没有明确的代码来处理它们,只是结构该程序使数据按预期运行。

+0

非常感谢。这对我来说很明显 – panas 2014-11-05 12:04:46

0

我会说'低级别'取决于您的操作系统体系结构,例如C中的'unsigned int'。它在64位和32位体系结构上不同。另一方面,你可以从你的硬件中抽象出一些东西。例如任何类型的无限列表(在haskell中)