【发布时间】:2011-05-27 12:44:40
【问题描述】:
两者有什么区别,
malloc ( sizeof ( char ) * N )
和
size_t datalen = N
malloc ( datalen )
我们应该在哪里使用size_t 而不是sizeof ( char ),反之亦然?
size_t 和sizeof ( char ) 之间有性能差异吗?
【问题讨论】:
-
区别:
sizeof(char)始终为一。size_t是一种类型。 -
sizeof(char)是获取具有size_t类型的1的一种蹩脚方式... -
@R..
sizeof(char)不是获得 1 的蹩脚方式。我不知道字符超过 1 个字节的系统,但int数据类型就是这种情况增加了代码的可移植性。此外,编写此程序会增加程序的通用性(为int而不是为char这样做可能看起来很奇怪) -
sizeof的定义 以char为单位。因此sizeof(char)本质上是 1。这就像问“一米有多少米?”
标签: c performance