它似乎对sbrk的功能没有影响,但是在sbrk()的文档中它说它需要一个intptr_t参数。
将int类型作为参数传递时,它可以工作(或者至少可以工作)。
这是常规的C.
答案 0 :(得分:6)
intptr_t
会根据体系结构更改大小。 int
可能会也可能不会根据体系结构更改大小 - 也就是说,如果您使用64位,那么intptr_t
必须是64位,而int
可能 32位。
答案 1 :(得分:1)
只要包含正确的标头,您就不会将int
传递给sbrk()
。您传递的值将根据C促销规则转换为intptr_t
。这些规则非常微妙,因此您至少应该知道它们存在并避免在极端情况下调用它们。
因此,即使sbrk
与int
不同,当您将intptr_t
看起来像int
的内容传递给sbrk()
时,也不要指望会出现诸如崩溃之类的壮观事件。 1}}在您的平台上,只要包含提供{{1}}原型的标题。