在C / C ++中,每个库都有自己的基本类型数据类型。例如:
byte, word64, DWORD, LWORD, uint, unsigned int, size_t, ...
然而,在Java和C#等高级语言中,一切都是统一的(跨所有库)。
在C / C ++编程中,[初学者]人们真的很困惑他们应该使用哪种数据类型。例如,byte
定义为unsigned char
,那么为什么我们需要byte
呢?
我认为至少对于初学者来说,这可能是许多内存泄漏和其他问题(例如许多漏洞)的来源。我仍然无法弄清楚拥有这些数据类型的重点是什么,而最小的数据类型就足够了?
同样的问题是我们拥有的null
指针:
NULL, 0, _null, ...
所有内容都定义为0
。
更新#1:
正如@CoryKramer所说,原因可能是因为跨平台兼容性和互操作性。那么,我想到的另一个问题是,为什么标准不能定义统一的,跨平台的,可互操作的数据类型?