究竟什么是"预定义函数"?

Har*_*dya 2 c function

我的教科书写了预定义函数的定义如下:

预定义意味着它是一个已经编写和编译的函数,并在链接时与我们的程序链接在一起.

我只是无法理解它是什么意思.你可以解释吗 ?我实际上是C的初学者.我搜索了编译和链接的术语.但这个定义对我来说没有意义.我的教科书也写道,这printf也是一个预定义的功能.

uh *_*per 5

如果我是你,我不会相信那本教科书.在第5页,它说:

C允许不同形式的主要陈述.允许以下表格.

  • 主要()

  • int main()

  • void main()

我要在那里停下来.void main()从来没有被允许使用标准化的C.同样它说:

注意:一些作者建议包含该声明

#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)

在所有使用任何输入/输出库函数的程序的开头.但是,对于已定义为C语言一部分的函数printf 和scanf,这不是必需的.

依赖于printf(或任何库函数)的隐式定义是非常糟糕的做法.

这使我相信作者使用"已定义"最多是不稳定的,因为"定义"和"预定义"是在C规范中具有确切含义的词.

一个慷慨的解释是库函数通过C库链接,由编译器提供或在您的系统上找到,通常是glibc.您始终可以ldd在Linux系统上运行,以查看您的程序使用的动态库.

  • @HardeyPandya没有人责备你 - 你做得很好来问:) (3认同)
  • 如果只是准确地教授*,我就不会对教授C90感到困扰*. (2认同)