【发布时间】:2016-10-31 02:00:46
【问题描述】:
在 APUE 3rd Edn,第 7.8 节,内存分配中,我读到了这个:
因为三个alloc函数返回一个通用的void *指针,如果我们#include(获取函数原型),当我们将这些函数返回的指针分配给不同的指针时,我们不必显式强制转换类型。未声明函数的默认返回值是 int,因此在没有正确函数声明的情况下使用强制转换可能会在 int 类型的大小与函数返回值(在本例中为指针)的大小不同的系统上隐藏错误。
我的问题是:我们可以使用未声明的函数吗?我认为我们不能,那为什么“未声明函数的默认返回值是 int”?我完全糊涂了……
【问题讨论】:
-
C89/C90 不需要预先声明函数; C99 和 C11 可以。这本书大概是在 C99 流行之前最后一次更新。
-
就是这样!您为什么不发布您的答案,以便我可以将其标记为收藏?