【发布时间】:2017-03-17 22:45:56
【问题描述】:
我正在学习 C,我的书正在解释如何“对函数进行原型设计”,以便我们可以在定义它之前使用它。
关键是我无法想象在定义函数之前需要使用它的情况,为什么我们不能一开始就定义它?
您能否提供一个示例,在该示例中对函数进行原型制作(如果存在)是绝对必要的吗?
【问题讨论】:
-
想象一下,你有
is_even(int n)和is_odd(int n)相互定义。你会怎么写? -
请注意,您可以使用没有原型的函数,只需声明一个函数(即使没有原型)。 (但这已被弃用。)
-
您刚刚开始学习,但您很快就会发现 C 程序通常不会写在单个文件中。这使得“在使用它们之前总是定义它们”是不切实际的。
-
因为函数定义可能不是本地的,或者已经可见。如果函数在库中,编译器无法访问其定义,因此编译器需要原型才能知道如何接口。
-
考虑两个以触发器方式相互调用的本地函数。它们不能都知道彼此的接口,除非它们中的至少一个具有函数原型,因为 c 是一次性编译器。
标签: c function function-prototypes