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

时间:2016-08-10 15:27:29

标签: c function

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

  

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

我无法理解它的含义。你可以解释吗 ?我实际上是C的初学者。我已经搜索了编译和链接的术语。但这个定义对我来说没有意义。 我的教科书还写道,printf也是一个预定义的函数。

2 个答案:

答案 0 :(得分:5)

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

  

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

     
      
  • main()的

  •   
  • int main()

  •   
  • void main()

  •   

我要在那里停下来。标准化的C中从未允许void main()。同样地说:

  

注意:有些作者建议加入声明

#include <stdio.h>
     

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

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

这使我相信作者对“已定义”的使用充其量是不稳定的,因为“定义”和“预定义”是在C规范中具有确切含义的词。

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

答案 1 :(得分:2)

更好 正确(和适当)使用的术语库函数

详细说明,库包含预先编写和编译的代码。要使用代码(例如:函数),您需要将库链接到应用程序并使用库代码(例如:调用函数)。您将获得功能,就好像应用程序中集成的库中存在的代码一样

了解C standard librarycheck the list of library functions

注意:不是 所有 这些库是标准库。