《C和指针》_7.函数

问题

1.空函数的函数体可以作为存根(stub)使用。为尚未实现的代码保留一个位置。我们可以将空函数在头文件中声明,使这类存根也可以参与编译,为后续添加需求做准备。

2。在ANSI C 中,函数的原型并非必须,这当然是缺点。先编译器预先提供一些函数的特定信息显然更为安全。

3.通常,表达式的类型就是函数声明的类型。只有当编译器可以通过寻常算数转换为正确类型时,才允许返回类型与函数声明的返回类型不同的表达式。

4.从表达式内部调用一个过程类型的函数时一个严重的错误,在表达式的求值过程中会使用一个不可预测的值。

5.将可能发生错误。应为值得类型并不是值得内在本质,而是取决于它被使用的方式。这样的情况可能有数据的截断。

6.可能出错,将发生类型转换。

7.亲证无错,

8.如果一个递归函数内部所执行的最后一条语句就是调用自身时,例如

fuc()
{
    ...
    return (fuc());
}

那么它就称之为尾部递归。尾部递归通常很容易的改写为循环的形式,效率会高。

9.如果函数的原型同时也被#include指令包含到定义函数的文件中,编译器就可以确认函数原型与定义的匹配。

猜你喜欢

转载自blog.csdn.net/weixin_41080288/article/details/83962925